diff --git a/.github/workflows/deploy-node-docker-image.yml b/.github/workflows/deploy-node-docker-image.yml index 673638a571..08e9922184 100644 --- a/.github/workflows/deploy-node-docker-image.yml +++ b/.github/workflows/deploy-node-docker-image.yml @@ -1,5 +1,8 @@ name: Deploy Node Docker Image on: + push: + branches: + 'staging' workflow_dispatch: inputs: github_tag_mainnet: @@ -78,6 +81,13 @@ jobs: docker tag ironfish ghcr.io/iron-fish/ironfish:${{ github.ref_name }} docker push ghcr.io/iron-fish/ironfish:${{ github.ref_name }} + # Used to deploy images for specific branches + - name: Deploy Node Image to GitHub:${{ github.ref_name }} + if: ${{ github.ref_type == 'branch' }} + run: | + docker tag ironfish ghcr.io/iron-fish/ironfish:${{ github.ref_name }} + docker push ghcr.io/iron-fish/ironfish:${{ github.ref_name }} + - name: Deploy Node Image to GitHub:testnet if: ${{ inputs.github_tag_testnet }} run: | diff --git a/.github/workflows/publish-binaries.yml b/.github/workflows/publish-binaries.yml index 913e0dd306..f5a9544f50 100644 --- a/.github/workflows/publish-binaries.yml +++ b/.github/workflows/publish-binaries.yml @@ -1,8 +1,11 @@ name: Build @ironfish binaries -# on: -# push on: + workflow_dispatch: + inputs: + checkout_ref: + description: 'Git ref (branch, tag, commit SHA)' + required: false release: types: - published @@ -26,7 +29,7 @@ jobs: arch: x86_64 system: linux - - host: macos-latest-large + - host: macos-latest-xlarge arch: arm64 system: apple @@ -41,6 +44,19 @@ jobs: name: Build ${{ matrix.settings.system }} ${{ matrix.settings.arch }} runs-on: ${{ matrix.settings.host }} steps: + - name: Check runner architecture + shell: bash + run: | + if [[ "$(uname -m)" != "${{ matrix.settings.arch }}" ]]; then + echo "Runner architecture does not match specified architecture" + exit 1 + fi + + # needed for distutils, which is used by nodegyp, arm64 mac runners have 3.12 + - name: Set up Python + uses: actions/setup-python@v3 + with: + python-version: 3.11 - name: Use node.js uses: actions/setup-node@v4 @@ -54,6 +70,8 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + with: + ref: ${{ github.event.inputs.checkout_ref }} - name: Create random identifier so binary extraction will be unique id: identifier @@ -76,7 +94,7 @@ jobs: cd build cp $(node -e "console.log(process.execPath)") ${{ matrix.settings.system != 'windows' && 'node' || 'node.exe' }} npm init -y - npm install ironfish@${{ github.event.release.tag_name }} + npm install ironfish@${{ github.event_name == 'release' && github.event.release.tag_name || github.event.inputs.checkout_ref }} tar -czf ../tools/build.tar.gz -C . . - name: Create binary @@ -88,7 +106,7 @@ jobs: id: set_paths shell: bash run: | - name="ironfish-${{ matrix.settings.system }}-${{ matrix.settings.arch }}-${{ github.event.release.tag_name }}" + name="ironfish-standalone-${{ matrix.settings.system }}-${{ matrix.settings.arch }}-${{ github.event_name == 'release' && github.event.release.tag_name || github.event.inputs.checkout_ref }}" echo "name=${name}" >> $GITHUB_OUTPUT echo "zip=${name}.zip" >> $GITHUB_OUTPUT echo "binary=${{ matrix.settings.system != 'windows' && 'ironfish' || 'ironfish.exe' }}" >> $GITHUB_OUTPUT @@ -183,6 +201,7 @@ jobs: - name: Upload release asset id: upload-release-asset + if: github.event_name == 'release' uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/rust_ci.yml b/.github/workflows/rust_ci.yml index 12a4057edd..ec1afda9e3 100644 --- a/.github/workflows/rust_ci.yml +++ b/.github/workflows/rust_ci.yml @@ -64,6 +64,26 @@ jobs: run: | cargo clippy --all-targets -- -D warnings + cargo_vet: + name: Vet Dependencies + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Cache Rust + uses: Swatinem/rust-cache@v2 + with: + save-if: false + shared-key: base + + - name: Install cargo-vet + run: | + cargo install --locked cargo-vet + + - name: Vet dependencies + run: | + cargo vet + ironfish_rust: name: Test ironfish-rust runs-on: ubuntu-latest diff --git a/Cargo.lock b/Cargo.lock index 58d067a89c..23367fe0b4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1521,13 +1521,12 @@ dependencies = [ [[package]] name = "ironfish-frost" version = "0.1.0" -source = "git+https://github.com/iron-fish/ironfish-frost.git?branch=main#cabc4474446df9742e677d142520aecf790bb472" +source = "git+https://github.com/iron-fish/ironfish-frost.git?branch=main#b6b11147654602c0ea6142bb26b7df2b5651073f" dependencies = [ "blake3", "chacha20 0.9.1", "chacha20poly1305 0.10.1", "ed25519-dalek", - "once_cell", "rand_chacha", "rand_core", "reddsa 0.5.1", diff --git a/ironfish-cli/package.json b/ironfish-cli/package.json index 294adb1bdd..9d70dfa0ec 100644 --- a/ironfish-cli/package.json +++ b/ironfish-cli/package.json @@ -1,6 +1,6 @@ { "name": "ironfish", - "version": "2.1.0", + "version": "2.2.0", "description": "CLI for running and interacting with an Iron Fish node", "author": "Iron Fish (https://ironfish.network)", "main": "build/src/index.js", @@ -62,12 +62,13 @@ "@aws-sdk/client-s3": "3", "@aws-sdk/client-secrets-manager": "3", "@aws-sdk/s3-request-presigner": "3", - "@ironfish/rust-nodejs": "2.1.0", - "@ironfish/sdk": "2.1.0", + "@ironfish/rust-nodejs": "2.2.0", + "@ironfish/sdk": "2.2.0", "@oclif/core": "1.23.1", "@oclif/plugin-help": "5.1.12", "@oclif/plugin-not-found": "2.3.1", "@oclif/plugin-warn-if-update-available": "2.0.40", + "@oclif/plugin-autocomplete": "1.3.10", "@types/tar": "6.1.1", "axios": "0.21.4", "bech32": "2.0.0", @@ -93,7 +94,8 @@ "plugins": [ "@oclif/plugin-help", "@oclif/plugin-not-found", - "@oclif/plugin-warn-if-update-available" + "@oclif/plugin-warn-if-update-available", + "@oclif/plugin-autocomplete" ], "topics": {} }, diff --git a/ironfish-cli/src/commands/wallet/assets.ts b/ironfish-cli/src/commands/wallet/assets.ts index 288721d983..0a14037d5f 100644 --- a/ironfish-cli/src/commands/wallet/assets.ts +++ b/ironfish-cli/src/commands/wallet/assets.ts @@ -12,7 +12,7 @@ import { BufferUtils } from '@ironfish/sdk' import { CliUx } from '@oclif/core' import { IronfishCommand } from '../../command' import { RemoteFlags } from '../../flags' -import { renderAssetNameFromHex } from '../../utils' +import { renderAssetWithVerificationStatus } from '../../utils' import { TableCols } from '../../utils/table' const MAX_ASSET_METADATA_COLUMN_WIDTH = ASSET_METADATA_LENGTH + 1 @@ -64,12 +64,13 @@ export class AssetsCommand extends IronfishCommand { header: 'Name', width: assetNameWidth, get: (row) => - renderAssetNameFromHex(row.name, { - verification: row.verification, - outputType: flags.output, - verbose: !!flags.verbose, - logWarn: this.warn.bind(this), - }), + renderAssetWithVerificationStatus( + BufferUtils.toHuman(Buffer.from(row.name, 'hex')), + { + verification: row.verification, + outputType: flags.output, + }, + ), }), id: { header: 'ID', diff --git a/ironfish-cli/src/commands/wallet/balance.ts b/ironfish-cli/src/commands/wallet/balance.ts index 25e689d402..92a03a099e 100644 --- a/ironfish-cli/src/commands/wallet/balance.ts +++ b/ironfish-cli/src/commands/wallet/balance.ts @@ -1,11 +1,11 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { CurrencyUtils, GetBalanceResponse, isNativeIdentifier } from '@ironfish/sdk' +import { CurrencyUtils, GetBalanceResponse, isNativeIdentifier, RpcAsset } from '@ironfish/sdk' import { Flags } from '@oclif/core' import { IronfishCommand } from '../../command' import { RemoteFlags } from '../../flags' -import { renderAssetName } from '../../utils' +import { renderAssetWithVerificationStatus } from '../../utils' export class BalanceCommand extends IronfishCommand { static description = @@ -54,60 +54,49 @@ export class BalanceCommand extends IronfishCommand { confirmations: flags.confirmations, }) + const assetId = response.content.assetId + const asset = ( await client.wallet.getAsset({ account, - id: response.content.assetId, + id: assetId, confirmations: flags.confirmations, }) ).content - const assetId = response.content.assetId - const assetName = renderAssetName(isNativeIdentifier(assetId) ? '$IRON' : assetId, { - verification: asset.verification, - verbose: !!flags.verbose, - logWarn: this.warn.bind(this), - }) + let nameToRender + if (isNativeIdentifier(assetId)) { + nameToRender = '$IRON' + } else { + nameToRender = asset.verification.symbol || assetId + } + const assetName = renderAssetWithVerificationStatus(nameToRender, asset) if (flags.explain) { - this.explainBalance(response.content, assetName) + this.explainBalance(response.content, asset, assetName) return } + const renderedAvailable = renderValue(response.content.available, asset, assetName) + const renderedConfirmed = renderValue(response.content.confirmed, asset, assetName) + const renderedUnconfirmed = renderValue(response.content.unconfirmed, asset, assetName) + const renderedPending = renderValue(response.content.pending, asset, assetName) if (flags.all) { this.log(`Account: ${response.content.account}`) this.log(`Head Hash: ${response.content.blockHash || 'NULL'}`) this.log(`Head Sequence: ${response.content.sequence || 'NULL'}`) - this.log( - `Available: ${CurrencyUtils.renderIron(response.content.available, true, assetName)}`, - ) - this.log( - `Confirmed: ${CurrencyUtils.renderIron(response.content.confirmed, true, assetName)}`, - ) - this.log( - `Unconfirmed: ${CurrencyUtils.renderIron( - response.content.unconfirmed, - true, - assetName, - )}`, - ) - this.log( - `Pending: ${CurrencyUtils.renderIron(response.content.pending, true, assetName)}`, - ) + this.log(`Available: ${renderedAvailable}`) + this.log(`Confirmed: ${renderedConfirmed}`) + this.log(`Unconfirmed: ${renderedUnconfirmed}`) + this.log(`Pending: ${renderedPending}`) return } this.log(`Account: ${response.content.account}`) - this.log( - `Available Balance: ${CurrencyUtils.renderIron( - response.content.available, - true, - assetName, - )}`, - ) + this.log(`Available Balance: ${renderedAvailable}`) } - explainBalance(response: GetBalanceResponse, assetId: string): void { + explainBalance(response: GetBalanceResponse, asset: RpcAsset, assetName: string): void { const unconfirmed = CurrencyUtils.decode(response.unconfirmed) const confirmed = CurrencyUtils.decode(response.confirmed) const pending = CurrencyUtils.decode(response.pending) @@ -116,6 +105,13 @@ export class BalanceCommand extends IronfishCommand { const unconfirmedDelta = unconfirmed - confirmed const pendingDelta = pending - unconfirmed + const renderedUnconfirmed = renderValue(unconfirmed, asset, assetName) + const renderedUnconfirmedDelta = renderValue(unconfirmedDelta, asset, assetName) + const renderedConfirmed = renderValue(confirmed, asset, assetName) + const renderedPending = renderValue(pending, asset, assetName) + const renderedPendingDelta = renderValue(pendingDelta, asset, assetName) + const renderedAvailable = renderValue(available, asset, assetName) + this.log(`Account: ${response.account}`) this.log( @@ -126,26 +122,34 @@ export class BalanceCommand extends IronfishCommand { this.log('') this.log(`Your available balance is made of notes on the chain that are safe to spend`) - this.log(`Available: ${CurrencyUtils.renderIron(available, true, assetId)}`) + this.log(`Available: ${renderedAvailable}`) this.log('') this.log('Your confirmed balance includes all notes from transactions on the chain') - this.log(`Confirmed: ${CurrencyUtils.renderIron(confirmed, true, assetId)}`) + this.log(`Confirmed: ${renderedConfirmed}`) this.log('') this.log( - `${response.unconfirmedCount} transactions worth ${CurrencyUtils.renderIron( - unconfirmedDelta, - )} are on the chain within ${response.confirmations} blocks of the head`, + `${response.unconfirmedCount} transactions worth ${renderedUnconfirmedDelta} are on the chain within ${response.confirmations} blocks of the head`, ) - this.log(`Unconfirmed: ${CurrencyUtils.renderIron(unconfirmed, true, assetId)}`) + this.log(`Unconfirmed: ${renderedUnconfirmed}`) this.log('') this.log( - `${response.pendingCount} transactions worth ${CurrencyUtils.renderIron( - pendingDelta, - )} are pending and have not been added to the chain`, + `${response.pendingCount} transactions worth ${renderedPendingDelta} are pending and have not been added to the chain`, ) - this.log(`Pending: ${CurrencyUtils.renderIron(pending, true, assetId)}`) + this.log(`Pending: ${renderedPending}`) + } +} + +// TODO(mat): Eventually this logic should probably be rolled into +// CurrencyUtils.render() via additional options +function renderValue(amount: string | bigint, asset: RpcAsset, assetName: string): string { + const renderNameManually = asset.verification.status === 'verified' + + if (renderNameManually) { + return `${assetName} ${CurrencyUtils.render(amount, false, asset.id, asset.verification)}` + } else { + return CurrencyUtils.render(amount, true, asset.id, asset.verification) } } diff --git a/ironfish-cli/src/commands/wallet/balances.ts b/ironfish-cli/src/commands/wallet/balances.ts index bee764eef8..4a9036d518 100644 --- a/ironfish-cli/src/commands/wallet/balances.ts +++ b/ironfish-cli/src/commands/wallet/balances.ts @@ -1,11 +1,11 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { CurrencyUtils, GetBalancesResponse, RpcAsset } from '@ironfish/sdk' +import { BufferUtils, CurrencyUtils, GetBalancesResponse, RpcAsset } from '@ironfish/sdk' import { CliUx, Flags } from '@oclif/core' import { IronfishCommand } from '../../command' import { RemoteFlags } from '../../flags' -import { compareAssets, renderAssetNameFromHex } from '../../utils' +import { compareAssets, renderAssetWithVerificationStatus } from '../../utils' type AssetBalancePairs = { asset: RpcAsset; balance: GetBalancesResponse['balances'][number] } @@ -63,12 +63,13 @@ export class BalancesCommand extends IronfishCommand { assetName: { header: 'Asset Name', get: ({ asset }) => - renderAssetNameFromHex(asset.name, { - verification: asset.verification, - outputType: flags.output, - verbose: !!flags.verbose, - logWarn: this.warn.bind(this), - }), + renderAssetWithVerificationStatus( + BufferUtils.toHuman(Buffer.from(asset.name, 'hex')), + { + verification: asset.verification, + outputType: flags.output, + }, + ), }, 'asset.id': { header: 'Asset Id', @@ -76,7 +77,8 @@ export class BalancesCommand extends IronfishCommand { }, available: { header: 'Available Balance', - get: ({ balance }) => CurrencyUtils.renderIron(balance.available), + get: ({ asset, balance }) => + CurrencyUtils.render(balance.available, false, asset.id, asset.verification), }, } @@ -85,15 +87,18 @@ export class BalancesCommand extends IronfishCommand { ...columns, confirmed: { header: 'Confirmed Balance', - get: ({ balance }) => CurrencyUtils.renderIron(balance.confirmed), + get: ({ asset, balance }) => + CurrencyUtils.render(balance.confirmed, false, asset.id, asset.verification), }, unconfirmed: { header: 'Unconfirmed Balance', - get: ({ balance }) => CurrencyUtils.renderIron(balance.unconfirmed), + get: ({ asset, balance }) => + CurrencyUtils.render(balance.unconfirmed, false, asset.id, asset.verification), }, pending: { header: 'Pending Balance', - get: ({ balance }) => CurrencyUtils.renderIron(balance.pending), + get: ({ asset, balance }) => + CurrencyUtils.render(balance.pending, false, asset.id, asset.verification), }, blockHash: { header: 'Head Hash', diff --git a/ironfish-cli/src/commands/wallet/burn.ts b/ironfish-cli/src/commands/wallet/burn.ts index b703ac4111..43fd6a1f70 100644 --- a/ironfish-cli/src/commands/wallet/burn.ts +++ b/ironfish-cli/src/commands/wallet/burn.ts @@ -7,11 +7,12 @@ import { CurrencyUtils, RawTransaction, RawTransactionSerde, + RpcAsset, Transaction, } from '@ironfish/sdk' import { CliUx, Flags } from '@oclif/core' import { IronfishCommand } from '../../command' -import { IronFlag, RemoteFlags } from '../../flags' +import { IronFlag, RemoteFlags, ValueFlag } from '../../flags' import { selectAsset } from '../../utils/asset' import { promptCurrency } from '../../utils/currency' import { getExplorer } from '../../utils/explorer' @@ -45,9 +46,9 @@ export class Burn extends IronfishCommand { minimum: 1n, flagName: 'fee rate', }), - amount: IronFlag({ + amount: ValueFlag({ char: 'a', - description: 'Amount of coins to burn', + description: 'Amount of coins to burn in the major denomination', flagName: 'amount', }), assetId: Flags.string({ @@ -130,7 +131,29 @@ export class Burn extends IronfishCommand { this.error(`You must have a custom asset in order to burn.`) } - let amount = flags.amount + const assetData = ( + await client.wallet.getAsset({ + account, + id: assetId, + confirmations: flags.confirmations, + }) + ).content + + let amount + if (flags.amount) { + const [parsedAmount, error] = CurrencyUtils.tryMajorToMinor( + flags.amount, + assetId, + assetData?.verification, + ) + + if (error) { + this.error(`${error.reason}`) + } + + amount = parsedAmount + } + if (!amount) { amount = await promptCurrency({ client: client, @@ -138,10 +161,11 @@ export class Burn extends IronfishCommand { text: 'Enter the amount of the custom asset to burn', minimum: 1n, logger: this.logger, + assetId: assetId, + assetVerification: assetData.verification, balance: { account, confirmations: flags.confirmations, - assetId, }, }) } @@ -183,7 +207,7 @@ export class Burn extends IronfishCommand { this.exit(0) } - if (!flags.confirm && !(await this.confirm(assetId, amount, raw.fee, account))) { + if (!flags.confirm && !(await this.confirm(assetData, amount, raw.fee, account))) { this.error('Transaction aborted.') } @@ -209,18 +233,19 @@ export class Burn extends IronfishCommand { this.warn(`Transaction '${transaction.hash().toString('hex')}' failed to broadcast`) } - const assetResponse = await client.wallet.getAsset({ - account, - id: assetId, - confirmations: flags.confirmations, - }) - const assetName = BufferUtils.toHuman(Buffer.from(assetResponse.content.name, 'hex')) + const assetName = BufferUtils.toHuman(Buffer.from(assetData.name, 'hex')) + const renderedAmount = CurrencyUtils.render( + amount, + false, + assetData.id, + assetData.verification, + ) this.log(`Burned asset ${assetName} from ${account}`) this.log(`Asset Identifier: ${assetId}`) - this.log(`Amount: ${CurrencyUtils.renderIron(amount)}`) + this.log(`Amount: ${renderedAmount}`) this.log(`Hash: ${transaction.hash().toString('hex')}`) - this.log(`Fee: ${CurrencyUtils.renderIron(transaction.fee(), true)}`) + this.log(`Fee: ${CurrencyUtils.render(transaction.fee(), true)}`) const networkId = (await client.chain.getNetworkInfo()).content.networkId const transactionUrl = getExplorer(networkId)?.getTransactionUrl( @@ -244,20 +269,15 @@ export class Burn extends IronfishCommand { } async confirm( - assetId: string, + asset: RpcAsset, amount: bigint, fee: bigint, account: string, ): Promise { + const renderedAmount = CurrencyUtils.render(amount, true, asset.id, asset.verification) + const renderedFee = CurrencyUtils.render(fee, true) this.log( - `You are about to burn: ${CurrencyUtils.renderIron( - amount, - true, - assetId, - )} plus a transaction fee of ${CurrencyUtils.renderIron( - fee, - true, - )} with the account ${account}`, + `You are about to burn: ${renderedAmount} plus a transaction fee of ${renderedFee} with the account ${account}`, ) return CliUx.ux.confirm('Do you confirm (Y/N)?') diff --git a/ironfish-cli/src/commands/wallet/mint.ts b/ironfish-cli/src/commands/wallet/mint.ts index ddd22329db..b524ea4847 100644 --- a/ironfish-cli/src/commands/wallet/mint.ts +++ b/ironfish-cli/src/commands/wallet/mint.ts @@ -1,20 +1,22 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +import { Asset } from '@ironfish/rust-nodejs' import { BufferUtils, CreateTransactionRequest, CurrencyUtils, - ErrorUtils, isValidPublicAddress, RawTransaction, RawTransactionSerde, - RpcClient, + RPC_ERROR_CODES, + RpcAsset, + RpcRequestError, Transaction, } from '@ironfish/sdk' import { CliUx, Flags } from '@oclif/core' import { IronfishCommand } from '../../command' -import { IronFlag, RemoteFlags } from '../../flags' +import { IronFlag, RemoteFlags, ValueFlag } from '../../flags' import { selectAsset } from '../../utils/asset' import { promptCurrency } from '../../utils/currency' import { getExplorer } from '../../utils/explorer' @@ -50,9 +52,9 @@ export class Mint extends IronfishCommand { minimum: 1n, flagName: 'fee rate', }), - amount: IronFlag({ + amount: ValueFlag({ char: 'a', - description: 'Amount of coins to mint in IRON', + description: 'Amount of coins to mint in the major denomination', flagName: 'amount', }), assetId: Flags.string({ @@ -164,6 +166,9 @@ export class Mint extends IronfishCommand { required: false, }) } + + const newAsset = new Asset(accountPublicKey, name, metadata) + assetId = newAsset.id().toString('hex') } else if (!assetId) { const asset = await selectAsset(client, account, { action: 'mint', @@ -180,14 +185,39 @@ export class Mint extends IronfishCommand { assetId = asset.id } + let assetData if (assetId) { - const isAssetOwner = await this.isAssetOwner(client, assetId, accountPublicKey) - if (!isAssetOwner) { - this.error(`The account '${account}' does not own this asset.`) + try { + const assetRequest = await client.chain.getAsset({ id: assetId }) + assetData = assetRequest.content + if (assetData.owner !== accountPublicKey) { + this.error(`The account '${account}' does not own this asset.`) + } + } catch (e) { + if (e instanceof RpcRequestError && e.code === RPC_ERROR_CODES.NOT_FOUND.valueOf()) { + // Do nothing, not finding an asset is acceptable since we're likely + // to be minting one for the first time + } else { + throw e + } } } - let amount = flags.amount + let amount + if (flags.amount) { + const [parsedAmount, error] = CurrencyUtils.tryMajorToMinor( + flags.amount, + assetId, + assetData?.verification, + ) + + if (error) { + this.error(`${error.reason}`) + } + + amount = parsedAmount + } + if (!amount) { amount = await promptCurrency({ client: client, @@ -195,6 +225,8 @@ export class Mint extends IronfishCommand { text: 'Enter the amount', minimum: 0n, logger: this.logger, + assetId: assetId, + assetVerification: assetData?.verification, }) } @@ -209,7 +241,8 @@ export class Mint extends IronfishCommand { outputs: [], mints: [ { - assetId, + // Only provide the asset id if we are not minting an asset for the first time + ...(assetData != null ? { assetId } : {}), name, metadata, value: CurrencyUtils.encode(amount), @@ -254,6 +287,7 @@ export class Mint extends IronfishCommand { name, metadata, flags.transferOwnershipTo, + assetData, )) ) { this.error('Transaction aborted.') @@ -283,16 +317,17 @@ export class Mint extends IronfishCommand { this.warn(`Transaction '${transaction.hash().toString('hex')}' failed to broadcast`) } + const renderedValue = CurrencyUtils.render( + minted.value, + true, + minted.asset.id().toString('hex'), + assetData?.verification, + ) + const renderedFee = CurrencyUtils.render(transaction.fee(), true) this.log(`Minted asset ${BufferUtils.toHuman(minted.asset.name())} from ${account}`) this.log(`Asset Identifier: ${minted.asset.id().toString('hex')}`) - this.log( - `Value: ${CurrencyUtils.renderIron( - minted.value, - true, - minted.asset.id().toString('hex'), - )}`, - ) - this.log(`Fee: ${CurrencyUtils.renderIron(transaction.fee(), true)}`) + this.log(`Value: ${renderedValue}`) + this.log(`Fee: ${renderedFee}`) this.log(`Hash: ${transaction.hash().toString('hex')}`) const networkId = (await client.chain.getNetworkInfo()).content.networkId @@ -324,14 +359,24 @@ export class Mint extends IronfishCommand { name?: string, metadata?: string, transferOwnershipTo?: string, + assetData?: RpcAsset, ): Promise { const nameString = name ? `\nName: ${name}` : '' const metadataString = metadata ? `\nMetadata: ${metadata}` : '' + + const renderedAmount = CurrencyUtils.render( + amount, + !!assetId, + assetId, + assetData?.verification, + ) + const renderedFee = CurrencyUtils.render(fee, true) + this.log( `You are about to mint an asset with the account ${account}:${nameString}${metadataString}`, ) - this.log(`Amount: ${CurrencyUtils.renderIron(amount, !!assetId, assetId)}`) - this.log(`Fee: ${CurrencyUtils.renderIron(fee, true)}`) + this.log(`Amount: ${renderedAmount}`) + this.log(`Fee: ${renderedFee}`) if (transferOwnershipTo) { this.log( @@ -341,26 +386,4 @@ export class Mint extends IronfishCommand { return CliUx.ux.confirm('Do you confirm (Y/N)?') } - - async isAssetOwner( - client: RpcClient, - assetId: string, - ownerPublicKey: string, - ): Promise { - try { - const assetResponse = await client.chain.getAsset({ id: assetId }) - if (assetResponse.content.owner === ownerPublicKey) { - return true - } - } catch (e) { - if (ErrorUtils.isNotFoundError(e)) { - // Asset doesn't exist yet, so this account would be the creator and owner for the initial mint - return true - } else { - throw e - } - } - - return false - } } diff --git a/ironfish-cli/src/commands/wallet/multisig/dkg/round1.ts b/ironfish-cli/src/commands/wallet/multisig/dkg/round1.ts new file mode 100644 index 0000000000..b14a23a87b --- /dev/null +++ b/ironfish-cli/src/commands/wallet/multisig/dkg/round1.ts @@ -0,0 +1,84 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +import { CliUx, Flags } from '@oclif/core' +import { IronfishCommand } from '../../../../command' +import { RemoteFlags } from '../../../../flags' +import { longPrompt } from '../../../../utils/longPrompt' + +export class DkgRound1Command extends IronfishCommand { + static description = 'Perform round1 of the DKG protocol for multisig account creation' + static hidden = true + + static flags = { + ...RemoteFlags, + secretName: Flags.string({ + char: 's', + description: 'The name of the secret to use for encryption during DKG', + }), + identity: Flags.string({ + char: 'i', + description: + 'The identity of the participants will generate the group keys (may be specified multiple times to add multiple participants). Must include the identity for secretName', + multiple: true, + }), + minSigners: Flags.integer({ + char: 'm', + description: 'Minimum number of signers to meet signing threshold', + }), + } + + async start(): Promise { + const { flags } = await this.parse(DkgRound1Command) + + let secretName = flags.secretName + if (!secretName) { + secretName = await CliUx.ux.prompt('Enter the name of the secret to use', { + required: true, + }) + } + + let identities = flags.identity + if (!identities || identities.length < 2) { + const input = await longPrompt('Enter the identities separated by commas', { + required: true, + }) + identities = input.split(',') + + if (identities.length < 2) { + this.error('Minimum number of identities must be at least 2') + } + } + identities = identities.map((i) => i.trim()) + + let minSigners = flags.minSigners + if (!minSigners) { + const input = await CliUx.ux.prompt('Enter the number of minimum signers', { + required: true, + }) + minSigners = parseInt(input) + if (isNaN(minSigners) || minSigners < 2) { + this.error('Minimum number of signers must be at least 2') + } + } + + const client = await this.sdk.connectRpc() + + const response = await client.wallet.multisig.dkg.round1({ + secretName: secretName, + participants: identities.map((identity) => ({ identity })), + minSigners: minSigners, + }) + + this.log('\nEncrypted Secret Package:\n') + this.log(response.content.encryptedSecretPackage) + this.log() + + this.log('\nPublic Package:\n') + this.log(response.content.publicPackage) + this.log() + + this.log('Next step:') + this.log('Send the public package to each participant') + } +} diff --git a/ironfish-cli/src/commands/wallet/multisig/dkg/round2.ts b/ironfish-cli/src/commands/wallet/multisig/dkg/round2.ts new file mode 100644 index 0000000000..914fe74f2e --- /dev/null +++ b/ironfish-cli/src/commands/wallet/multisig/dkg/round2.ts @@ -0,0 +1,88 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +import { CliUx, Flags } from '@oclif/core' +import { IronfishCommand } from '../../../../command' +import { RemoteFlags } from '../../../../flags' +import { longPrompt } from '../../../../utils/longPrompt' + +export class DkgRound2Command extends IronfishCommand { + static description = 'Perform round2 of the DKG protocol for multisig account creation' + static hidden = true + + static flags = { + ...RemoteFlags, + secretName: Flags.string({ + char: 's', + description: 'The name of the secret to use for encryption during DKG', + required: true, + }), + encryptedSecretPackage: Flags.string({ + char: 'e', + description: 'The ecrypted secret package created during DKG round1', + }), + publicPackage: Flags.string({ + char: 'p', + description: + 'The public package that a participant generated during DKG round1 (may be specified multiple times for multiple participants). Must include your own round1 public package', + multiple: true, + }), + } + + async start(): Promise { + const { flags } = await this.parse(DkgRound2Command) + + let encryptedSecretPackage = flags.encryptedSecretPackage + if (!encryptedSecretPackage) { + encryptedSecretPackage = await CliUx.ux.prompt( + `Enter the encrypted secret package for secret ${flags.secretName}`, + { + required: true, + }, + ) + } + + let publicPackages = flags.publicPackage + if (!publicPackages || publicPackages.length < 2) { + const input = await longPrompt( + 'Enter public packages separated by commas, one for each participant', + { + required: true, + }, + ) + publicPackages = input.split(',') + + if (publicPackages.length < 2) { + this.error( + 'Must include a public package for each participant; at least 2 participants required', + ) + } + } + publicPackages = publicPackages.map((i) => i.trim()) + + const client = await this.sdk.connectRpc() + + const response = await client.wallet.multisig.dkg.round2({ + secretName: flags.secretName, + encryptedSecretPackage, + publicPackages, + }) + + this.log('\nEncrypted Secret Package:\n') + this.log(response.content.encryptedSecretPackage) + this.log() + + this.log('\nPublic Packages:\n') + for (const { recipientIdentity, publicPackage } of response.content.publicPackages) { + this.log('Recipient Identity') + this.log(recipientIdentity) + this.log('----------------') + this.log(publicPackage) + this.log() + } + + this.log() + this.log('Next step:') + this.log('Send each public package to the participant with the matching identity') + } +} diff --git a/ironfish-cli/src/commands/wallet/multisig/signature/aggregate.ts b/ironfish-cli/src/commands/wallet/multisig/signature/aggregate.ts index 21e6dd88f2..807f52e282 100644 --- a/ironfish-cli/src/commands/wallet/multisig/signature/aggregate.ts +++ b/ironfish-cli/src/commands/wallet/multisig/signature/aggregate.ts @@ -90,7 +90,7 @@ export class MultisigSign extends IronfishCommand { this.log(`Transaction: ${response.content.transaction}`) this.log(`Hash: ${transaction.hash().toString('hex')}`) - this.log(`Fee: ${CurrencyUtils.renderIron(transaction.fee(), true)}`) + this.log(`Fee: ${CurrencyUtils.render(transaction.fee(), true)}`) if (flags.watch) { this.log('') diff --git a/ironfish-cli/src/commands/wallet/notes/combine.ts b/ironfish-cli/src/commands/wallet/notes/combine.ts index 5df94aa2a8..6b701ba800 100644 --- a/ironfish-cli/src/commands/wallet/notes/combine.ts +++ b/ironfish-cli/src/commands/wallet/notes/combine.ts @@ -3,15 +3,12 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ import { Asset } from '@ironfish/rust-nodejs' import { - Assert, - BenchUtils, CreateTransactionRequest, CurrencyUtils, - EstimateFeeRatesResponse, RawTransaction, RawTransactionSerde, + RpcAsset, RpcClient, - RpcResponseEnded, TimeUtils, Transaction, } from '@ironfish/sdk' @@ -19,10 +16,19 @@ import { CliUx, Flags } from '@oclif/core' import inquirer from 'inquirer' import { IronfishCommand } from '../../../command' import { IronFlag, RemoteFlags } from '../../../flags' -import { ProgressBar } from '../../../types' import { getExplorer } from '../../../utils/explorer' import { selectFee } from '../../../utils/fees' -import { displayTransactionSummary, watchTransaction } from '../../../utils/transaction' +import { fetchNotes } from '../../../utils/note' +import { + benchmarkSpendPostTime, + getSpendPostTimeInMs, + updateSpendPostTimeInMs, +} from '../../../utils/spendPostTime' +import { + displayTransactionSummary, + TransactionTimer, + watchTransaction, +} from '../../../utils/transaction' export class CombineNotesCommand extends IronfishCommand { static description = `Combine notes into a single note` @@ -71,151 +77,6 @@ export class CombineNotesCommand extends IronfishCommand { }), } - private async getSpendPostTimeInMs( - client: RpcClient, - account: string, - forceBenchmark: boolean, - ): Promise { - let spendPostTime = this.sdk.internal.get('spendPostTime') - - const spendPostTimeAt = this.sdk.internal.get('spendPostTimeAt') - - const shouldbenchmark = - forceBenchmark || - spendPostTime <= 0 || - Date.now() - spendPostTimeAt > 1000 * 60 * 60 * 24 * 30 // 1 month - - if (shouldbenchmark) { - spendPostTime = await this.benchmarkSpendPostTime(client, account) - - this.sdk.internal.set('spendPostTime', spendPostTime) - this.sdk.internal.set('spendPostTimeAt', Date.now()) - await this.sdk.internal.save() - } - - return spendPostTime - } - - private async benchmarkSpendPostTime(client: RpcClient, account: string): Promise { - const publicKey = ( - await client.wallet.getAccountPublicKey({ - account: account, - }) - ).content.publicKey - - const notes = await this.fetchNotes(client, account, 10) - - CliUx.ux.action.start('Measuring time to combine 1 note') - - const feeRates = await client.wallet.estimateFeeRates() - - /** Transaction 1: selects 1 note */ - - const txn1Params: CreateTransactionRequest = { - account: account, - outputs: [ - { - publicAddress: publicKey, - amount: CurrencyUtils.encode(BigInt(notes[0].value)), - memo: '', - }, - ], - fee: null, - feeRate: null, - notes: [notes[0].noteHash], - } - - /** Transaction 2: selects two notes */ - - const txn2Params: CreateTransactionRequest = { - account: account, - outputs: [ - { - publicAddress: publicKey, - amount: CurrencyUtils.encode(BigInt(notes[0].value) + BigInt(notes[1].value)), - memo: '', - }, - ], - fee: null, - feeRate: null, - notes: [notes[0].noteHash, notes[1].noteHash], - } - - const promisesTxn1 = [] - const promisesTxn2 = [] - - for (let i = 0; i < 3; i++) { - promisesTxn1.push(this.measureTransactionPostTime(client, txn1Params, feeRates)) - promisesTxn2.push(this.measureTransactionPostTime(client, txn2Params, feeRates)) - } - - const resultTxn1 = await Promise.all(promisesTxn1) - const resultTxn2 = await Promise.all(promisesTxn2) - - const delta = Math.ceil( - (resultTxn2.reduce((acc, curr) => acc + curr, 0) - - resultTxn1.reduce((acc, curr) => acc + curr, 0)) / - 3, - ) - - CliUx.ux.action.stop(TimeUtils.renderSpan(delta)) - - return delta - } - - private async measureTransactionPostTime( - client: RpcClient, - params: CreateTransactionRequest, - feeRates: RpcResponseEnded, - ) { - const response = await client.wallet.createTransaction({ - ...params, - feeRate: feeRates.content.fast, - }) - - const bytes = Buffer.from(response.content.transaction, 'hex') - const raw = RawTransactionSerde.deserialize(bytes) - - const start = BenchUtils.start() - - await client.wallet.postTransaction({ - transaction: RawTransactionSerde.serialize(raw).toString('hex'), - broadcast: false, - }) - - return BenchUtils.end(start) - } - - private async fetchNotes(client: RpcClient, account: string, notesToCombine: number) { - const noteSize = await this.getNoteTreeSize(client) - - const getNotesResponse = await client.wallet.getNotes({ - account, - pageSize: notesToCombine, - filter: { - assetId: Asset.nativeId().toString('hex'), - spent: false, - }, - }) - - // filtering notes by noteSize and sorting them by value in ascending order - const notes = getNotesResponse.content.notes - .filter((note) => { - if (!note.index) { - return false - } - return note.index < noteSize - }) - .sort((a, b) => { - if (a.value < b.value) { - return -1 - } - return 1 - }) - - return notes - } - private async selectNotesToCombine(spendPostTimeMs: number): Promise { const spendsPerMinute = Math.max(Math.floor(60000 / spendPostTimeMs), 2) // minimum of 2 notes per minute in case the spentPostTime is very high @@ -339,23 +200,6 @@ export class CombineNotesCommand extends IronfishCommand { return expiration } - private async getNoteTreeSize(client: RpcClient) { - const getCurrentBlock = await client.chain.getChainInfo() - - const currentBlockSequence = parseInt(getCurrentBlock.content.currentBlockIdentifier.index) - - const getBlockResponse = await client.chain.getBlock({ - sequence: currentBlockSequence, - }) - - Assert.isNotNull(getBlockResponse.content.block.noteSize) - - const config = await client.config.getConfig() - - // Adding a buffer to avoid a mismatch between confirmations used to load notes and confirmations used when creating witnesses to spend them - return getBlockResponse.content.block.noteSize - (config.content.confirmations || 2) - } - private async getCurrentBlockSequence(client: RpcClient) { const getCurrentBlock = await client.chain.getChainInfo() const currentBlockSequence = parseInt(getCurrentBlock.content.currentBlockIdentifier.index) @@ -393,7 +237,11 @@ export class CombineNotesCommand extends IronfishCommand { await this.ensureUserHasEnoughNotesToCombine(client, from) - const spendPostTime = await this.getSpendPostTimeInMs(client, from, flags.benchmark) + let spendPostTime = getSpendPostTimeInMs(this.sdk) + + if (spendPostTime <= 0 || flags.benchmark) { + spendPostTime = await benchmarkSpendPostTime(this.sdk, client, from) + } let numberOfNotes = flags.notes @@ -401,7 +249,7 @@ export class CombineNotesCommand extends IronfishCommand { numberOfNotes = await this.selectNotesToCombine(spendPostTime) } - let notes = await this.fetchNotes(client, from, numberOfNotes) + let notes = await fetchNotes(client, from, numberOfNotes) // If the user doesn't have enough notes for their selection, we reduce the number of notes so that // the largest note can be used for fees. @@ -460,15 +308,24 @@ export class CombineNotesCommand extends IronfishCommand { ) raw = RawTransactionSerde.deserialize(createTransactionBytes) - displayTransactionSummary(raw, Asset.nativeId().toString('hex'), amount, from, to, memo) + // TODO(mat): We need to add asset support here for bridges, etc. + const assetData = ( + await client.wallet.getAsset({ + id: Asset.nativeId().toString('hex'), + account: from, + }) + ).content + + displayTransactionSummary(raw, assetData, amount, from, to, memo) - const estimateInMs = Math.max(Math.ceil(spendPostTime * raw.spends.length), 1000) + const transactionTimer = new TransactionTimer(spendPostTime, raw) this.log( - `Time to send: ${TimeUtils.renderSpan(estimateInMs, { + `Time to combine: ${TimeUtils.renderSpan(transactionTimer.getEstimateInMs(), { hideMilliseconds: true, })}`, ) + if (!flags.confirm) { const confirmed = await CliUx.ux.confirm('Do you confirm (Y/N)?') if (!confirmed) { @@ -476,26 +333,7 @@ export class CombineNotesCommand extends IronfishCommand { } } - const progressBar = CliUx.ux.progress({ - format: '{title}: [{bar}] {percentage}% | {estimate}', - }) as ProgressBar - - const startTime = Date.now() - - progressBar.start(100, 0, { - title: 'Sending the transaction', - estimate: TimeUtils.renderSpan(estimateInMs, { hideMilliseconds: true }), - }) - - const timer = setInterval(() => { - const durationInMs = Date.now() - startTime - const timeRemaining = estimateInMs - durationInMs - const progress = Math.round((durationInMs / estimateInMs) * 100) - - progressBar.update(progress, { - estimate: TimeUtils.renderSpan(timeRemaining, { hideMilliseconds: true }), - }) - }, 1000) + transactionTimer.start() const response = await client.wallet.postTransaction({ transaction: RawTransactionSerde.serialize(raw).toString('hex'), @@ -505,14 +343,22 @@ export class CombineNotesCommand extends IronfishCommand { const bytes = Buffer.from(response.content.transaction, 'hex') const transaction = new Transaction(bytes) - clearInterval(timer) - progressBar.update(100) - progressBar.stop() + transactionTimer.end() + + await updateSpendPostTimeInMs( + this.sdk, + raw, + transactionTimer.getStartTime(), + transactionTimer.getEndTime(), + ) this.log( - `Sending took ${TimeUtils.renderSpan(Date.now() - startTime, { - hideMilliseconds: true, - })}`, + `Combining took ${TimeUtils.renderSpan( + transactionTimer.getEndTime() - transactionTimer.getStartTime(), + { + hideMilliseconds: true, + }, + )}`, ) if (response.content.accepted === false) { @@ -525,7 +371,7 @@ export class CombineNotesCommand extends IronfishCommand { this.warn(`Transaction '${transaction.hash().toString('hex')}' failed to broadcast`) } - await this.displayCombinedNoteHashes(client, from, transaction) + await this.displayCombinedNoteHashes(client, from, transaction, assetData) this.log(`Transaction hash: ${transaction.hash().toString('hex')}`) @@ -551,7 +397,7 @@ export class CombineNotesCommand extends IronfishCommand { } private async ensureUserHasEnoughNotesToCombine(client: RpcClient, from: string) { - const notes = await this.fetchNotes(client, from, 10) + const notes = await fetchNotes(client, from, 10) if (notes.length < 3) { this.log(`Your notes are already combined. You currently have ${notes.length} notes.`) @@ -563,6 +409,7 @@ export class CombineNotesCommand extends IronfishCommand { client: RpcClient, from: string, transaction: Transaction, + assetData: RpcAsset, ) { const resultingNotes = ( await client.wallet.getAccountTransaction({ @@ -580,7 +427,8 @@ export class CombineNotesCommand extends IronfishCommand { }, value: { header: 'Value', - get: (note) => CurrencyUtils.renderIron(note.value, true), + get: (note) => + CurrencyUtils.render(note.value, true, assetData.id, assetData.verification), }, owner: { header: 'Owner', diff --git a/ironfish-cli/src/commands/wallet/notes/index.ts b/ironfish-cli/src/commands/wallet/notes/index.ts index 1962dac0af..e8ec7f3275 100644 --- a/ironfish-cli/src/commands/wallet/notes/index.ts +++ b/ironfish-cli/src/commands/wallet/notes/index.ts @@ -1,7 +1,7 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { CurrencyUtils } from '@ironfish/sdk' +import { CurrencyUtils, RpcAsset } from '@ironfish/sdk' import { CliUx } from '@oclif/core' import { IronfishCommand } from '../../../command' import { RemoteFlags } from '../../../flags' @@ -28,6 +28,8 @@ export class NotesCommand extends IronfishCommand { const { flags, args } = await this.parse(NotesCommand) const account = args.account as string | undefined + const assetLookup: Map = new Map() + const client = await this.sdk.connectRpc() const response = client.wallet.getAccountNotesStream({ account }) @@ -35,6 +37,13 @@ export class NotesCommand extends IronfishCommand { let showHeader = !flags['no-header'] for await (const note of response.contentStream()) { + if (!assetLookup.has(note.assetId)) { + assetLookup.set( + note.assetId, + (await client.wallet.getAsset({ id: note.assetId, account })).content, + ) + } + CliUx.ux.table( [note], { @@ -62,7 +71,13 @@ export class NotesCommand extends IronfishCommand { ...TableCols.asset({ extended: flags.extended }), value: { header: 'Amount', - get: (row) => CurrencyUtils.renderIron(row.value), + get: (row) => + CurrencyUtils.render( + row.value, + false, + row.assetId, + assetLookup.get(row.assetId)?.verification, + ), minWidth: 16, }, noteHash: { diff --git a/ironfish-cli/src/commands/wallet/post.ts b/ironfish-cli/src/commands/wallet/post.ts index 7a0c1b2d5f..69b862c4b1 100644 --- a/ironfish-cli/src/commands/wallet/post.ts +++ b/ironfish-cli/src/commands/wallet/post.ts @@ -116,13 +116,10 @@ export class PostCommand extends IronfishCommand { spending += output.note.value() } + const renderedSpending = CurrencyUtils.render(spending, true) + const renderedFee = CurrencyUtils.render(raw.fee, true) this.log( - `You are about to post a transaction that sends ${CurrencyUtils.renderIron( - spending, - true, - )}, with ${raw.mints.length} mints and ${ - raw.burns.length - } burns with a fee ${CurrencyUtils.renderIron(raw.fee, true)} using account ${account}`, + `You are about to post a transaction that sends ${renderedSpending}, with ${raw.mints.length} mints and ${raw.burns.length} burns with a fee ${renderedFee} using account ${account}`, ) return CliUx.ux.confirm('Do you want to post this (Y/N)?') diff --git a/ironfish-cli/src/commands/wallet/send.ts b/ironfish-cli/src/commands/wallet/send.ts index 35149a08f6..b7cee6dd41 100644 --- a/ironfish-cli/src/commands/wallet/send.ts +++ b/ironfish-cli/src/commands/wallet/send.ts @@ -8,24 +8,30 @@ import { isValidPublicAddress, RawTransaction, RawTransactionSerde, + TimeUtils, Transaction, } from '@ironfish/sdk' import { CliUx, Flags } from '@oclif/core' import { IronfishCommand } from '../../command' -import { HexFlag, IronFlag, RemoteFlags } from '../../flags' +import { HexFlag, IronFlag, RemoteFlags, ValueFlag } from '../../flags' import { selectAsset } from '../../utils/asset' import { promptCurrency } from '../../utils/currency' import { getExplorer } from '../../utils/explorer' import { selectFee } from '../../utils/fees' -import { displayTransactionSummary, watchTransaction } from '../../utils/transaction' +import { getSpendPostTimeInMs, updateSpendPostTimeInMs } from '../../utils/spendPostTime' +import { + displayTransactionSummary, + TransactionTimer, + watchTransaction, +} from '../../utils/transaction' export class Send extends IronfishCommand { static description = `Send coins to another account` static examples = [ - '$ ironfish wallet:send --amount 2 --fee 0.00000001 --to 997c586852d1b12da499bcff53595ba37d04e4909dbdb1a75f3bfd90dd7212217a1c2c0da652d187fc52ed', - '$ ironfish wallet:send --amount 2 --fee 0.00000001 --to 997c586852d1b12da499bcff53595ba37d04e4909dbdb1a75f3bfd90dd7212217a1c2c0da652d187fc52ed --account otheraccount', - '$ ironfish wallet:send --amount 2 --fee 0.00000001 --to 997c586852d1b12da499bcff53595ba37d04e4909dbdb1a75f3bfd90dd7212217a1c2c0da652d187fc52ed --account otheraccount --memo "enjoy!"', + '$ ironfish wallet:send --amount 2.003 --fee 0.00000001 --to 997c586852d1b12da499bcff53595ba37d04e4909dbdb1a75f3bfd90dd7212217a1c2c0da652d187fc52ed', + '$ ironfish wallet:send --amount 2.003 --fee 0.00000001 --to 997c586852d1b12da499bcff53595ba37d04e4909dbdb1a75f3bfd90dd7212217a1c2c0da652d187fc52ed --account otheraccount', + '$ ironfish wallet:send --amount 2.003 --fee 0.00000001 --to 997c586852d1b12da499bcff53595ba37d04e4909dbdb1a75f3bfd90dd7212217a1c2c0da652d187fc52ed --account otheraccount --memo "enjoy!"', ] static flags = { @@ -34,9 +40,9 @@ export class Send extends IronfishCommand { char: 'f', description: 'The account to send money from', }), - amount: IronFlag({ + amount: ValueFlag({ char: 'a', - description: 'Amount of coins to send', + description: 'The amount to send in the major denomination', flagName: 'amount', }), to: Flags.string({ @@ -107,7 +113,6 @@ export class Send extends IronfishCommand { async start(): Promise { const { flags } = await this.parse(Send) - let amount = flags.amount let assetId = flags.assetId let to = flags.to?.trim() let from = flags.account?.trim() @@ -140,17 +145,41 @@ export class Send extends IronfishCommand { } } + const assetData = ( + await client.wallet.getAsset({ + account: from, + id: assetId, + confirmations: flags.confirmations, + }) + ).content + + let amount + if (flags.amount) { + const [parsedAmount, error] = CurrencyUtils.tryMajorToMinor( + flags.amount, + assetId, + assetData?.verification, + ) + + if (error) { + this.error(`${error.reason}`) + } + + amount = parsedAmount + } + if (amount == null) { amount = await promptCurrency({ client: client, required: true, - text: 'Enter the amount', + text: 'Enter the amount in the major denomination', minimum: 1n, logger: this.logger, + assetId: assetId, + assetVerification: assetData.verification, balance: { account: from, confirmations: flags.confirmations, - assetId, }, }) } @@ -237,7 +266,19 @@ export class Send extends IronfishCommand { this.exit(0) } - displayTransactionSummary(raw, assetId, amount, from, to, memo) + displayTransactionSummary(raw, assetData, amount, from, to, memo) + + const spendPostTime = getSpendPostTimeInMs(this.sdk) + + const transactionTimer = new TransactionTimer(spendPostTime, raw) + + if (spendPostTime > 0) { + this.log( + `Time to send: ${TimeUtils.renderSpan(transactionTimer.getEstimateInMs(), { + hideMilliseconds: true, + })}`, + ) + } if (!flags.confirm) { const confirmed = await CliUx.ux.confirm('Do you confirm (Y/N)?') @@ -246,7 +287,7 @@ export class Send extends IronfishCommand { } } - CliUx.ux.action.start('Sending the transaction') + transactionTimer.start() const response = await client.wallet.postTransaction({ transaction: RawTransactionSerde.serialize(raw).toString('hex'), @@ -256,7 +297,23 @@ export class Send extends IronfishCommand { const bytes = Buffer.from(response.content.transaction, 'hex') const transaction = new Transaction(bytes) - CliUx.ux.action.stop() + transactionTimer.end() + + this.log( + `Sending took ${TimeUtils.renderSpan( + transactionTimer.getEndTime() - transactionTimer.getStartTime(), + { + hideMilliseconds: true, + }, + )}`, + ) + + await updateSpendPostTimeInMs( + this.sdk, + raw, + transactionTimer.getStartTime(), + transactionTimer.getEndTime(), + ) if (response.content.accepted === false) { this.warn( @@ -268,9 +325,16 @@ export class Send extends IronfishCommand { this.warn(`Transaction '${transaction.hash().toString('hex')}' failed to broadcast`) } - this.log(`Sent ${CurrencyUtils.renderIron(amount, true, assetId)} to ${to} from ${from}`) + const renderedAmount = CurrencyUtils.render( + amount, + true, + assetData.id, + assetData.verification, + ) + const renderedFee = CurrencyUtils.render(transaction.fee(), true) + this.log(`Sent ${renderedAmount} to ${to} from ${from}`) this.log(`Hash: ${transaction.hash().toString('hex')}`) - this.log(`Fee: ${CurrencyUtils.renderIron(transaction.fee(), true)}`) + this.log(`Fee: ${renderedFee}`) this.log(`Memo: ${memo}`) const networkId = (await client.chain.getNetworkInfo()).content.networkId diff --git a/ironfish-cli/src/commands/wallet/transaction/index.ts b/ironfish-cli/src/commands/wallet/transaction/index.ts index aa392506d6..465230aeaf 100644 --- a/ironfish-cli/src/commands/wallet/transaction/index.ts +++ b/ironfish-cli/src/commands/wallet/transaction/index.ts @@ -55,12 +55,13 @@ export class TransactionCommand extends IronfishCommand { Assert.isNotUndefined(response.content.transaction.notes) Assert.isNotUndefined(response.content.transaction.spends) + const renderedFee = CurrencyUtils.render(response.content.transaction.fee, true) this.log(`Transaction: ${hash}`) this.log(`Account: ${response.content.account}`) this.log(`Status: ${response.content.transaction.status}`) this.log(`Type: ${response.content.transaction.type}`) this.log(`Timestamp: ${TimeUtils.renderString(response.content.transaction.timestamp)}`) - this.log(`Fee: ${CurrencyUtils.renderIron(response.content.transaction.fee, true)}`) + this.log(`Fee: ${renderedFee}`) if (response.content.transaction.blockHash && response.content.transaction.blockSequence) { this.log(`Block Hash: ${response.content.transaction.blockHash}`) this.log(`Block Sequence: ${response.content.transaction.blockSequence}`) @@ -93,7 +94,8 @@ export class TransactionCommand extends IronfishCommand { CliUx.ux.table(noteAssetPairs, { amount: { header: 'Amount', - get: ({ note }) => CurrencyUtils.renderIron(note.value), + get: ({ asset, note }) => + CurrencyUtils.render(note.value, false, asset.id, asset.verification), }, assetName: { header: 'Asset Name', diff --git a/ironfish-cli/src/commands/wallet/transactions.ts b/ironfish-cli/src/commands/wallet/transactions.ts index e5359a7ef2..243e7074a7 100644 --- a/ironfish-cli/src/commands/wallet/transactions.ts +++ b/ironfish-cli/src/commands/wallet/transactions.ts @@ -198,8 +198,11 @@ export class TransactionsCommand extends IronfishCommand { const amount = BigInt(note.value) const assetId = note.assetId const assetName = assetLookup[note.assetId].name + const assetDecimals = assetLookup[note.assetId].verification.decimals + const assetSymbol = assetLookup[note.assetId].verification.symbol const sender = note.sender const recipient = note.owner + const memo = note.memo const group = this.getRowGroup(index, noteCount, transactionRows.length) @@ -210,19 +213,25 @@ export class TransactionsCommand extends IronfishCommand { group, assetId, assetName, + assetDecimals, + assetSymbol, amount, feePaid, sender, recipient, + memo, }) } else { transactionRows.push({ group, assetId, assetName, + assetDecimals, + assetSymbol, amount, sender, recipient, + memo, }) } } @@ -280,14 +289,17 @@ export class TransactionsCommand extends IronfishCommand { feePaid: { header: 'Fee Paid ($IRON)', get: (row) => - row.feePaid && row.feePaid !== 0n ? CurrencyUtils.renderIron(row.feePaid) : '', + row.feePaid && row.feePaid !== 0n ? CurrencyUtils.render(row.feePaid) : '', }, ...TableCols.asset({ extended, format }), amount: { header: 'Amount', get: (row) => { Assert.isNotUndefined(row.amount) - return CurrencyUtils.renderIron(row.amount) + return CurrencyUtils.render(row.amount, false, row.assetId, { + decimals: row.assetDecimals, + symbol: row.assetSymbol, + }) }, minWidth: 16, }, @@ -302,6 +314,9 @@ export class TransactionsCommand extends IronfishCommand { recipient: { header: 'Recipient Address', }, + memo: { + header: 'Memo', + }, } } @@ -341,6 +356,8 @@ type TransactionRow = { hash: string assetId: string assetName: string + assetDecimals?: number + assetSymbol?: string amount: bigint feePaid?: bigint notesCount: number diff --git a/ironfish-cli/src/flags.ts b/ironfish-cli/src/flags.ts index a98fd64294..5362ac78f8 100644 --- a/ironfish-cli/src/flags.ts +++ b/ironfish-cli/src/flags.ts @@ -9,6 +9,7 @@ import { DEFAULT_USE_RPC_IPC, DEFAULT_USE_RPC_TCP, DEFAULT_USE_RPC_TLS, + FixedNumberUtils, MAXIMUM_ORE_AMOUNT, MINIMUM_ORE_AMOUNT, } from '@ironfish/sdk' @@ -157,6 +158,24 @@ export const parseIron = (input: string, opts: IronOpts): Promise => { }) } +/** + * A flag used for a value when we do not yet know how to treat the conversion + * from major to minor denomination. Parses the value simply as a valid number, + * to be converted later manually. + */ +export const ValueFlag = Flags.custom({ + parse: async (input, _ctx, opts) => { + return new Promise((resolve, reject) => { + try { + FixedNumberUtils.tryDecodeDecimal(input) + resolve(input) + } catch (e) { + reject(new Error(`The number inputted for ${opts.name} is invalid.`)) + } + }) + }, +}) + export const HexFlag = Flags.custom({ parse: async (input, _ctx, opts) => { const hexRegex = /^[0-9A-Fa-f]+$/g diff --git a/ironfish-cli/src/utils/asset.ts b/ironfish-cli/src/utils/asset.ts index c8b43f84c8..4770dd6125 100644 --- a/ironfish-cli/src/utils/asset.ts +++ b/ironfish-cli/src/utils/asset.ts @@ -4,10 +4,10 @@ import { Asset } from '@ironfish/rust-nodejs' import { - AssetVerification, BufferUtils, CurrencyUtils, RpcAsset, + RpcAssetVerification, RpcClient, StringUtils, } from '@ironfish/sdk' @@ -15,13 +15,14 @@ import chalk from 'chalk' import inquirer from 'inquirer' type RenderAssetNameOptions = { - verification?: AssetVerification + verification?: RpcAssetVerification outputType?: string - verbose?: boolean - logWarn?: (msg: string) => void } -export function renderAssetName(name: string, options?: RenderAssetNameOptions): string { +export function renderAssetWithVerificationStatus( + name: string, + options?: RenderAssetNameOptions, +): string { if (options?.outputType) { // User requested some machine-readable output (like CSV, JSON, or YAML). // Do not alter the name in any way. @@ -34,28 +35,17 @@ export function renderAssetName(name: string, options?: RenderAssetNameOptions): case 'verified': return chalk.green(name + '✓') case 'unknown': - if (options?.verbose && options?.logWarn) { - options.logWarn(`Could not check whether ${name} is a verified asset`) - } - return name + return chalk.yellow(name + '?') default: return name } } -export function renderAssetNameFromHex( - hexName: string, - options?: RenderAssetNameOptions, -): string { - const name = BufferUtils.toHuman(Buffer.from(hexName, 'hex')) - return renderAssetName(name, options) -} - export function compareAssets( leftName: string, - leftVerification: AssetVerification, + leftVerification: RpcAssetVerification, rightName: string, - rightVerification: AssetVerification, + rightVerification: RpcAssetVerification, ): number { const isLeftVerified = leftVerification?.status === 'verified' const isRightVerified = rightVerification?.status === 'verified' @@ -134,9 +124,13 @@ export async function selectAsset( const choices = balances.map((balance) => { const assetName = BufferUtils.toHuman(Buffer.from(assetLookup[balance.assetId].name, 'hex')) - const name = `${balance.assetId} (${assetName}) (${CurrencyUtils.renderIron( + const renderedAvailable = CurrencyUtils.render( balance.available, - )})` + false, + balance.assetId, + assetLookup[balance.assetId].verification, + ) + const name = `${balance.assetId} (${assetName}) (${renderedAvailable})` const value = { id: balance.assetId, diff --git a/ironfish-cli/src/utils/currency.ts b/ironfish-cli/src/utils/currency.ts index 46a41d8fa0..a769f9ae65 100644 --- a/ironfish-cli/src/utils/currency.ts +++ b/ironfish-cli/src/utils/currency.ts @@ -3,18 +3,23 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ import { Asset } from '@ironfish/rust-nodejs' -import { Assert, CurrencyUtils, Logger, RpcClient } from '@ironfish/sdk' +import { Assert, CurrencyUtils, Logger, RpcAssetVerification, RpcClient } from '@ironfish/sdk' import { CliUx } from '@oclif/core' +/** + * This prompts the user to enter an amount of currency in the major + * denomination and returns the value in the minor denomination + */ export async function promptCurrency(options: { client: Pick text: string logger: Logger required: true minimum?: bigint + assetId?: string + assetVerification?: RpcAssetVerification balance?: { account?: string - assetId?: string confirmations?: number } }): Promise @@ -25,9 +30,10 @@ export async function promptCurrency(options: { logger: Logger required?: boolean minimum?: bigint + assetId?: string + assetVerification?: RpcAssetVerification balance?: { account?: string - assetId?: string confirmations?: number } }): Promise { @@ -36,11 +42,17 @@ export async function promptCurrency(options: { if (options.balance) { const balance = await options.client.wallet.getAccountBalance({ account: options.balance.account, - assetId: options.balance.assetId ?? Asset.nativeId().toString('hex'), + assetId: options.assetId ?? Asset.nativeId().toString('hex'), confirmations: options.balance.confirmations, }) - text += ` (balance ${CurrencyUtils.renderIron(balance.content.available)})` + const renderedAvailable = CurrencyUtils.render( + balance.content.available, + false, + options.assetId, + options.assetVerification, + ) + text += ` (balance ${renderedAvailable})` } // eslint-disable-next-line no-constant-condition @@ -53,7 +65,11 @@ export async function promptCurrency(options: { return null } - const [amount, error] = CurrencyUtils.decodeIronTry(input) + const [amount, error] = CurrencyUtils.tryMajorToMinor( + input, + options.assetId, + options.assetVerification, + ) if (error) { options.logger.error(`Error: ${error.reason}`) @@ -63,7 +79,13 @@ export async function promptCurrency(options: { Assert.isNotNull(amount) if (options.minimum != null && amount < options.minimum) { - options.logger.error(`Error: Minimum is ${CurrencyUtils.renderIron(options.minimum)}`) + const renderedMinimum = CurrencyUtils.render( + options.minimum, + false, + options.assetId, + options.assetVerification, + ) + options.logger.error(`Error: Minimum is ${renderedMinimum}`) continue } diff --git a/ironfish-cli/src/utils/fees.ts b/ironfish-cli/src/utils/fees.ts index f875196740..bfe13908d5 100644 --- a/ironfish-cli/src/utils/fees.ts +++ b/ironfish-cli/src/utils/fees.ts @@ -2,7 +2,6 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { Asset } from '@ironfish/rust-nodejs' import { Assert, CreateTransactionRequest, @@ -81,7 +80,6 @@ export async function selectFee(options: { balance: { account: options.account, confirmations: options.confirmations, - assetId: Asset.nativeId().toString('hex'), }, }) @@ -137,7 +135,7 @@ function getChoiceFromTx( value: RawTransaction | null } { return { - name: `${name} ${transaction ? CurrencyUtils.renderIron(transaction.fee) : ''}`, + name: `${name} ${transaction ? CurrencyUtils.render(transaction.fee) : ''}`, disabled: transaction ? false : 'Not enough $IRON', value: transaction, } diff --git a/ironfish-cli/src/utils/note.ts b/ironfish-cli/src/utils/note.ts new file mode 100644 index 0000000000..60ba372799 --- /dev/null +++ b/ironfish-cli/src/utils/note.ts @@ -0,0 +1,53 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +import { Asset } from '@ironfish/rust-nodejs' +import { Assert, RpcClient } from '@ironfish/sdk' + +export async function fetchNotes(client: RpcClient, account: string, notesToCombine: number) { + const noteSize = await getNoteTreeSize(client) + + // TODO(mat): We need to add asset support here for bridges, etc. + const getNotesResponse = await client.wallet.getNotes({ + account, + pageSize: notesToCombine, + filter: { + assetId: Asset.nativeId().toString('hex'), + spent: false, + }, + }) + + // filtering notes by noteSize and sorting them by value in ascending order + const notes = getNotesResponse.content.notes + .filter((note) => { + if (!note.index) { + return false + } + return note.index < noteSize + }) + .sort((a, b) => { + if (a.value < b.value) { + return -1 + } + return 1 + }) + + return notes +} + +async function getNoteTreeSize(client: RpcClient) { + const getCurrentBlock = await client.chain.getChainInfo() + + const currentBlockSequence = parseInt(getCurrentBlock.content.currentBlockIdentifier.index) + + const getBlockResponse = await client.chain.getBlock({ + sequence: currentBlockSequence, + }) + + Assert.isNotNull(getBlockResponse.content.block.noteSize) + + const config = await client.config.getConfig() + + // Adding a buffer to avoid a mismatch between confirmations used to load notes and confirmations used when creating witnesses to spend them + return getBlockResponse.content.block.noteSize - (config.content.confirmations || 2) +} diff --git a/ironfish-cli/src/utils/spendPostTime.ts b/ironfish-cli/src/utils/spendPostTime.ts new file mode 100644 index 0000000000..b0fb366431 --- /dev/null +++ b/ironfish-cli/src/utils/spendPostTime.ts @@ -0,0 +1,156 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +import { + BenchUtils, + CreateTransactionRequest, + CurrencyUtils, + EstimateFeeRatesResponse, + IronfishSdk, + RawTransaction, + RawTransactionSerde, + RpcClient, + RpcResponseEnded, + TimeUtils, +} from '@ironfish/sdk' +import { CliUx } from '@oclif/core' +import { fetchNotes } from './note' + +/** + * Recalculates the average spendPostTime based on the new measurement. + */ +export async function updateSpendPostTimeInMs( + sdk: IronfishSdk, + raw: RawTransaction, + startTime: number, + endTime: number, +) { + if (raw.spends.length === 0) { + return + } + + const transactionDuration = endTime - startTime + const averageSpendTime = Math.ceil(transactionDuration / raw.spends.length) + + const oldAverage = sdk.internal.get('spendPostTime') + const oldMeasurementCount = sdk.internal.get('spendPostTimeMeasurements') + + // Calculate the new average using the formula: ((oldAverage * oldCount) + newValue) / newCount + const newMeasurementCount = oldMeasurementCount + 1 + const newAverageSpendPostTime = + (oldAverage * oldMeasurementCount + averageSpendTime) / newMeasurementCount + + sdk.internal.set('spendPostTime', newAverageSpendPostTime) + sdk.internal.set('spendPostTimeMeasurements', newMeasurementCount) + await sdk.internal.save() +} + +export function getSpendPostTimeInMs(sdk: IronfishSdk): number { + return sdk.internal.get('spendPostTime') +} + +export async function benchmarkSpendPostTime( + sdk: IronfishSdk, + client: RpcClient, + account: string, +): Promise { + CliUx.ux.action.start('Measuring time to combine 1 note') + + const publicKey = ( + await client.wallet.getAccountPublicKey({ + account: account, + }) + ).content.publicKey + + const notes = await fetchNotes(client, account, 10) + + // Not enough notes in the account to measure the time to combine a note + if (notes.length < 3) { + CliUx.ux.error('Not enough notes.') + } + + const feeRates = await client.wallet.estimateFeeRates() + + /** Transaction 1: selects 1 note */ + + const txn1Params: CreateTransactionRequest = { + account: account, + outputs: [ + { + publicAddress: publicKey, + amount: CurrencyUtils.encode(BigInt(notes[0].value)), + memo: '', + }, + ], + fee: null, + feeRate: null, + notes: [notes[0].noteHash], + } + + /** Transaction 2: selects two notes */ + + const txn2Params: CreateTransactionRequest = { + account: account, + outputs: [ + { + publicAddress: publicKey, + amount: CurrencyUtils.encode(BigInt(notes[0].value) + BigInt(notes[1].value)), + memo: '', + }, + ], + fee: null, + feeRate: null, + notes: [notes[0].noteHash, notes[1].noteHash], + } + + const promisesTxn1 = [] + const promisesTxn2 = [] + + for (let i = 0; i < 3; i++) { + promisesTxn1.push(measureTransactionPostTime(client, txn1Params, feeRates)) + promisesTxn2.push(measureTransactionPostTime(client, txn2Params, feeRates)) + } + + const resultTxn1 = await Promise.all(promisesTxn1) + const resultTxn2 = await Promise.all(promisesTxn2) + + const spendPostTime = Math.ceil( + (resultTxn2.reduce((acc, curr) => acc + curr, 0) - + resultTxn1.reduce((acc, curr) => acc + curr, 0)) / + 3, + ) + + if (spendPostTime <= 0) { + CliUx.ux.error('Error calculating spendPostTime. Please try again.') + } + + CliUx.ux.action.stop(TimeUtils.renderSpan(spendPostTime)) + sdk.internal.set('spendPostTime', spendPostTime) + sdk.internal.set('spendPostTimeMeasurements', 1) + await sdk.internal.save() + + return spendPostTime +} + +async function measureTransactionPostTime( + client: RpcClient, + params: CreateTransactionRequest, + feeRates: RpcResponseEnded, +) { + const response = await client.wallet.createTransaction({ + ...params, + feeRate: feeRates.content.fast, + }) + + const bytes = Buffer.from(response.content.transaction, 'hex') + const raw = RawTransactionSerde.deserialize(bytes) + + const start = BenchUtils.start() + + await client.wallet.postTransaction({ + transaction: RawTransactionSerde.serialize(raw).toString('hex'), + broadcast: false, + }) + + return BenchUtils.end(start) +} diff --git a/ironfish-cli/src/utils/transaction.ts b/ironfish-cli/src/utils/transaction.ts index bcdf5be195..dc30a1ffbd 100644 --- a/ironfish-cli/src/utils/transaction.ts +++ b/ironfish-cli/src/utils/transaction.ts @@ -5,15 +5,103 @@ import { createRootLogger, CurrencyUtils, + GetUnsignedTransactionNotesResponse, Logger, PromiseUtils, RawTransaction, + RpcAsset, RpcClient, TimeUtils, TransactionStatus, UnsignedTransaction, } from '@ironfish/sdk' import { CliUx } from '@oclif/core' +import { ProgressBar } from '../types' +import { getAssetsByIDs } from './asset' + +export class TransactionTimer { + private progressBar: ProgressBar | undefined + private startTime: number | undefined + private endTime: number | undefined + private estimateInMs: number + private timer: NodeJS.Timer | undefined + + constructor(spendPostTime: number, raw: RawTransaction) { + // if spendPostTime is 0, we don't have enough data to estimate the time to send a transaction + + this.estimateInMs = + spendPostTime > 0 ? Math.max(Math.ceil(spendPostTime * raw.spends.length), 1000) : -1 + } + + getEstimateInMs(): number { + return this.estimateInMs + } + + getStartTime(): number { + if (!this.startTime) { + throw new Error('TransactionTimer not started') + } + return this.startTime + } + + getEndTime(): number { + if (!this.endTime) { + throw new Error('TransactionTimer not ended') + } + return this.endTime + } + + start() { + this.startTime = performance.now() + + if (this.estimateInMs <= 0) { + CliUx.ux.action.start('Sending the transaction') + return + } + + this.progressBar = CliUx.ux.progress({ + format: '{title}: [{bar}] {percentage}% | {estimate}', + }) as ProgressBar + + this.progressBar.start(100, 0, { + title: 'Sending the transaction', + estimate: TimeUtils.renderSpan(this.estimateInMs, { hideMilliseconds: true }), + }) + + this.timer = setInterval(() => { + if (!this.progressBar || !this.startTime) { + return + } + const durationInMs = performance.now() - this.startTime + const timeRemaining = this.estimateInMs - durationInMs + const progress = Math.round((durationInMs / this.estimateInMs) * 100) + + this.progressBar.update(progress, { + estimate: TimeUtils.renderSpan(timeRemaining, { hideMilliseconds: true }), + }) + }, 1000) + } + + end() { + if (!this.startTime) { + // transaction timer has not been started + return + } + + this.endTime = performance.now() + + if (!this.progressBar || !this.timer || this.estimateInMs <= 0) { + CliUx.ux.action.stop() + return + } + + clearInterval(this.timer) + this.progressBar.update(100, { + estimate: 'done', + }) + this.progressBar.stop() + } +} export async function renderUnsignedTransactionDetails( client: RpcClient, @@ -23,6 +111,17 @@ export async function renderUnsignedTransactionDetails( ): Promise { logger = logger ?? createRootLogger() + let response + if (unsignedTransaction.notes.length > 0) { + response = await client.wallet.getUnsignedTransactionNotes({ + account, + unsignedTransaction: unsignedTransaction.serialize().toString('hex'), + }) + } + + const assetIds = collectAssetIds(unsignedTransaction, response?.content) + const assetLookup = await getAssetsByIDs(client, assetIds, account, undefined) + if (unsignedTransaction.mints.length > 0) { logger.log('') logger.log('==================') @@ -35,9 +134,15 @@ export async function renderUnsignedTransactionDetails( } logger.log('') + const renderedAmount = CurrencyUtils.render( + mint.value, + false, + mint.asset.id().toString('hex'), + assetLookup[mint.asset.id().toString('hex')].verification, + ) logger.log(`Asset ID: ${mint.asset.id().toString('hex')}`) logger.log(`Name: ${mint.asset.name().toString('utf8')}`) - logger.log(`Amount: ${CurrencyUtils.renderIron(mint.value, false)}`) + logger.log(`Amount: ${renderedAmount}`) if (mint.transferOwnershipTo) { logger.log( @@ -62,8 +167,14 @@ export async function renderUnsignedTransactionDetails( } logger.log('') + const renderedAmount = CurrencyUtils.render( + burn.value, + false, + burn.assetId.toString('hex'), + assetLookup[burn.assetId.toString('hex')].verification, + ) logger.log(`Asset ID: ${burn.assetId.toString('hex')}`) - logger.log(`Amount: ${CurrencyUtils.renderIron(burn.value, false)}`) + logger.log(`Amount: ${renderedAmount}`) logger.log('') } } @@ -90,7 +201,13 @@ export async function renderUnsignedTransactionDetails( } logger.log('') - logger.log(`Amount: ${CurrencyUtils.renderIron(note.value, true, note.assetId)}`) + const renderedAmount = CurrencyUtils.render( + note.value, + true, + note.assetId, + assetLookup[note.assetId].verification, + ) + logger.log(`Amount: ${renderedAmount}`) logger.log(`Memo: ${note.memo}`) logger.log(`Recipient: ${note.owner}`) logger.log(`Sender: ${note.sender}`) @@ -108,7 +225,13 @@ export async function renderUnsignedTransactionDetails( } logger.log('') - logger.log(`Amount: ${CurrencyUtils.renderIron(note.value, true, note.assetId)}`) + const renderedAmount = CurrencyUtils.render( + note.value, + true, + note.assetId, + assetLookup[note.assetId].verification, + ) + logger.log(`Amount: ${renderedAmount}`) logger.log(`Memo: ${note.memo}`) logger.log(`Recipient: ${note.owner}`) logger.log(`Sender: ${note.sender}`) @@ -128,7 +251,7 @@ export async function renderUnsignedTransactionDetails( export function displayTransactionSummary( transaction: RawTransaction, - assetId: string, + asset: RpcAsset, amount: bigint, from: string, to: string, @@ -137,8 +260,8 @@ export function displayTransactionSummary( ): void { logger = logger ?? createRootLogger() - const amountString = CurrencyUtils.renderIron(amount, true, assetId) - const feeString = CurrencyUtils.renderIron(transaction.fee, true) + const amountString = CurrencyUtils.render(amount, true, asset.id, asset.verification) + const feeString = CurrencyUtils.render(transaction.fee, true) const summary = `\ \nTRANSACTION SUMMARY: @@ -242,3 +365,30 @@ export async function watchTransaction(options: { } } } + +function collectAssetIds( + unsignedTransaction: UnsignedTransaction, + notes?: GetUnsignedTransactionNotesResponse, +): string[] { + const assetIds = new Set() + + for (const mint of unsignedTransaction.mints) { + assetIds.add(mint.asset.id().toString('hex')) + } + + for (const burn of unsignedTransaction.burns) { + assetIds.add(burn.assetId.toString('hex')) + } + + if (notes) { + for (const receivedNote of notes.receivedNotes) { + assetIds.add(receivedNote.assetId) + } + + for (const sentNotes of notes.sentNotes) { + assetIds.add(sentNotes.assetId) + } + } + + return Array.from(assetIds) +} diff --git a/ironfish-rust-nodejs/index.d.ts b/ironfish-rust-nodejs/index.d.ts index 3db03c85f8..35812ac3d0 100644 --- a/ironfish-rust-nodejs/index.d.ts +++ b/ironfish-rust-nodejs/index.d.ts @@ -250,6 +250,20 @@ export namespace multisig { proofAuthorizingKey: string keyPackages: Array } + export function dkgRound1(selfIdentity: string, minSigners: number, participantIdentities: Array): DkgRound1Packages + export interface DkgRound1Packages { + encryptedSecretPackage: string + publicPackage: string + } + export function dkgRound2(secret: string, encryptedSecretPackage: string, publicPackages: Array): DkgRound2Packages + export interface DkgRound2PublicPackage { + recipientIdentity: string + publicPackage: string + } + export interface DkgRound2Packages { + encryptedSecretPackage: string + publicPackages: Array + } export function aggregateSignatureShares(publicKeyPackageStr: string, signingPackageStr: string, signatureSharesArr: Array): Buffer export class ParticipantSecret { constructor(jsBytes: Buffer) diff --git a/ironfish-rust-nodejs/npm/darwin-arm64/package.json b/ironfish-rust-nodejs/npm/darwin-arm64/package.json index 73e9c591d2..d59da048e9 100644 --- a/ironfish-rust-nodejs/npm/darwin-arm64/package.json +++ b/ironfish-rust-nodejs/npm/darwin-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@ironfish/rust-nodejs-darwin-arm64", - "version": "2.1.0", + "version": "2.2.0", "os": [ "darwin" ], diff --git a/ironfish-rust-nodejs/npm/darwin-x64/package.json b/ironfish-rust-nodejs/npm/darwin-x64/package.json index 29a45326cb..7a628af100 100644 --- a/ironfish-rust-nodejs/npm/darwin-x64/package.json +++ b/ironfish-rust-nodejs/npm/darwin-x64/package.json @@ -1,6 +1,6 @@ { "name": "@ironfish/rust-nodejs-darwin-x64", - "version": "2.1.0", + "version": "2.2.0", "os": [ "darwin" ], diff --git a/ironfish-rust-nodejs/npm/linux-arm64-gnu/package.json b/ironfish-rust-nodejs/npm/linux-arm64-gnu/package.json index 56553f02df..4f20886d2b 100644 --- a/ironfish-rust-nodejs/npm/linux-arm64-gnu/package.json +++ b/ironfish-rust-nodejs/npm/linux-arm64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@ironfish/rust-nodejs-linux-arm64-gnu", - "version": "2.1.0", + "version": "2.2.0", "os": [ "linux" ], diff --git a/ironfish-rust-nodejs/npm/linux-arm64-musl/package.json b/ironfish-rust-nodejs/npm/linux-arm64-musl/package.json index 8db3e82026..46c2e300d8 100644 --- a/ironfish-rust-nodejs/npm/linux-arm64-musl/package.json +++ b/ironfish-rust-nodejs/npm/linux-arm64-musl/package.json @@ -1,6 +1,6 @@ { "name": "@ironfish/rust-nodejs-linux-arm64-musl", - "version": "2.1.0", + "version": "2.2.0", "os": [ "linux" ], diff --git a/ironfish-rust-nodejs/npm/linux-x64-gnu/package.json b/ironfish-rust-nodejs/npm/linux-x64-gnu/package.json index 556464255d..bd94b159c6 100644 --- a/ironfish-rust-nodejs/npm/linux-x64-gnu/package.json +++ b/ironfish-rust-nodejs/npm/linux-x64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@ironfish/rust-nodejs-linux-x64-gnu", - "version": "2.1.0", + "version": "2.2.0", "os": [ "linux" ], diff --git a/ironfish-rust-nodejs/npm/linux-x64-musl/package.json b/ironfish-rust-nodejs/npm/linux-x64-musl/package.json index 14cdb21165..a025b57df4 100644 --- a/ironfish-rust-nodejs/npm/linux-x64-musl/package.json +++ b/ironfish-rust-nodejs/npm/linux-x64-musl/package.json @@ -1,6 +1,6 @@ { "name": "@ironfish/rust-nodejs-linux-x64-musl", - "version": "2.1.0", + "version": "2.2.0", "os": [ "linux" ], diff --git a/ironfish-rust-nodejs/npm/win32-x64-msvc/package.json b/ironfish-rust-nodejs/npm/win32-x64-msvc/package.json index 4409c3ef89..58a986901b 100644 --- a/ironfish-rust-nodejs/npm/win32-x64-msvc/package.json +++ b/ironfish-rust-nodejs/npm/win32-x64-msvc/package.json @@ -1,6 +1,6 @@ { "name": "@ironfish/rust-nodejs-win32-x64-msvc", - "version": "2.1.0", + "version": "2.2.0", "os": [ "win32" ], diff --git a/ironfish-rust-nodejs/package.json b/ironfish-rust-nodejs/package.json index e991ec1dbc..6fa3497271 100644 --- a/ironfish-rust-nodejs/package.json +++ b/ironfish-rust-nodejs/package.json @@ -1,6 +1,6 @@ { "name": "@ironfish/rust-nodejs", - "version": "2.1.0", + "version": "2.2.0", "description": "Node.js bindings for Rust code required by the Iron Fish SDK", "main": "index.js", "types": "index.d.ts", diff --git a/ironfish-rust-nodejs/src/multisig.rs b/ironfish-rust-nodejs/src/multisig.rs index 50305c92e6..e3acf0d6e1 100644 --- a/ironfish-rust-nodejs/src/multisig.rs +++ b/ironfish-rust-nodejs/src/multisig.rs @@ -11,8 +11,12 @@ use ironfish::{ SaplingKey, }; use ironfish_frost::{ - keys::PublicKeyPackage, multienc, nonces::deterministic_signing_nonces, - signature_share::SignatureShare, signing_commitment::SigningCommitment, + dkg::round1::{import_secret_package, PublicPackage}, + keys::PublicKeyPackage, + multienc, + nonces::deterministic_signing_nonces, + signature_share::SignatureShare, + signing_commitment::SigningCommitment, }; use napi::{bindgen_prelude::*, JsBuffer}; use napi_derive::napi; @@ -44,6 +48,24 @@ where }) } +fn try_deserialize_public_packages(public_packages: I) -> Result> +where + I: IntoIterator, + S: Deref, +{ + public_packages + .into_iter() + .try_fold(Vec::new(), |mut public_packages, serialized_package| { + let serialized_package = hex_to_vec_bytes(&serialized_package).map_err(to_napi_err)?; + PublicPackage::deserialize_from(&serialized_package[..]) + .map(|public_package| { + public_packages.push(public_package); + public_packages + }) + .map_err(to_napi_err) + }) +} + #[napi(namespace = "multisig")] pub fn create_signing_commitment( secret: String, @@ -221,10 +243,7 @@ pub fn generate_and_split_key( }); } - let public_key_package = packages - .public_key_package - .serialize() - .map_err(to_napi_err)?; + let public_key_package = packages.public_key_package.serialize(); Ok(TrustedDealerKeyPackages { public_address: packages.public_address.hex_public_address(), @@ -356,3 +375,82 @@ impl NativeSigningPackage { .collect() } } + +#[napi(namespace = "multisig")] +pub fn dkg_round1( + self_identity: String, + min_signers: u16, + participant_identities: Vec, +) -> Result { + let self_identity = + Identity::deserialize_from(&hex_to_vec_bytes(&self_identity).map_err(to_napi_err)?[..])?; + let participant_identities = try_deserialize_identities(participant_identities)?; + + let (encrypted_secret_package, public_package) = ironfish_frost::dkg::round1::round1( + &self_identity, + min_signers, + &participant_identities, + thread_rng(), + ) + .map_err(to_napi_err)?; + + Ok(DkgRound1Packages { + encrypted_secret_package: bytes_to_hex(&encrypted_secret_package), + public_package: bytes_to_hex(&public_package.serialize()), + }) +} + +#[napi(object, namespace = "multisig")] +pub struct DkgRound1Packages { + pub encrypted_secret_package: String, + pub public_package: String, +} + +#[napi(namespace = "multisig")] +pub fn dkg_round2( + secret: String, + encrypted_secret_package: String, + public_packages: Vec, +) -> Result { + let secret = Secret::deserialize_from(&hex_to_vec_bytes(&secret).map_err(to_napi_err)?[..])?; + let public_packages = try_deserialize_public_packages(public_packages)?; + + let secret_package = import_secret_package( + &hex_to_vec_bytes(&encrypted_secret_package).map_err(to_napi_err)?, + &secret, + ) + .map_err(to_napi_err)?; + + let (encrypted_secret_package, public_packages) = ironfish_frost::dkg::round2::round2( + &secret.to_identity(), + &secret_package, + &public_packages, + thread_rng(), + ) + .map_err(to_napi_err)?; + + let public_packages = public_packages + .iter() + .map(|p| DkgRound2PublicPackage { + recipient_identity: bytes_to_hex(&p.recipient_identity().serialize()), + public_package: bytes_to_hex(&p.serialize()), + }) + .collect(); + + Ok(DkgRound2Packages { + encrypted_secret_package: bytes_to_hex(&encrypted_secret_package), + public_packages, + }) +} + +#[napi(object, namespace = "multisig")] +pub struct DkgRound2PublicPackage { + pub recipient_identity: String, + pub public_package: String, +} + +#[napi(object, namespace = "multisig")] +pub struct DkgRound2Packages { + pub encrypted_secret_package: String, + pub public_packages: Vec, +} diff --git a/ironfish-rust/src/frost_utils/split_spender_key.rs b/ironfish-rust/src/frost_utils/split_spender_key.rs index 3eab778c5e..86c2ad2b5e 100644 --- a/ironfish-rust/src/frost_utils/split_spender_key.rs +++ b/ironfish-rust/src/frost_utils/split_spender_key.rs @@ -2,19 +2,14 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +use crate::{ + errors::IronfishError, IncomingViewKey, OutgoingViewKey, PublicAddress, SaplingKey, ViewKey, +}; use group::GroupEncoding; -use ironfish_frost::participant::Identity; -use ironfish_frost::{frost::keys::KeyPackage, keys::PublicKeyPackage}; -use ironfish_zkp::constants::PROOF_GENERATION_KEY_GENERATOR; -use jubjub::SubgroupPoint; +use ironfish_frost::{frost::keys::KeyPackage, keys::PublicKeyPackage, participant::Identity}; use rand::thread_rng; use std::collections::HashMap; -use crate::{ - errors::{IronfishError, IronfishErrorKind}, - IncomingViewKey, OutgoingViewKey, PublicAddress, SaplingKey, ViewKey, -}; - use super::split_secret::split_secret; pub struct TrustedDealerKeyPackages { @@ -37,31 +32,18 @@ pub fn split_spender_key( let (key_packages, public_key_package) = split_secret(spender_key, identities, min_signers, thread_rng())?; - let proof_authorizing_key = spender_key.sapling_proof_generation_key().nsk; - - let authorizing_key = public_key_package.verifying_key().serialize(); - let authorizing_key = Option::from(SubgroupPoint::from_bytes(&authorizing_key)) - .ok_or_else(|| IronfishError::new(IronfishErrorKind::InvalidAuthorizingKey))?; - - let nullifier_deriving_key = *PROOF_GENERATION_KEY_GENERATOR * proof_authorizing_key; - - let view_key = ViewKey { - authorizing_key, - nullifier_deriving_key, - }; - - let incoming_view_key = spender_key.incoming_view_key().clone(); - let outgoing_view_key: OutgoingViewKey = group_secret_key.outgoing_view_key().clone(); - - let public_address = incoming_view_key.public_address(); + assert_eq!( + public_key_package.verifying_key().serialize(), + spender_key.view_key().authorizing_key.to_bytes() + ); Ok(TrustedDealerKeyPackages { - public_address, + public_address: spender_key.public_address(), public_key_package, - view_key, - incoming_view_key, - outgoing_view_key, - proof_authorizing_key, + view_key: spender_key.view_key().clone(), + incoming_view_key: spender_key.incoming_view_key().clone(), + outgoing_view_key: group_secret_key.outgoing_view_key().clone(), + proof_authorizing_key: spender_key.sapling_proof_generation_key().nsk, key_packages, }) } diff --git a/ironfish-rust/src/keys/mod.rs b/ironfish-rust/src/keys/mod.rs index 5797f6f1fd..f6b8ce9b65 100644 --- a/ironfish-rust/src/keys/mod.rs +++ b/ironfish-rust/src/keys/mod.rs @@ -135,8 +135,8 @@ impl SaplingKey { /// first time. /// Note that unlike `new`, this function always successfully returns a value. pub fn generate_key() -> Self { - let spending_key: [u8; SPEND_KEY_SIZE] = random(); loop { + let spending_key: [u8; SPEND_KEY_SIZE] = random(); if let Ok(key) = Self::new(spending_key) { return key; } diff --git a/ironfish/.eslintrc.js b/ironfish/.eslintrc.js index 7697214097..01e50e1896 100644 --- a/ironfish/.eslintrc.js +++ b/ironfish/.eslintrc.js @@ -1,3 +1,6 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ module.exports = { extends: ['ironfish'], parserOptions: { diff --git a/ironfish/package.json b/ironfish/package.json index 96ab2ae298..739c20178b 100644 --- a/ironfish/package.json +++ b/ironfish/package.json @@ -1,6 +1,6 @@ { "name": "@ironfish/sdk", - "version": "2.1.0", + "version": "2.2.0", "description": "SDK for running and interacting with an Iron Fish node", "author": "Iron Fish (https://ironfish.network)", "main": "build/src/index.js", @@ -22,7 +22,7 @@ "dependencies": { "@ethersproject/bignumber": "5.7.0", "@fast-csv/format": "4.3.5", - "@ironfish/rust-nodejs": "2.1.0", + "@ironfish/rust-nodejs": "2.2.0", "@napi-rs/blake-hash": "1.3.3", "axios": "0.21.4", "bech32": "2.0.0", diff --git a/ironfish/src/assets/assetsVerificationApi.test.ts b/ironfish/src/assets/assetsVerificationApi.test.ts index 55b11f97e0..bf177144bc 100644 --- a/ironfish/src/assets/assetsVerificationApi.test.ts +++ b/ironfish/src/assets/assetsVerificationApi.test.ts @@ -5,6 +5,25 @@ import nock from 'nock' import { NodeFileProvider } from '../fileSystems' import { AssetsVerificationApi } from './assetsVerificationApi' +const assetData1 = { + identifier: '0123', + symbol: '$FOO', + decimals: 4, + logoURI: 'https://example.com/not_real.png', + website: 'https://example.com', +} + +const assetData2 = { + identifier: 'abcd', + symbol: '$BAR', + decimals: 4, +} + +const assetData3 = { + identifier: 'abcd', + symbol: '$BAZ', +} + describe('Assets Verification API Client', () => { const files = new NodeFileProvider() @@ -24,76 +43,103 @@ describe('Assets Verification API Client', () => { describe('getVerifiedAssets', () => { it('should return verified assets', async () => { nock('https://test') - .get('/assets/verified') + .get('/assets/verified_metadata') .reply(200, { - assets: [{ identifier: '0123' }, { identifier: 'abcd' }], + assets: [assetData1, assetData2], }) const api = new AssetsVerificationApi({ files, - url: 'https://test/assets/verified', + url: 'https://test/assets/verified_metadata', }) const verifiedAssets = await api.getVerifiedAssets() - expect(verifiedAssets['assetIds']).toStrictEqual(new Set(['0123', 'abcd'])) - expect(verifiedAssets.isVerified('0123')).toBe(true) - expect(verifiedAssets.isVerified('abcd')).toBe(true) - expect(verifiedAssets.isVerified('4567')).toBe(false) - expect(verifiedAssets.isVerified('89ef')).toBe(false) + expect(verifiedAssets['assets']).toStrictEqual( + new Map([ + [assetData1.identifier, assetData1], + [assetData2.identifier, assetData2], + ]), + ) + expect(verifiedAssets.getAssetData('0123')).toBeDefined() + expect(verifiedAssets.getAssetData('abcd')).toBeDefined() + expect(verifiedAssets.getAssetData('4567')).toBeUndefined() + expect(verifiedAssets.getAssetData('89ef')).toBeUndefined() }) it('should ignore extra fields in responses', async () => { + const assetData1Extra = { + ...assetData1, + extra: 'should be ignored', + } + + const assetData2Extra = { + ...assetData2, + extra: 'should be ignored', + } + nock('https://test') - .get('/assets/verified') + .get('/assets/verified_metadata') .reply(200, { - assets: [ - { identifier: '0123', extra: 'should be ignored' }, - { identifier: 'abcd', extra: 'should be ignored' }, - ], + assets: [assetData1Extra, assetData2Extra], extra: 'should be ignored', }) const api = new AssetsVerificationApi({ files, - url: 'https://test/assets/verified', + url: 'https://test/assets/verified_metadata', }) const verifiedAssets = await api.getVerifiedAssets() - expect(verifiedAssets['assetIds']).toStrictEqual(new Set(['0123', 'abcd'])) + expect(verifiedAssets['assets']).toStrictEqual( + new Map([ + [assetData1.identifier, assetData1], + [assetData2.identifier, assetData2], + ]), + ) }) it('should refresh verified assets', async () => { nock('https://test') - .get('/assets/verified') + .get('/assets/verified_metadata') .reply(200, { - assets: [{ identifier: '0123' }, { identifier: 'abcd' }], + assets: [assetData1, assetData2], }) - .get('/assets/verified') + .get('/assets/verified_metadata') .reply(200, { - assets: [{ identifier: '4567' }, { identifier: '0123' }], + assets: [assetData3, assetData1], }) const api = new AssetsVerificationApi({ files, - url: 'https://test/assets/verified', + url: 'https://test/assets/verified_metadata', }) const verifiedAssets = await api.getVerifiedAssets() - expect(verifiedAssets['assetIds']).toStrictEqual(new Set(['0123', 'abcd'])) + expect(verifiedAssets['assets']).toStrictEqual( + new Map([ + [assetData1.identifier, assetData1], + [assetData2.identifier, assetData2], + ]), + ) await api.refreshVerifiedAssets(verifiedAssets) - expect(verifiedAssets['assetIds']).toStrictEqual(new Set(['0123', '4567'])) + expect(verifiedAssets['assets']).toStrictEqual( + new Map([ + [assetData3.identifier, assetData3], + [assetData1.identifier, assetData1], + ]), + ) }) it('should optimize refreshing of verified assets with If-Modified-Since', async () => { const lastModified = new Date().toUTCString() nock('https://test') - .get('/assets/verified') + .get('/assets/verified_metadata') .reply( 200, { - assets: [{ identifier: '0123' }, { identifier: 'abcd' }], + assets: [assetData1, assetData2], }, { 'last-modified': lastModified, @@ -101,28 +147,38 @@ describe('Assets Verification API Client', () => { ) nock('https://test') .matchHeader('if-modified-since', lastModified) - .get('/assets/verified') + .get('/assets/verified_metadata') .reply(304) const api = new AssetsVerificationApi({ files, - url: 'https://test/assets/verified', + url: 'https://test/assets/verified_metadata', }) const verifiedAssets = await api.getVerifiedAssets() - expect(verifiedAssets['assetIds']).toStrictEqual(new Set(['0123', 'abcd'])) + expect(verifiedAssets['assets']).toStrictEqual( + new Map([ + [assetData1.identifier, assetData1], + [assetData2.identifier, assetData2], + ]), + ) await api.refreshVerifiedAssets(verifiedAssets) - expect(verifiedAssets['assetIds']).toStrictEqual(new Set(['0123', 'abcd'])) + expect(verifiedAssets['assets']).toStrictEqual( + new Map([ + [assetData1.identifier, assetData1], + [assetData2.identifier, assetData2], + ]), + ) }) it('should propagate HTTP errors', async () => { - nock('https://test').get('/assets/verified').reply(500) + nock('https://test').get('/assets/verified_metadata').reply(500) const api = new AssetsVerificationApi({ files, - url: 'https://test/assets/verified', + url: 'https://test/assets/verified_metadata', }) await expect(api.getVerifiedAssets()).rejects.toThrow( 'Request failed with status code 500', @@ -131,7 +187,7 @@ describe('Assets Verification API Client', () => { it('should respect timeouts while establishing connections', async () => { nock('https://test') - .get('/assets/verified') + .get('/assets/verified_metadata') .delayConnection(2000) .reply(200, { assets: [{ identifier: '0123' }, { identifier: 'abcd' }], @@ -139,7 +195,7 @@ describe('Assets Verification API Client', () => { const api = new AssetsVerificationApi({ files, - url: 'https://test/assets/verified', + url: 'https://test/assets/verified_metadata', timeout: 1000, }) await expect(api.getVerifiedAssets()).rejects.toThrow('timeout of 1000ms exceeded') @@ -147,7 +203,7 @@ describe('Assets Verification API Client', () => { it('should respect timeouts while waiting for responses', async () => { nock('https://test') - .get('/assets/verified') + .get('/assets/verified_metadata') .delay(2000) .reply(200, { assets: [{ identifier: '0123' }, { identifier: 'abcd' }], @@ -155,7 +211,7 @@ describe('Assets Verification API Client', () => { const api = new AssetsVerificationApi({ files, - url: 'https://test/assets/verified', + url: 'https://test/assets/verified_metadata', timeout: 1000, }) await expect(api.getVerifiedAssets()).rejects.toThrow('timeout of 1000ms exceeded') @@ -163,7 +219,7 @@ describe('Assets Verification API Client', () => { it('supports file:// URIs', async () => { const contents = JSON.stringify({ - assets: [{ identifier: '0123' }, { identifier: 'abcd' }], + assets: [assetData1, assetData2], }) const readFileSpy = jest.spyOn(files, 'readFile').mockResolvedValue(contents) @@ -173,7 +229,12 @@ describe('Assets Verification API Client', () => { }) const verifiedAssets = await api.getVerifiedAssets() - expect(verifiedAssets['assetIds']).toStrictEqual(new Set(['0123', 'abcd'])) + expect(verifiedAssets['assets']).toStrictEqual( + new Map([ + [assetData1.identifier, assetData1], + [assetData2.identifier, assetData2], + ]), + ) expect(readFileSpy).toHaveBeenCalledWith('/some/where') }) }) diff --git a/ironfish/src/assets/assetsVerificationApi.ts b/ironfish/src/assets/assetsVerificationApi.ts index a139700157..5e9ffe9633 100644 --- a/ironfish/src/assets/assetsVerificationApi.ts +++ b/ironfish/src/assets/assetsVerificationApi.ts @@ -5,8 +5,18 @@ import axios, { AxiosAdapter, AxiosError, AxiosRequestConfig, AxiosResponse } fr import url, { URL } from 'url' import { FileSystem } from '../fileSystems' -type GetVerifiedAssetsResponse = { - assets: Array<{ identifier: string }> +export type VerifiedAssetMetadata = { + symbol: string + decimals?: number + logoURI?: string + website?: string +} + +export type VerifiedAssetMetadataResponse = { identifier: string } & VerifiedAssetMetadata + +type GetAssetDataResponse = { + version?: number + assets: VerifiedAssetMetadataResponse[] } type GetVerifiedAssetsRequestHeaders = { @@ -18,28 +28,30 @@ type GetVerifiedAssetsResponseHeaders = { } export class VerifiedAssets { - private readonly assetIds: Set = new Set() + private readonly assets: Map = new Map() private lastModified?: string export(): ExportedVerifiedAssets { return { - assetIds: Array.from(this.assetIds), + assets: Array.from(this.assets.values()), lastModified: this.lastModified, } } static restore(options: ExportedVerifiedAssets): VerifiedAssets { const verifiedAssets = new VerifiedAssets() - options.assetIds.forEach((identifier) => verifiedAssets.assetIds.add(identifier)) + options.assets.forEach((assetData) => + verifiedAssets.assets.set(assetData.identifier, sanitizedAssetData(assetData)), + ) verifiedAssets.lastModified = options.lastModified return verifiedAssets } - isVerified(assetId: Buffer | string): boolean { + getAssetData(assetId: Buffer | string): VerifiedAssetMetadata | undefined { if (!(typeof assetId === 'string')) { assetId = assetId.toString('hex') } - return this.assetIds.has(assetId) + return this.assets.get(assetId) } } @@ -49,10 +61,10 @@ export class VerifiedAssets { // issues: // - `VerifiedAssets` is a class with methods, and the type-check logic as well // as the serialization logic expect methods to be serialized. -// - The `assetIds` field from `VerifiedAssets` is a `Set`, which is not +// - The `assets` field from `VerifiedAssets` is a `Map`, which is not // properly supported by the cache serializer. export type ExportedVerifiedAssets = { - assetIds: string[] + assets: VerifiedAssetMetadataResponse[] lastModified?: string } @@ -63,7 +75,7 @@ export class AssetsVerificationApi { readonly url: string constructor(options: { files: FileSystem; url?: string; timeout?: number }) { - this.url = options?.url || 'https://api.ironfish.network/assets/verified' + this.url = options?.url || 'https://api.ironfish.network/assets/verified_metadata' this.timeout = options?.timeout ?? 30 * 1000 // 30 seconds this.adapter = isFileUrl(this.url) ? axiosFileAdapter(options.files) @@ -86,19 +98,22 @@ export class AssetsVerificationApi { headers['if-modified-since'] = verifiedAssets['lastModified'] } return axios - .get(this.url, { + .get(this.url, { headers: headers, timeout: this.timeout, adapter: this.adapter, }) .then( (response: { - data: GetVerifiedAssetsResponse + data: GetAssetDataResponse headers: GetVerifiedAssetsResponseHeaders }) => { - verifiedAssets['assetIds'].clear() - response.data.assets.forEach(({ identifier }) => { - return verifiedAssets['assetIds'].add(identifier) + verifiedAssets['assets'].clear() + response.data.assets.forEach((assetData) => { + return verifiedAssets['assets'].set( + assetData.identifier, + sanitizedAssetData(assetData), + ) }) verifiedAssets['lastModified'] = response.headers['last-modified'] return true @@ -120,7 +135,7 @@ const isFileUrl = (url: string): boolean => { const axiosFileAdapter = (files: FileSystem) => - (config: AxiosRequestConfig): Promise> => { + (config: AxiosRequestConfig): Promise> => { if (!config.url) { return Promise.reject(new Error('url is undefined')) } @@ -130,7 +145,7 @@ const axiosFileAdapter = return files .readFile(path) .then(JSON.parse) - .then((data: GetVerifiedAssetsResponse) => ({ + .then((data: GetAssetDataResponse) => ({ data, status: 0, statusText: '', @@ -138,3 +153,15 @@ const axiosFileAdapter = config: config, })) } + +const sanitizedAssetData = ( + assetData: VerifiedAssetMetadataResponse, +): VerifiedAssetMetadataResponse => { + return { + identifier: assetData.identifier, + symbol: assetData.symbol, + decimals: assetData.decimals, + logoURI: assetData.logoURI, + website: assetData.website, + } +} diff --git a/ironfish/src/assets/assetsVerifier.test.ts b/ironfish/src/assets/assetsVerifier.test.ts index 344e227883..e6bdcf273a 100644 --- a/ironfish/src/assets/assetsVerifier.test.ts +++ b/ironfish/src/assets/assetsVerifier.test.ts @@ -8,6 +8,29 @@ import { AssetsVerifier } from './assetsVerifier' /* eslint-disable jest/no-standalone-expect */ /* eslint-disable @typescript-eslint/no-explicit-any */ +const assetData1 = { + identifier: '0123', + symbol: '$FOO', + decimals: 4, + logoURI: 'https://example.com/not_real.png', + website: 'https://example.com/foo', +} + +const assetData2 = { + identifier: '4567', + symbol: '$BAR', + decimals: 4, + logoURI: 'https://example.com/not_real.png', + website: 'https://example.com/bar', +} + +const assetData3 = { + identifier: '89ab', + symbol: '$BAZ', + decimals: 4, + logoURI: 'https://example.com/not_real.png', + website: 'https://example.com/baz', +} describe('AssetsVerifier', () => { jest.useFakeTimers() @@ -43,22 +66,22 @@ describe('AssetsVerifier', () => { it('periodically refreshes once started', async () => { nock('https://test') - .get('/assets/verified') + .get('/assets/verified_metadata') .reply(200, { - assets: [{ identifier: '0123' }], + assets: [assetData1], }) - .get('/assets/verified') + .get('/assets/verified_metadata') .reply(200, { - assets: [{ identifier: '4567' }], + assets: [assetData2], }) - .get('/assets/verified') + .get('/assets/verified_metadata') .reply(200, { - assets: [{ identifier: '89ab' }], + assets: [assetData3], }) const assetsVerifier = new AssetsVerifier({ files, - apiUrl: 'https://test/assets/verified', + apiUrl: 'https://test/assets/verified_metadata', }) const refresh = jest.spyOn(assetsVerifier as any, 'refresh') @@ -70,7 +93,13 @@ describe('AssetsVerifier', () => { expect(refresh).toHaveBeenCalledTimes(1) await waitForRefreshToFinish(refresh) - expect(assetsVerifier.verify('0123')).toStrictEqual({ status: 'verified' }) + expect(assetsVerifier.verify('0123')).toStrictEqual({ + status: 'verified', + symbol: assetData1.symbol, + decimals: assetData1.decimals, + logoURI: assetData1.logoURI, + website: assetData1.website, + }) expect(assetsVerifier.verify('4567')).toStrictEqual({ status: 'unverified' }) expect(assetsVerifier.verify('89ab')).toStrictEqual({ status: 'unverified' }) @@ -79,7 +108,13 @@ describe('AssetsVerifier', () => { await waitForRefreshToFinish(refresh) expect(assetsVerifier.verify('0123')).toStrictEqual({ status: 'unverified' }) - expect(assetsVerifier.verify('4567')).toStrictEqual({ status: 'verified' }) + expect(assetsVerifier.verify('4567')).toStrictEqual({ + status: 'verified', + symbol: assetData2.symbol, + decimals: assetData2.decimals, + logoURI: assetData2.logoURI, + website: assetData2.website, + }) expect(assetsVerifier.verify('89ab')).toStrictEqual({ status: 'unverified' }) jest.runOnlyPendingTimers() @@ -88,19 +123,25 @@ describe('AssetsVerifier', () => { expect(assetsVerifier.verify('0123')).toStrictEqual({ status: 'unverified' }) expect(assetsVerifier.verify('4567')).toStrictEqual({ status: 'unverified' }) - expect(assetsVerifier.verify('89ab')).toStrictEqual({ status: 'verified' }) + expect(assetsVerifier.verify('89ab')).toStrictEqual({ + status: 'verified', + symbol: assetData3.symbol, + decimals: assetData3.decimals, + logoURI: assetData3.logoURI, + website: assetData3.website, + }) }) it('does not do any refresh after being stopped', async () => { nock('https://test') - .get('/assets/verified') + .get('/assets/verified_metadata') .reply(200, { - assets: [{ identifier: '0123' }], + assets: [assetData1], }) const assetsVerifier = new AssetsVerifier({ files, - apiUrl: 'https://test/assets/verified', + apiUrl: 'https://test/assets/verified_metadata', }) const refresh = jest.spyOn(assetsVerifier as any, 'refresh') @@ -115,22 +156,22 @@ describe('AssetsVerifier', () => { it('preserves the in-memory cache after being stopped', async () => { nock('https://test') - .get('/assets/verified') + .get('/assets/verified_metadata') .reply( 200, { - assets: [{ identifier: '0123' }], + assets: [assetData2], }, { 'last-modified': 'some-date' }, ) nock('https://test') .matchHeader('if-modified-since', 'some-date') - .get('/assets/verified') + .get('/assets/verified_metadata') .reply(304) const assetsVerifier = new AssetsVerifier({ files, - apiUrl: 'https://test/assets/verified', + apiUrl: 'https://test/assets/verified_metadata', }) const refresh = jest.spyOn(assetsVerifier as any, 'refresh') @@ -156,11 +197,11 @@ describe('AssetsVerifier', () => { }) it("returns 'unknown' when the API is unreachable", async () => { - nock('https://test').get('/assets/verified').reply(500) + nock('https://test').get('/assets/verified_metadata').reply(500) const assetsVerifier = new AssetsVerifier({ files, - apiUrl: 'https://test/assets/verified', + apiUrl: 'https://test/assets/verified_metadata', }) const refresh = jest.spyOn(assetsVerifier as any, 'refresh') const warn = jest.spyOn(assetsVerifier['logger'], 'warn') @@ -177,33 +218,39 @@ describe('AssetsVerifier', () => { it("returns 'verified' when the API lists the given asset", async () => { nock('https://test') - .get('/assets/verified') + .get('/assets/verified_metadata') .reply(200, { - assets: [{ identifier: '0123' }], + assets: [assetData1], }) const assetsVerifier = new AssetsVerifier({ files, - apiUrl: 'https://test/assets/verified', + apiUrl: 'https://test/assets/verified_metadata', }) const refresh = jest.spyOn(assetsVerifier as any, 'refresh') assetsVerifier.start() await waitForRefreshToFinish(refresh) - expect(assetsVerifier.verify('0123')).toStrictEqual({ status: 'verified' }) + expect(assetsVerifier.verify('0123')).toStrictEqual({ + status: 'verified', + symbol: assetData1.symbol, + decimals: assetData1.decimals, + logoURI: assetData1.logoURI, + website: assetData1.website, + }) }) it("returns 'unverified' when the API does not list the asset", async () => { nock('https://test') - .get('/assets/verified') + .get('/assets/verified_metadata') .reply(200, { - assets: [{ identifier: '0123' }], + assets: [assetData1], }) const assetsVerifier = new AssetsVerifier({ files, - apiUrl: 'https://test/assets/verified', + apiUrl: 'https://test/assets/verified_metadata', }) const refresh = jest.spyOn(assetsVerifier as any, 'refresh') @@ -213,18 +260,18 @@ describe('AssetsVerifier', () => { expect(assetsVerifier.verify('4567')).toStrictEqual({ status: 'unverified' }) }) - it('uses the the in-memory cache when the API is unreachable', async () => { + it('uses the in-memory cache when the API is unreachable', async () => { nock('https://test') - .get('/assets/verified') + .get('/assets/verified_metadata') .reply(200, { - assets: [{ identifier: '0123' }], + assets: [assetData1], }) - .get('/assets/verified') + .get('/assets/verified_metadata') .reply(500) const assetsVerifier = new AssetsVerifier({ files, - apiUrl: 'https://test/assets/verified', + apiUrl: 'https://test/assets/verified_metadata', }) const refresh = jest.spyOn(assetsVerifier as any, 'refresh') const warn = jest.spyOn(assetsVerifier['logger'], 'warn') @@ -233,7 +280,13 @@ describe('AssetsVerifier', () => { await waitForRefreshToFinish(refresh) expect(warn).not.toHaveBeenCalled() - expect(assetsVerifier.verify('0123')).toStrictEqual({ status: 'verified' }) + expect(assetsVerifier.verify('0123')).toStrictEqual({ + status: 'verified', + symbol: assetData1.symbol, + decimals: assetData1.decimals, + logoURI: assetData1.logoURI, + website: assetData1.website, + }) expect(assetsVerifier.verify('4567')).toStrictEqual({ status: 'unverified' }) jest.runOnlyPendingTimers() @@ -242,32 +295,50 @@ describe('AssetsVerifier', () => { expect(warn).toHaveBeenCalledWith( 'Error while fetching verified assets: Request failed with status code 500', ) - expect(assetsVerifier.verify('0123')).toStrictEqual({ status: 'verified' }) + expect(assetsVerifier.verify('0123')).toStrictEqual({ + status: 'verified', + symbol: assetData1.symbol, + decimals: assetData1.decimals, + logoURI: assetData1.logoURI, + website: assetData1.website, + }) expect(assetsVerifier.verify('4567')).toStrictEqual({ status: 'unverified' }) }) it('uses the in-memory cache after being stopped', async () => { nock('https://test') - .get('/assets/verified') + .get('/assets/verified_metadata') .reply(200, { - assets: [{ identifier: '0123' }], + assets: [assetData1], }) const assetsVerifier = new AssetsVerifier({ files, - apiUrl: 'https://test/assets/verified', + apiUrl: 'https://test/assets/verified_metadata', }) const refresh = jest.spyOn(assetsVerifier as any, 'refresh') assetsVerifier.start() await waitForRefreshToFinish(refresh) - expect(assetsVerifier.verify('0123')).toStrictEqual({ status: 'verified' }) + expect(assetsVerifier.verify('0123')).toStrictEqual({ + status: 'verified', + symbol: assetData1.symbol, + decimals: assetData1.decimals, + logoURI: assetData1.logoURI, + website: assetData1.website, + }) expect(assetsVerifier.verify('4567')).toStrictEqual({ status: 'unverified' }) assetsVerifier.stop() - expect(assetsVerifier.verify('0123')).toStrictEqual({ status: 'verified' }) + expect(assetsVerifier.verify('0123')).toStrictEqual({ + status: 'verified', + symbol: assetData1.symbol, + decimals: assetData1.decimals, + logoURI: assetData1.logoURI, + website: assetData1.website, + }) expect(assetsVerifier.verify('4567')).toStrictEqual({ status: 'unverified' }) }) }) @@ -280,26 +351,32 @@ describe('AssetsVerifier', () => { jest.spyOn(cache, 'setMany').mockReturnValue(undefined) jest.spyOn(cache, 'save').mockResolvedValue(undefined) cache.config = { - apiUrl: 'https://test/assets/verified', - assetIds: ['0123'], + apiUrl: 'https://test/assets/verified_metadata', + assets: [assetData1], } nock('https://test') - .get('/assets/verified') + .get('/assets/verified_metadata') .reply(200, { - assets: [{ identifier: '4567' }], + assets: [assetData2], }) const assetsVerifier = new AssetsVerifier({ files, - apiUrl: 'https://test/assets/verified', + apiUrl: 'https://test/assets/verified_metadata', cache: cache, }) const refresh = jest.spyOn(assetsVerifier as any, 'refresh') assetsVerifier.start() - expect(assetsVerifier.verify('0123')).toStrictEqual({ status: 'verified' }) + expect(assetsVerifier.verify('0123')).toStrictEqual({ + status: 'verified', + symbol: assetData1.symbol, + decimals: assetData1.decimals, + logoURI: assetData1.logoURI, + website: assetData1.website, + }) expect(assetsVerifier.verify('4567')).toStrictEqual({ status: 'unverified' }) await waitForRefreshToFinish(refresh) @@ -312,19 +389,19 @@ describe('AssetsVerifier', () => { jest.spyOn(cache, 'setMany').mockReturnValue(undefined) jest.spyOn(cache, 'save').mockResolvedValue(undefined) cache.config = { - apiUrl: 'https://foo.test/assets/verified', - assetIds: ['0123'], + apiUrl: 'https://foo.test/assets/verified_metadata', + assets: [assetData1], } nock('https://bar.test') - .get('/assets/verified') + .get('/assets/verified_metadata') .reply(200, { - assets: [{ identifier: '4567' }], + assets: [assetData2], }) const assetsVerifier = new AssetsVerifier({ files, - apiUrl: 'https://bar.test/assets/verified', + apiUrl: 'https://bar.test/assets/verified_metadata', cache: cache, }) const refresh = jest.spyOn(assetsVerifier as any, 'refresh') @@ -337,7 +414,13 @@ describe('AssetsVerifier', () => { await waitForRefreshToFinish(refresh) expect(assetsVerifier.verify('0123')).toStrictEqual({ status: 'unverified' }) - expect(assetsVerifier.verify('4567')).toStrictEqual({ status: 'verified' }) + expect(assetsVerifier.verify('4567')).toStrictEqual({ + status: 'verified', + symbol: assetData2.symbol, + decimals: assetData2.decimals, + logoURI: assetData2.logoURI, + website: assetData2.website, + }) }) it('saves the persistent cache after every update', async () => { @@ -346,22 +429,22 @@ describe('AssetsVerifier', () => { const saveSpy = jest.spyOn(cache, 'save').mockResolvedValue(undefined) nock('https://test') - .get('/assets/verified') + .get('/assets/verified_metadata') .reply(200, { - assets: [{ identifier: '0123' }], + assets: [assetData1], }) - .get('/assets/verified') + .get('/assets/verified_metadata') .reply( 200, { - assets: [{ identifier: '4567' }], + assets: [assetData2], }, { 'last-modified': 'some-date' }, ) const assetsVerifier = new AssetsVerifier({ files, - apiUrl: 'https://test/assets/verified', + apiUrl: 'https://test/assets/verified_metadata', cache: cache, }) const refresh = jest.spyOn(assetsVerifier as any, 'refresh') @@ -370,8 +453,8 @@ describe('AssetsVerifier', () => { await waitForRefreshToFinish(refresh) expect(setManySpy).toHaveBeenCalledWith({ - apiUrl: 'https://test/assets/verified', - assetIds: ['0123'], + apiUrl: 'https://test/assets/verified_metadata', + assets: [assetData1], lastModified: undefined, }) expect(saveSpy).toHaveBeenCalledTimes(1) @@ -380,8 +463,8 @@ describe('AssetsVerifier', () => { await waitForRefreshToFinish(refresh) expect(setManySpy).toHaveBeenCalledWith({ - apiUrl: 'https://test/assets/verified', - assetIds: ['4567'], + apiUrl: 'https://test/assets/verified_metadata', + assets: [assetData2], lastModified: 'some-date', }) expect(saveSpy).toHaveBeenCalledTimes(2) @@ -392,8 +475,8 @@ describe('AssetsVerifier', () => { VerifiedAssetsCacheStore.prototype, ) as VerifiedAssetsCacheStore cache.config = { - apiUrl: 'https://test/assets/verified', - assetIds: ['0123'], + apiUrl: 'https://test/assets/verified_metadata', + assets: [assetData1], lastModified: 'some-date', } const setManySpy = jest.spyOn(cache, 'setMany').mockReturnValue(undefined) @@ -401,24 +484,36 @@ describe('AssetsVerifier', () => { nock('https://test') .matchHeader('if-modified-since', 'some-date') - .get('/assets/verified') + .get('/assets/verified_metadata') .reply(304) const assetsVerifier = new AssetsVerifier({ files, - apiUrl: 'https://test/assets/verified', + apiUrl: 'https://test/assets/verified_metadata', cache: cache, }) const refresh = jest.spyOn(assetsVerifier as any, 'refresh') assetsVerifier.start() - expect(assetsVerifier.verify('0123')).toStrictEqual({ status: 'verified' }) + expect(assetsVerifier.verify('0123')).toStrictEqual({ + status: 'verified', + symbol: assetData1.symbol, + decimals: assetData1.decimals, + logoURI: assetData1.logoURI, + website: assetData1.website, + }) expect(assetsVerifier.verify('4567')).toStrictEqual({ status: 'unverified' }) await waitForRefreshToFinish(refresh) - expect(assetsVerifier.verify('0123')).toStrictEqual({ status: 'verified' }) + expect(assetsVerifier.verify('0123')).toStrictEqual({ + status: 'verified', + symbol: assetData1.symbol, + decimals: assetData1.decimals, + logoURI: assetData1.logoURI, + website: assetData1.website, + }) expect(assetsVerifier.verify('4567')).toStrictEqual({ status: 'unverified' }) expect(setManySpy).not.toHaveBeenCalled() expect(saveSpy).not.toHaveBeenCalled() diff --git a/ironfish/src/assets/assetsVerifier.ts b/ironfish/src/assets/assetsVerifier.ts index 1f3906f2d7..9f40b6f9a0 100644 --- a/ironfish/src/assets/assetsVerifier.ts +++ b/ironfish/src/assets/assetsVerifier.ts @@ -7,11 +7,15 @@ import { createRootLogger, Logger } from '../logger' import { ErrorUtils } from '../utils' import { SetIntervalToken } from '../utils' import { Retry } from '../utils' -import { AssetsVerificationApi, VerifiedAssets } from './assetsVerificationApi' +import { + AssetsVerificationApi, + VerifiedAssetMetadata, + VerifiedAssets, +} from './assetsVerificationApi' -export type AssetVerification = { - status: 'verified' | 'unverified' | 'unknown' -} +export type AssetVerification = + | { status: 'unverified' | 'unknown' } + | ({ status: 'verified' } & VerifiedAssetMetadata) export class AssetsVerifier { private readonly REFRESH_INTERVAL = 6 * 60 * 60 * 1000 // 6 hours @@ -103,13 +107,24 @@ export class AssetsVerifier { return this.cache.save() } + getAssetData(assetId: Buffer | string): VerifiedAssetMetadata | undefined { + return this.verifiedAssets?.getAssetData(assetId) + } + verify(assetId: Buffer | string): AssetVerification { if (!this.verifiedAssets) { return { status: 'unknown' } } - if (this.verifiedAssets.isVerified(assetId)) { - return { status: 'verified' } + const assetData = this.getAssetData(assetId) + if (assetData) { + return { + status: 'verified', + symbol: assetData.symbol, + decimals: assetData.decimals, + logoURI: assetData.logoURI, + website: assetData.website, + } } else { return { status: 'unverified' } } diff --git a/ironfish/src/blockHasher.ts b/ironfish/src/blockHasher.ts index 57dbba520d..faab7acb52 100644 --- a/ironfish/src/blockHasher.ts +++ b/ironfish/src/blockHasher.ts @@ -23,7 +23,7 @@ export class BlockHasher { } } - serializeHeader(header: RawBlockHeader): BlockHash { + serializeHeader(header: RawBlockHeader): Buffer { if (this.consensus.isActive('enableFishHash', header.sequence)) { return serializeHeaderFishHash(header) } diff --git a/ironfish/src/fileStores/internal.ts b/ironfish/src/fileStores/internal.ts index 1ce7251f42..657efa52ae 100644 --- a/ironfish/src/fileStores/internal.ts +++ b/ironfish/src/fileStores/internal.ts @@ -12,7 +12,7 @@ export type InternalOptions = { rpcAuthToken: string networkId: number spendPostTime: number // in milliseconds - spendPostTimeAt: number // when the spend post time measurement was done + spendPostTimeMeasurements: number // used to calculate the average spendPostTime } export const InternalOptionsDefaults: InternalOptions = { @@ -22,7 +22,7 @@ export const InternalOptionsDefaults: InternalOptions = { rpcAuthToken: '', networkId: DEFAULT_NETWORK_ID, spendPostTime: 0, - spendPostTimeAt: 0, + spendPostTimeMeasurements: 0, } export class InternalStore extends KeyStore { diff --git a/ironfish/src/fileStores/verifiedAssets.ts b/ironfish/src/fileStores/verifiedAssets.ts index 82ecf78d60..fedd2b104f 100644 --- a/ironfish/src/fileStores/verifiedAssets.ts +++ b/ironfish/src/fileStores/verifiedAssets.ts @@ -14,7 +14,7 @@ export type VerifiedAssetsCacheOptions = { export const VerifiedAssetsCacheOptionsDefaults: VerifiedAssetsCacheOptions = { apiUrl: '', - assetIds: [], + assets: [], } export const VERIFIED_ASSETS_CACHE_FILE_NAME = path.join('temp', 'verified-assets.json') diff --git a/ironfish/src/memPool/__fixtures__/memPool.test.ts.fixture b/ironfish/src/memPool/__fixtures__/memPool.test.ts.fixture index a7532ca41c..99caacf86c 100644 --- a/ironfish/src/memPool/__fixtures__/memPool.test.ts.fixture +++ b/ironfish/src/memPool/__fixtures__/memPool.test.ts.fixture @@ -2,13 +2,13 @@ "MemPool size returns the number of transactions in the node": [ { "version": 4, - "id": "54a7f4d2-c029-4936-ad90-da108a99bf8f", + "id": "66d5b922-9816-47ed-bbc7-afb113691fa0", "name": "accountA", - "spendingKey": "c6e7808a07064d0beb9fce1e90c3e2b0a5ccee3043d82ed092c90cb16b193721", - "viewKey": "a58b3a4a94f307f1043f72b580c70ec1b5ce9a5d95d56ed2ffff8023b71b5dc177da1e61c7b358c4d8fde2494e8a0899a8157fcd8ecf9e2b29093b80b64082c2", - "incomingViewKey": "bb0a4a49c64524cf08145d643d242685142cfc491001ebab1b5cfc850f0ca804", - "outgoingViewKey": "c351342a26b9f382ce5a50e56d946767629e846512817fd746c830b33b741358", - "publicAddress": "9a49e75b52d3864076990e4a69dbd20e5a44a34553466137ebbf34bf981824e6", + "spendingKey": "595757b498ce7ebe8e664746a15199cd2ff6812ae3063462271b451831617238", + "viewKey": "f007aefb3228e67b3d953e61a7353f3101a511a441ac0e820e2cd5609c96875eaf0c6c2375b0c3d080c7f7801e5f0e7ca263c156a79afbc7b94422b12788492c", + "incomingViewKey": "59eeab294e617b8b6c463142f712ef0bedf7305413fec7034664c2de514c2d07", + "outgoingViewKey": "315c1a9c994498512348f09f0894de2a93df024cf1aeb895794fc83549d39c05", + "publicAddress": "a1a60e2fe9f052f0a42f6e973e5e031c0fd97b2378e15becd3fd86058593fdaa", "createdAt": { "hash": { "type": "Buffer", @@ -16,17 +16,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "84b24075ffff98ad9c6248f8ea9f34b91aa679fe7f4bcb3dff5aa5b9f41e980a" + "proofAuthorizingKey": "8c0e1a36976fb35a3e3913794b6f63b609b58913f0b3a03971e6e79b2e53330d" }, { "version": 4, - "id": "a0c3c678-2c78-45be-b482-896765aca1f4", + "id": "73a6fcad-36b1-4bb6-a70a-ff86b33eed62", "name": "accountB", - "spendingKey": "0754ff9af18db491c41c1f929533a99f7c57d5d59efb6083e2fad0ba97b74a6e", - "viewKey": "c5eb83e7647e496f01eac89844a5a6f8cc16dc327572dbadf121f5bb9674be81cbb670981078396965a92998caa864b7e575af341cedf9c07e4f647422550c50", - "incomingViewKey": "c06a73385af3f70430e37c027068ad451bb91161e654f91c27a8312c98ee5100", - "outgoingViewKey": "b03e9daa01808868beb897e2f6bd58ab4e7958e3b156047886e6616bc156af87", - "publicAddress": "51894188013944be722a687a72c324d61cabbf172c7e067b96075b2abb773fe3", + "spendingKey": "64902befd68759ac648d280d9d9a38fd7188d259993f32856ed04864ca861b66", + "viewKey": "8a7ad06c413fb200c59a413957ef6a1bd47a45dd17462fe2c2147cf28f9d62401f5d142b4e458dcdadcd6ed86bdcef9b762e6acd2646681cc2e9ea35d3f7a9aa", + "incomingViewKey": "7395f969cce5c0b34a4b3ae54e06e4e72cb6885422c10185c7a95a5922c77f04", + "outgoingViewKey": "3e8e1ef58050df6e1264b445c88d84257baf65b1584ec4b2d7f2c91300339e43", + "publicAddress": "def295b44fb5b56276fe027b6b1b1e57b1b3ddaef057a5c4e4d3bc6904ebf36c", "createdAt": { "hash": { "type": "Buffer", @@ -34,7 +34,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "81ed208e58bb4ee4f2d732f21e27c9b96b620fa02395ec532c6773753e973f0c" + "proofAuthorizingKey": "97a64a7e0248b73fe11381dad83491a02915fd46dde7a5fbaeb3a86490b2200d" }, { "header": { @@ -42,15 +42,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:gArKSxJmWASwiFkmk8Y5msae+slQTk2zHtQCXsDnRTo=" + "data": "base64:XxIrgeo0Yo1/MtQURFjLSdghAHb3eIEz9Kq809AdL08=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:sOl6zIx6vPPv0tWG2T7n6Zk7UkPs/wjbNemFb+nh4IA=" + "data": "base64:F5jFFjpnRtEwb6KOaa1BUu94TYq9l/1uBsf4zbCIDcQ=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708550882892, + "timestamp": 1712339981235, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -58,25 +58,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAWEVZq8cooM7MSr5J9OyFJDAYfN+FKg62narpREuVhTa0uWzt7pWrtSRdHY+lfDoO3ac31B1ldfw0MGksh2cEir5j7pw68DeszhUQKJeGKmyYCRjk9xCF+Ohsxh3YPkT4kSrLHbqdOwUN3oBD7iMIls9N7qZYjifowUJt2uQ7uu8NxzyoSFFC2vuX/zOUGHLGtj1atSKX+7uu8JZuoXfsOE8o2fZOrP+65L3cOQThaOeKUgR5gnriyjk88RHeCzpWyEy78YsMlHBw3A2NONRUGSwn2TFe2Td1z/fjTgGjb5T9cFwnuuwAaMzFkI3thXmG2LDVaLQv4gHPT67iZJDaCQCln3hMeVk4aBKhtyjEjQQG7sJFbcMz9bkpwtKuLE8TnpdmuhzehM1jVriEhWUDOkp9UYCzdBKJESBMNCv8ephbVFL7xXKOWZ1BO4JUBrTEfHw9RG0Zqgh5OOYT5wJjiaZfciOPCkIZ8Gc4cNNUv2QE9twzZuSI7tgjj7OGgN21PEsfKjGXeU8YU1hhg5WC1RkaGimvSuz2l7FKPl/YriRlSrLrOA8Cpp+p/MAcSEPepMl9qzGifU4FGoqHMq1/Z9FnxizVAh20mg4IMyNPxt0VgQ28aFHu60lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwVTngSYMnCW6mE4TMS9OL0Zjaxw3PtjsRwcwhjJ7Cvd4S05xigY9h6ofx0S0SuvTNoI29a7ZT8r0jCoqS5xZnAg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAECvKadEXDluV0uviFmkn8P8uIFsl8IiDc5vXFMzgL2OihtulnYK8gpe3yP3JIwXRsTueONTlBVg0U+4TbdB/5VRRgNemJNA6PZCeGeJoHCeB2BFHY4eMCuUHUZLyWpwDrkzGaOcTt1AOb+aBh40g/1e5jZgCQjdq74+n5G/ykbwUtDbJ8uhPJuZGHHHXh4ooj1WjDkrrLaBS0UuJvm4WqaeUlT2UdAATGzHZKiNuUjim0OP1txIl1waPEQ3TYK1t88WWrIkPd2ST6L+CrMLcP2SJtmVVprF0Pn9K3SDl/gsxTX1uihaBkzLUBKD6eKWjtGFCOBTC5EYIApCpFbpZnBhFvUZlFRBHP7YSUTtZWZCta/vfNhcRpFU2ic2PnR8gtC6j/I+VtvOCNh0USISHHqHgMlUfR5hafDrCV7sriRSF8tcobokDhZDkt1sooG89+WnzxDCFhN/zR9So2FlYHP+Xxj6+XHJESi/xH6FWOu0zE8r1HLddETW9Y+mJuLXgA/BUXQKLWSQpkT/bHWMFsfTgiylyMv0MSe8Ip+B5OBcr9XT5Al8OJy9FHtSm9OJz2L+hzE+9ctyxYg4GQibOd8RKdS1mrpylSl3V1hR64RqKPBL8gmA48klyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw1YvUTdY0E2uDexlsGEixfcKW8KVFqbd3NpgGEePZZmMWFN9NFUMZajqbJzuKTDoS43qzfDkDqi25gWSoNGwTDg==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "FCAB2E52D8A4F6E21BBD1C066F455CCE1F14D21D2B9CE754D1F29419380FF6EC", + "previousBlockHash": "0B622DEA4BB7ED324EF6C7AC7887CD7069A5B21D11D142A558A1D36CB7C6F872", "noteCommitment": { "type": "Buffer", - "data": "base64:JyRxVEqykAwhVzHoMt74jikKJ+D3is72n2u9zyIQVAQ=" + "data": "base64:4SLbJmIdx8pLXTA9OJIUuaiaGxL055Vf/i+ipgsqqEE=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:UHtd4uFVITd64B/BoxPGFkanHMbHiZZHfoP973dcKPg=" + "data": "base64:rT9d53Ibht6XVdpCDiLk5W1ZG/HiUdYQ6/ttY8v0Wj0=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708550890491, + "timestamp": 1712339982760, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -84,11 +84,11 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAMcauJtnqjKMmz1Rtd6SF24F27aDwr4SEcWbzWMZIGSyK1gDgn1mJWO15z3SdO73rAFmAJo+YbhzXKeOA8dJ6nYKwsoie/DxIOWa80QLRRJ6GinridRbLO1gp8R/0dResW2exLVHtIYLHAQxHlR7CvqSXFrpAd0ooW5flWmlKaWUAeklOnwBCRVaWk4q+PzretFJcD/t8iyKutKxzOGqfhIVk04ijw7iDSlBgwuI2k3C1BA0TBx6mNuEaJsZ/cy7/ArFd0k3Jb8dwQ2Y/KaUiJYrw+h4aPmpJ1+9HDuvPfYVpNB2wVc+KRSw5C85og1GOj5GJ10RUhPobXy34Zyk32CxuQKnz+kN29boGnmokx3cpETP8xtjWg9x9RUVuADwC8ahnpyt/gp/JqXHkVHWUNBkfHSgIO1gcKKtLtNXByCIf9aip8BSIhV04UNIyij9shjCI0Xubw6GSilD6fqVOpneRY3EH/rZtN7BafpmugIRgWDancH9HnBQ55ZlgeQFprwqHXfUZa+J2K+YxTbKiXz6jh9wBF34SZs8rOkcUg228ra7C5ov2Q9jE0jJl5OsXw/1+Faxr38NehVI0WkhlDXhYBpb83XIFhSbWUQ1CT2C77CswvVSoO0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwvk1rue/Dqkx599Q8f7aoqjQyK+fap8yhq9XTeVhzaZ2H1lnMA0jfsIdMcsv7Sf3E5pSZqne3UoN9dFHhG5KeBg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAA6rbOVbKZRaxe3/wOsdh2eBdCzrCFUupy0gkJcmkWOGGBRvJ5NM0EkgwMZcVAjVdgtxvlJenQPT82Nhxd1/5vNFr8zx666BPDzf0hco+mW5qM4GzRcF+IUfIfhEIXdgvwAETXW7XRgvy2zH+wDr7zZnq4VMx1lajBV+vSaDWaMngQZrBrTZTy4ahzcvWcphq66io9dwC/k0WXY4oThvzmdzZ14vVc8acbm/WAxKyi9Dexj5mxSmw5znbmPUHfbhYr7Yo8NF0AbwdjlHnT0RI1js2ng0NyxLQqrvmjImWiomUWWLnycm2bq3hcyudEQD+Z7kh1AIwKHazEyUOs6afGNG8cA2IunEYe7OR6rjiNnZnSSg5nkarN3GYPo5rT/T8pwO0v1LmQTW3k+7eYIu2/hxNBCp/hNKD6NoNuTH07HqC+QRWdNcbsm2XU9dgykdWPD7jo8B+qobc2j4hkjWroFKSls7v6uJ/Ckoc5ZiRu/b9FWe6dEoJMVV13Nm7ow5lWBbaAsPKtF0lZAM8pmz/44lZAU3vGvVxaRiukRZCugtDviN71OP5oDftoRiM+3Pj/joFGN060DEZ4a8R8l8f+BXBPgx0nHaY+GNJhxN5El7nbm6wvePwSm0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw9JUo0EOi6CHgRc0WRK9xWIin62odsyAn6Oh+/Uphipb0Ibh19g3h7k+ax2ZP1BLaJCj//PRwFexPIjJNsLdZDQ==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] } @@ -96,13 +96,13 @@ "MemPool sizeBytes returns the size of memory usage for transactions and nullifiers": [ { "version": 4, - "id": "0beb050c-602d-4559-82f3-b3781d19091d", + "id": "d10cd6d7-626a-41b6-a3cc-9958a33f1c61", "name": "accountA", - "spendingKey": "e8ef51fb0f4ef2ad3e7196b765fdf7fc21bbaa1c641bdad203a2381d384a2c63", - "viewKey": "0f7275683693d72a4b921d9a28889497cf6bd1cb219d62d5be08c9ee2002f2a3dfdb4a4394158f6ee4201e7e484a65c503f9df35a3569de2e01773f14f1d354c", - "incomingViewKey": "1a64b422e4a8b8a22086d153ab0e45ccaa7acc0f32c2008bc14052d916b38900", - "outgoingViewKey": "06b35e6b8cc43c2d48eacb719ce679350221f22391f87f9d3f1cde8238c5fed8", - "publicAddress": "528fd3edc9e1338d55f9a5c383987aaa5a26fdaa0afd2d1fcdb0a4f7b68698a8", + "spendingKey": "ee40b0fa9f9c392bd74a5574ff2c1155e40339fa8e5dcb797a8b9127748735f0", + "viewKey": "75f9ea44348c42adcad4797d2ccfbc43bba9ee64a2bdfe54ce552b9c222a5b2d9fb64aed55dee9859ed5f0c0704d2609f923b208020e4a1253bfb7a6b530d4a1", + "incomingViewKey": "f9f69caaeb67cd8c972d68fd3ce8f74d668cef982528ca0f5bd9723701e64d07", + "outgoingViewKey": "154a67ba2d35492fe00756183ad58ab4d50260e783f8520d0d702824957ef4de", + "publicAddress": "83de4f31dcc3d0f3361310866c7ddd3ef1bed397798708c39a4a0e35040667c1", "createdAt": { "hash": { "type": "Buffer", @@ -110,17 +110,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "4880b9d92af5562de407d416e1496dcd2623850f1afa3f46d1a7d51e0e7d1609" + "proofAuthorizingKey": "a55b5a1acaf7fec2818497b7b6be62531b0d534e07cd15a239942af71ac7f20b" }, { "version": 4, - "id": "cf7cfa12-4fad-4495-9b33-1a33e17a429d", + "id": "fe378ef0-d5c1-423f-a38c-5accddabc965", "name": "accountB", - "spendingKey": "298f49cb72a31b9b414eaa220098819050dafbe5be2763a441948dfb372967db", - "viewKey": "eddad5770b7d586b0fe78f07bee756aa1461875b3aa624010cdf4fb17c79e302b6e083e0b5b3d39498a717f09696d3b8401e796f7805d9d4a5793ac49060dc45", - "incomingViewKey": "7c491ab0712e7c5b70ee7bae9a34132bd7360d9ec9e0698507b4832cb9ca7003", - "outgoingViewKey": "02da61abb01c5593d704f68654c8fb8c7a06407526bf4ad9fee0f17cc7947825", - "publicAddress": "c56dce998ac483c9c727051343b6954f9aed394004e5f20d7ee4a4978f167517", + "spendingKey": "d05b452fd03a20726fd80ff130b91de6654997e2baae41ff494d83f257c255e4", + "viewKey": "2159ff6699b3592a031ae819e377d4f454a8fc62623fb5a2be620751db6a4551d6d204ace85528df401d61e13622bdb83efdc9ceed000cdf6a2bb71b4a629aae", + "incomingViewKey": "a304734cf74c50b597b835485dcb68ce716073e4925754b57acb43d77fd4ab01", + "outgoingViewKey": "b3dc1bab9c6d3f29a7ac0efb4e9df767c684ad260ac22c24dd79972a331f445f", + "publicAddress": "f619e957416f3b43d325786f613cad27378b906724f4a1a0857ff6c9f395aae5", "createdAt": { "hash": { "type": "Buffer", @@ -128,17 +128,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "4501c01d42a75e56b255da931bbbe0b4d247b46342c166e845f4a85dff1ab105" + "proofAuthorizingKey": "6d010be2aa2ff45821687ac05e467b2da94bfc8234b6375a7d5f4396991e490b" }, { "version": 4, - "id": "dcb7f4f9-e6ea-4435-8c83-256079223ec8", + "id": "b6a08cf2-0920-4952-b570-85cab8ef5d5a", "name": "accountC", - "spendingKey": "07e2517d9adc1cf2aea753524cb22516171d5817989d1ce82bb19dfd7daa8c88", - "viewKey": "1b3b081a77a6aa1e18e4bf88636681d65377de28121ec35ed986348f6668c2405c752022d6194b8ec75effcdccaeb88a437d9284549345d9aecf60cadf2a1c88", - "incomingViewKey": "dae1d9b64cbbb5dd250b63f4cb05c998fd7e4b9e6ce00284b8a2278fbe2f4900", - "outgoingViewKey": "a0809dffe9ab3d7be37283c7e6f7fa2cff8ea5750c6aed2e7988f56fa510b2c6", - "publicAddress": "1ab78c302e7953569443e43c623545d6fe1fbc63ac7216eb9c9573ab1fbab75d", + "spendingKey": "f1a41988f618e57ab424b3f7b77e6d67fb723165c709115d0b9bb75dc9dd6c8c", + "viewKey": "c028b91f592dc527f45cc379302f6680b073a2d72b435f1e3bc0f2bc51ba47968a22e5249e71594014f276b47f9cff1562d009d55b6c73611dc6a08f43280a5e", + "incomingViewKey": "53edd1665309998613eaced4931c68183206a42fd4cfee0a2691f4855e1ec705", + "outgoingViewKey": "3cecf1e49350bf26f4ab6d2e7dca2c9ddedfddf36ef0fb2c4f8a7c2e08d59953", + "publicAddress": "62b0ae7956f6b2d158c6e7c35df20ffe24234f140f4dafc1184c8e5f472f1772", "createdAt": { "hash": { "type": "Buffer", @@ -146,17 +146,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "47b68d2f4e402519c9ce29bbc4957c188d174d9d2f3f469d2767b56088c9ea0b" + "proofAuthorizingKey": "0f955cd27e7419998233d6955006f04dc1a6f3ebc1618e3d0d7689aad67bc408" }, { "version": 4, - "id": "63860ca3-08e0-4769-bbcc-04e82c02b6f2", + "id": "b8ae96c5-777f-4db6-b935-ad849f4ab7e6", "name": "accountD", - "spendingKey": "32e85b1e0c5d4dd0a7c5e2fbdd7196d2ace839be88a75a6662da340f74097d6f", - "viewKey": "441d63eab09bb256710dbf9e380064a0e62a79753f468bb19143394588349f10194133d40b8d003e8e913de9de599544bea5461334836b0842cb817265d5a990", - "incomingViewKey": "40429b34f2e6e960ae6d494b2e49b52d8d6d4990c253bbeb7b552c29726e2c07", - "outgoingViewKey": "7d290f46f7860539a6810c6ec23e87d008bad75dea9cfb5ac3026aed12b35c66", - "publicAddress": "5ce77456e8785af864a42d6883ae34967191f38b53f23a03f98ab2def22f16a3", + "spendingKey": "84355691ffae110e13e9f283c64f4e9481320a01f00ddf59883ae474b941195a", + "viewKey": "879f54f3ac5c21d5c172d7b4a1853e3f331c621c1b9e7ac19d0659f932992f5210686709a07a1b51027b8a3f7ef1c6f07e91f3b74fcacc39eb48d2badc6b4b6c", + "incomingViewKey": "6a66ea1b7910cffd2ae27cf36e6745a28d5a91ba5bd2bc35df9aaa6ae3289f00", + "outgoingViewKey": "0ca33681216158ab8273c0b69a623290bbbbf53ffb6bd27ef52ad169c0eab521", + "publicAddress": "01bf7db24a110e608daa5105db0046513a1df5f82205cc1fb8e3b8d762523362", "createdAt": { "hash": { "type": "Buffer", @@ -164,7 +164,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "874d3c965447a1db448d9f59a97f9d7e25eb08aadae43024461f1b9ba15b3007" + "proofAuthorizingKey": "8cf8676eaef02f4dd1694a282a8e4b3c203f78e01ada233055dc37baa1bb6d00" }, { "header": { @@ -172,15 +172,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:VUmJpzrIlTOB2PoJ1twxG1NMkVxIG6a/EvkYNulNfx8=" + "data": "base64:tAniD0iLdcuuxtl40L60YlFcbxsy83nmn4B+kbCv/AQ=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:0afH0KmDuIQTwyc6h9WbBpateaPAj52EVLIKscAvlWI=" + "data": "base64:oeZ8gD0KjibmDhfvB5xkkRUFZp2Qb58ZFm2y2kzX9Gc=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708550892618, + "timestamp": 1712339983142, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -188,25 +188,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA1I40BQ7cCxgY+4ZxGFE/c5mBbtAtvSwVnChTpNch+GKVy6gBTyHL/qxVy/WdEANuAxmXO4TyeNIoDo4qSTgL2MqF0uuLfTErEytzuk596juZPs7RSCJPn6oAcMbH8zgYKyxf7/CQajn24/f2Tk7Tqo3pSZ3AIGlgWkr8PU+G9KsDRpMjaKNfLsmLsMEE/Ks0dcFsVMsx+RBLHFp2dAUGEofVS4nh5I21UrsIVQ501ZeMyF/lxzBK8/E2iYNrz7ZN8n8lFZLk8F5SfwNGJNzghpUCiwyGe3AN9n1HOSpQ4F0jog7svozNtaTvjxSMF6VfBVXU9b3hO5AUtyf5htL3v3f0WQiWcfyizTyxolfPxeucxZFSdU7fxng914rABc9FTmI7VKokgoxDNCec7z2MVj45COvPZ9nFgfjn4eUuPk//ZOOHM2swejVw6SR5ETwdWsSsqrd8eKePVOu8NVsyGkVxrVLJfCWTObSg0YLV21FOADcFJ3++NwA4W/WVgDC2Jh73sGDfYLREFeTfaZQ/lZNZo2hyHD/n2LlVYwO63DHIFB2lPirvqlc5kYA7YxLT7USiLarTKT3NnQ7nIi3U0Wl3EtTOZoaehTiZ3/5kxtcJI5EotcC+PElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw+axNaeZej2FYOrtYD7MS4ncwuH1C29EUK+0HNFkXejbTW5WZ8TvV6DoaiC9tnUqA67hV7X7iWXUr0uVz1Q5VCA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAH8SvJ8SYQ1MbbM36vKpumoSmJ3VukiErDTU9FQZQWxuFfpn/8r7Rb0TFczsnq0S7jTTz0SQp+N8C00pcUXLki4bdeZIu6in5jKFFu/xEIr2VkaeJkWAyM2lB5izSfC9EX9vv/1DJfajDj9L2uMyCez97iUJH4MR4xU5BioKPZ6gVyVsig1kcqB1B6kuBdSPC8yD/EsOLIatZAcAxuNfJq99ZXWt/EPuhRvivSNKAwUO0Z4T/TgXOEqlAm+jAU24ueKxVevB7qiL+G+csBeqqN/ffZpCgrMRkRC6Sr4pXcvVjVS3zPK8Vc3W/6kibCwPuPgbsfjYyIK+a3SY8kIdW65xIXwg4h0u7GuoAki2RNAzEn9W+BdRDp60L8lnUlbVBuUlXJY5JHnIfbzAI4BU9Gw7eauQudZo1Y6802v+oJyeIUxm7xkXMyAZdOgj3p7bRvBK8axTWdozEkbjId3pH89bGOqVJWT57yrCOpq76NPrYv3zX5xlAPKKiGUDDYNVTjuHEnHUWKjr6VG36p9s9VfvdZFsXGDr6on0R9+Hw7caXs9ARs0GNhvhM4jIInkgn60njjJnb2/oizaGCedPteDaY/nmKqMDQ83O+oj+v8ceFJG6DO7xPKUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRrx9PlzAafBBdgQMmBjrojAINJsunGk6xs28DrhTqTQ/9CHzJ1nJfR6T/RJGh4cadUiZvBo1n2+bGT9SpeRpAg==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "B7965E5F3486EC4D8F770EC118C70A9EF7C7BCDE720F324EF1DE7790E8ECC46E", + "previousBlockHash": "F73EF764F366D4ACAC355AB56633406379F0243CBF97AB0DCDD74EE964FB993C", "noteCommitment": { "type": "Buffer", - "data": "base64:DztOdA0ScWu7HWnht9GpArA6ftFUC/Is+r6+nXz4hkQ=" + "data": "base64:fNNMb2Q+G+6661OAKgSvKjNZUFoaZXmFGAID1zt7EwM=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:CWjNogafHQAQe8Ui3YkIskPn+j1j6WiWlzNgjE017Rw=" + "data": "base64:FrwFKRs5o8nAZnBnmRuBagZv5eM4uxBkWobhJW2mrTI=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708550900508, + "timestamp": 1712339984612, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -214,29 +214,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAVP0vQ8Tt4Qjgsyuj5EQt47ttd5uNTx7drwQdFQLVWVqMhwV1EaknT5e9iibThrzGw05ITQ1zH+YBPDBUAr5kRS3OXKxm48NC2dvSfPy+a4uMFS6eAaLY2t2qpOhvRhjgR3uJYp0YdYl25gEQifYtWKIinCVL/7Q3zAIWawWFBvENIBBEW06vTsI7cHTJ0vqCQBEFKySi/Gt88I0wycdufgafJsNA9DVSzaLwQtE4mvCirL9/8tmS+9Yc0ZxvqvYeE1Kl6IQOUYvi+tAQ5I+xsFM8AvKgruQrY1JCXYUHSWx7fQ9uSWxeMyA8GHP6qv+fj6QpSqtTEMdRdpCUQ+HFniny/YFqp4FQkUVRqmVxiLry2uVwcj8SrCQNxClQgEdwp63NkwHpuaj14X7WCuowABkeXi4O/Zm60dj98A36dDcCSLt+THUicnTEq6JIaf/pzGcnnGj4Re4zCiBMgxggwbvaBUEyrAVnAxmhdpZbu4TvL5K8gz9+jbnrCDpPnTSLPqtRxHrc61wtHuyj6RNQdHqV788ItNuM2XksI5KJLK/3R00oAodhxw9HP1b/pHweBnMal+LzrvgbC5n3c45vlADKr5nvdodUuGQzGGnJw2JacqYmW/nq8Ulyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwqnsfLRSNqtuOqdUnbGI1aXwsCnx4vaN+1raC6p775/EDz9sDwdFecBc3/ZrOcLTEXSpqjNcVXxAHCc8IG5wmCA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAA/kiVzFiwNhe+sSwiMCn3Yk25wwI8QMu//G4zlE/+7byWAIjLk47kzsV2DDfKPX13rjvuRNlZ7shCHWB81mQAavX6Y51RTeejL3ekiTlHZ6ChrYhBeAeTlg3qL3AjiJNR91SShApdkqfzGfrp9UrrmnLAAH35edYwqOHXccD37jkUfRkqbIxNJOl3DZIMmR8s9/IH5uZS/rAgXp5Mx2EM9+kbLoO6AsWTi5/Xi34539GgfeyELbRDKoZnqYHGz9mdyGSc8mIwyOQmJ1ArqvR3qNc3twCY/4Ei8SedUmEhPaxHpChWOc8p0uz99z2ceCfX48psibVUmfCU9CcZvSJazKBjgsiijlsAlkObgsaJaMWZkOU2mPsd04hHmL57M2ka/m2M+849Eh8sV7NFvahfDLQ/iC7JfiNjiKgQfb+aZFCqTpOhZnu1BeLc2+b1Yc3ox09t3wrhFBOT7AQGTeLCgNhMtODKuoLueu4yJMQUT3o4wIxVqP20wvY7lKxoJkexRiwr4cnvzIuysaaASfF85IXo67c+UYHWjJkOC9aXxsERop4JbBFPPAJKZh/JKEgpXx+Ecg3Hkv/V/RvGVM193FPkUil/17aGmEaOriBpxIRsUXhzXiIxRElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCPuLg4JvJcwBLJHKB/PSOKqBdpy366dn1C6ENXu8UHPl2sJBFZOLHAgDT6LxsbbCcVhxpCDGCtvj63yGKyvHBQ==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "B7965E5F3486EC4D8F770EC118C70A9EF7C7BCDE720F324EF1DE7790E8ECC46E", + "previousBlockHash": "F73EF764F366D4ACAC355AB56633406379F0243CBF97AB0DCDD74EE964FB993C", "noteCommitment": { "type": "Buffer", - "data": "base64:Bs/RM7jwIo2aKNICcEimpepqkGkJJYGnZqrfoNc3wEU=" + "data": "base64:/GatURXRhQ/+k04kxvM6FcfBwOZYwWSWeSYrpiIR/So=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:H66y3Ii9UF6r5OgBceR1rbhxKm//JzrOkrEtUSy3NSs=" + "data": "base64:NrJy7CNT+Mo9MSsSzsG4oNbxGOczeCNk47pIoaV6dy8=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708550902407, + "timestamp": 1712339984908, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 5, "work": "0" @@ -244,25 +244,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAZLU4TqhdRyAsVbWtYtYF8yj9a2ag4DQqay+3llEqUyCNSIkjdhxE8Ao9yKhW9o4pwm0UM2VVxE/b3C/04ZpX2WbCejdVhmj79fK+WKm4Tl6vxait2NP7yT4oQyrwMDK4a1mS1ey9eoRI8BWCKtqEUlFigWEfF3Qmd7jSQ9FLj1UVHcps9H8YUJKFZpXpZdwyPymcBDQ/mJGjarCY+/8jLuYKo3BNjzBMk+gFvVb+hhOTjYDf9V+j3uRCT+QWp9nkYUo8aoefQ2rAaL3DBzFigaoZf2NNOUXYGGTQPQ/AE3dJHxTbtjpgI0oD7/qEienNcxBE2Q8vcVKTe4aILdqCJtAHSajTLL1f1OYUL05kN16B/yY9B/pwGNGkjI5QpNNR1D3NLqXH3cYwrHaOtB0Tno8tqrSNlrv1cgAb2UEozJ1MHnrdg/B7VVzduXnxYdmrdz9jZbeemscyiFWYBnKV023V60FXZRkjKHd8lg73FdRisL5yW0bFDPq16uLIGPXYsTz2bxvYbHsglree1J4H/gv/hdxzRL1IrQA9I5tUHgl87nqSn01XDmii5ZSZvL+R2ptMEoTnHCwVGq5J8xJn3K6xMX12VeDM3ABB4SXQENMI3yxOiRHBxElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw84Kl4nJi5ecCgvsuiLCRv0DYC/PrsGfeYyaQG/gyIJKB9ermpniqMIQ6mgBAsno9RkRxMJMFFdOdw3PnR60xAg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAL7cGhLbY6CUjcp2b6YvWhpPqx5LY7KtwLDDuq/GVeh6OW+LxEqGV9IlBe9ZB24/BxruMx49YKvjjnQOoEMUeFiLbTKhOiwqvixtdJHurwzSIQUUYIdZ5PbYrnGbBd8cbHOzIAfk2+HmMONxSN4117lwqIfgeKyNlelK521re46UHa4y2XfMwm5BuG3IGrHYAcHe2DrnwgM0FyyJCAbCklU4rUrGD8b0F/N448VoC5ESuZ5IJuA5QX797A6FqduZy7OTXsYFLfcwoOUuPwzzrD2FIUZjXYDPJgZM5k8vftzA38CyQH9X99jikc3KDUWDrR9OLoYKZJP8rXY+OBhAf2Ppn7mT+LMudxu+V48AvazCQ1yxb2dl/+y/ve0xUy1QgXVCWJnVoazVsfw8nNaIlG8St6uuSSKBYigwI+sPP6KIOu2Bhj6dgKtT7KmPTYjB4I9RUtS4ihL4Lo6ONemcDTyA75IQtNiVx4ALyTuryVgdiAir9w3iNrcPii59eaUc1MaiWXR7bfyuh89NFk8SvlRfw4MsFWfUfxU9sFREeKMO9U/hWrlR5UDN/KWv815DWgiVVFMUeJ8JRIg55FWXL3FmyU5MYyIsl6I0wk3mjONK9HFcQ7NRy/Ulyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwnbR3vloA+n3/b6kaAxo/t19SV+a/7pTi09LCAc+W5Q8xwLS1pkeFVP3uguy91LDVsZ2EWIEZfK1KbyC1ndn0AA==" } ] }, { "header": { "sequence": 4, - "previousBlockHash": "D567D6BCCD529AAD5AAB6C443BFBFA103AC871DD2A18482C649D6B2AD81DCA73", + "previousBlockHash": "6D04C4D32724CCD3E363E21DA846FF586BDA4BDF6FB2BFD192C1B998C79FF1FD", "noteCommitment": { "type": "Buffer", - "data": "base64:GcMBLqF/Uw79huQVDdypTYPT24iS9XH3mlqf8koyqyk=" + "data": "base64:Uq8/wPzUH+0iVyi1UjUE4RvKHksd7lTTD9AC5FSEhgU=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:4QHfr7+ghbmCxbFoXCrB5aoMJDeyw6p2wSER6lqPH04=" + "data": "base64:rI5mnNOsHr9lRUt6iaDZhJz0Yost7RFMuxbHannM8ZI=" }, - "target": "9237815341750015092140817300043113376661752366206318446334046747329935", + "target": "9228823284279306817296266184515742822248210830185427859262273659833347", "randomness": "0", - "timestamp": 1708550911058, + "timestamp": 1712339986364, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 8, "work": "0" @@ -270,11 +270,11 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAixHeqv6en/nCxZLyW4AWihEA4OI9EWW0goXpXC6nZUeVySRa+Cx/sz75GJ2k+w8e7uoRujgrhwrVSLzJj0Ut+ClBC1fqg1eryd0vLOs2TI6UhbENk0mv9EOHWV6o8eddwQ/4VF9PCfvki9PyCjw9uAosgJS2TVll9lafzLjyjQUGmAguEy1XzaUnkm/lbhpWrRI+73vI4Tufx3llU8N8f+7xKr886SFwtgMXC1wIVPa5rA5hq4cJaJytH6O5KEdzUNBq+GlnreyBptJpcRm2jRMeG3N2Yzr8wWmjrChxICX8FSkk0WW4nkf0aB2WgpX3AJKyOgVX27tJSznwTF1bHAyb3SKqvjBp5UAxhPQNdrzJeT2qMQ1W1/PAdLaJBe4rO3EFZpWE3+yWhtBrmKyaxmdIo5JJsYWCdbm0fsPEZEdomqP2cG0MgjZwmV4he0UwO149e8uD4VdBVjCdSM6HQLFXG24hv9i/NOc0bSE7rGOTny9h/EvdaEweMHooEP/3BoP2Q7lR3N+wC9flX6Q8tA4EOpZ2QvbLAj9XouGi8v7rg+IgXEpRHQzwGkgL/PAfMh7mefN1SPrEBQnHHKC9zGjpd1tmPRAeweBrbY2El14ksOJp0FsLyklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwjUM4YXY9FON/vDeJS2c42neKR2M9sweQCvwns8XWguTyTOyyyfgjU1qHQl97dzkkHAvCrgXzrHfWTlZDyMumAQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAkg4F//etVMhU2Jhq0WR+NihC2xJe+CmvTUNLydYiYauCW9SmF8yP7fJr9ARY1Vt0RAkvov4NJZxyXZBKoVufliGji3e2BLTIlvy23nmdWpWTkmNBKICbcsuDVteoNhSWl70CB8eACMEPEXQAYkisLtCqdceWaX8oopIhRITbrcACpAX2C0+dRYDJtuqL98s9WE25B9YYMwbQWwzc+Hgos3CoB29+FU8+jWXCwTIWJfWB+ig5WIpjSmhaViOuScFEOoV0Z5S+48Z0w30o3lG4/BLBGeb+khayM+k5isPcW6dK3SqdTAV7s9LKtjK0e50siThHsWMRso2LSx4AyTzCuwFSbOt7Y657ZgRCpHm5d43+OuykyNyUZ+AVxVXcsXljmP5388KZj4uitJoBz7lFVxJ8HLbr+fpLm1W50n4GD6A0C+OWxiBI+uy6oATW5dM+aSagOKWh/+NAw6XNJI9aTOCWT11KNkNzEAoXUbLP1c9q+knVos1aSMXxK/lVLy+F6h/gfd8hoeTU+LBiH5LMHUC5d4+dlUMF3dsuFc1wS883Gu+dm60S+vMxPCoDXeAQ8Qb0W/ZDDTpnhU3xcQWAZiHEvZmyEuwZgp0MzVNx0ZPqqFx0DkfhX0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwyCnCauGAFu4eb10VTgGUUywPrRaoxHpburxQFOCcXGGiXktyuFeBhVRubE2B3AdWoElpiCzXIGNeGRXLnXmOBA==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] } @@ -282,13 +282,13 @@ "MemPool exists with a missing hash returns false": [ { "version": 4, - "id": "5e5fed4a-cceb-423c-8066-8fc0a2dbc0e0", + "id": "ba39a3d0-499c-48d6-8342-452510efc86a", "name": "accountA", - "spendingKey": "263252e4df36c11f70936f0807a19bdf862f488ec245824d89d3dc35428bbdcb", - "viewKey": "c9958540d7868526d409258a08f4d3518c22b313281356327c8e5d2d32ffcab697888aa4c70ee77fc238b4716373c333a9e7a8e6fe76a735484c1e782c88f0d3", - "incomingViewKey": "e457541400851069d70c839222a21d84031993320202a0da59ed6cf8bfd03a03", - "outgoingViewKey": "ce12b03fb97f2ef3e81dcc8dbdee438b9aa76a249014edd8ec572c712fa4aa6c", - "publicAddress": "6b77831f36a55b3b26c1ae3af0c391f1276140aded92c63d313fa22dc4210029", + "spendingKey": "0af5a185b68a8feea86a0a09d55972e9abb529842de789444773e22e8f0a4ec5", + "viewKey": "acc7f1106ae5e0801ac5979939b5a915070d81f55ca4e3705565fa77d7580df3268b855d14d3fb27bab66908399f51df3f2b74c2227f0c5e91de116ca9aa729d", + "incomingViewKey": "0fa02c4c36699509d70ceb0cf08578bf15a6e8e07cbabfa1cb2f3ce70e5aff05", + "outgoingViewKey": "b75500399050f2b30f77b6a72a1fc0856adf7ff66a88c2ba312c429aabf1dc33", + "publicAddress": "e21e1361bc2db7a7b39c2502d8be03e0320fecc890b43f59169d24904fa76911", "createdAt": { "hash": { "type": "Buffer", @@ -296,17 +296,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "f27222b7505021d8f8836cd5df8044b09423c8447b1ce0a66969b39225a1ff02" + "proofAuthorizingKey": "92b92dce740955fb088b8e40cf3de5206331ca5ce7316eccfbbf711bef9d490e" }, { "version": 4, - "id": "4f01645d-b9a6-48d7-a44b-b5b5a35ac2f7", + "id": "7ee3cb1b-3d2e-4a96-806c-0e36cbdc5e52", "name": "accountB", - "spendingKey": "226342bfdc7423308811307a9cec53eb56b9717dc06a6e8172392f11c5465ea5", - "viewKey": "93cdbf53ec5250eeaea0f5b6548fbb289d8669bd97982188c42b356bc1438c202ff2f50671cbafb09024950fe1667efb7510c885fa156bee97584ddf4739fc09", - "incomingViewKey": "c29043a2d778b84b61acee20504da525783c165493192d81e621eb00db2cbe02", - "outgoingViewKey": "746dc43438d4fd112862cffe45af621fbcf3f3948d88fea2cdd9194e975ce362", - "publicAddress": "f10480690c8ba1c31c307d29790d02bd6e32f9539263f1b1370e2b0876680f94", + "spendingKey": "bd850f71f39821032204484fe7f65fc3423fc6cfa01afb50d90a2ba6b6c26057", + "viewKey": "4f2884fa31d91a26ac057f06645497d6580f6bb4ac7f5df833efec7e189d5de19ccf5bf570a26387702c6419b9e2631e012f8226a152761d61bb9a312692812b", + "incomingViewKey": "b30a15dc1fedc62a98795dad19da8788f9aac8fb9f399983ea99daebde1b6702", + "outgoingViewKey": "c1e01c04801e95e2a65e9e9e9bcd30c81fe8f6b03862ee51dafec5a3b3dd1f3e", + "publicAddress": "89daf3b0b970c86c2178ece43e8f5c4e0421c0d0cd95deb914611554bacd25c5", "createdAt": { "hash": { "type": "Buffer", @@ -314,7 +314,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "7ede7b606dde9241ca717800f23c53cb3f656ad801f5c097291f8f951475420d" + "proofAuthorizingKey": "a44787a160493b25960c6961a2f25452469b94b73324fd5be398adb4d835f802" }, { "header": { @@ -322,15 +322,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:ZYQyhBmPTKldlqbBsEVt5FN3coVOBX74OJ3EVIdGJDQ=" + "data": "base64:3W0j4dBH1WoXzmzQMvehqmuuv22MID/Bj13HbEz/BFw=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:V/yDk/x5hSYkFzuA0o6H7SH16w7nYAuCEtpufG05+qg=" + "data": "base64:v2VWm/otd4vx2tVuc+31udT4YIBTZn8BetP38vNZfgA=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708550913425, + "timestamp": 1712339986740, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -338,25 +338,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAIJ1IFHdBhVmxvFUcBitCf4jnw8FcXyYfC3UH5kC2aAmoZFuTYT7ZEwUrzpRdOQ+QnTWrwXksGwW6HRpUQuuaF3vmss4UlIk6vz2gHK7CNzqwsZopbV2jJm8nMgOplOC8FgvXMiyYEZonmvTppdKoBS83aawg2Jfd31rziCc0w0gQqR0zfu+/U17Y5RV95201GiepfQe9yidi8+egY9eV4ZuCmrS5Cudu4KO8CaJ7CB2C3zOg9D+C7VDm1f7ydg+45fxMAYGF3/9NWpwZYM3OWFp06n78Wbb6YN3qq+KZ/52a8wXPDtkLzNYlVb9RnNsK3CVzEICLiaI4Ti5abqCBRp/nppPBnTDbKAtNa25VMuYV7fwoRnHRdsX7RgBAFLwErx7kpInADUHXoGOS+W8FzW3sWMVl4GfkUApiCI93P0BZD64ZsYZue5LyVKaqtHM5RKcBOQmvxrqFLQK1VpmzFpDWMrOZqKcZqZKV6Cqzz8TvOHVzgUnKvTydCuZQoMOfSpF+djZ+4/vyfK2+4o3nD3FmJW0tauN3KNNteCtahyYlOcmfj1VoE1i5vts7QjD7P3ZoniQW3gjdb1UmpW1qSohQYcx4Tg/5O5CbudqCJN+r48ns9TTd70lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwfKvVrvh/fvJ3RNIxr6uV4lowiaSVODkEeXK5R643X7m71lqOxo2TSqKsVs7+e6xshhXd/u0lpXXEeqoLqNqTCw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAU9ZWOF1qGm+iKcCaiV1WKXLIRymhEjQoTIbyJQzhthe2hlv6vFnfYpkqY/oknOqO+0gr1jOiG9CCS6g/yrniGBzxQPQny7e6skDg3cQE98+5gNRR8DKKuYryJxllijxX8/qcZm9HOQfbcjs+O1EoamKZAiPmXvYwXHTkxwXeoGgTfI+YtK0KVYquMhx/pl+KwMbwZqH/juQR6gkQUvADubkIfKEMyn0raSbfC7aMJmSQi9oSkeYoiQ96sZt3OVTGVCtkci24ZaQ2nS4LDJVVEQh6tTY5+sSqc226GdGrYbZjpZX1KZEVYFM+719Z4w9sn25ikoBXNqOTNZPFcYycTmYvh3+4uGilj2UrrPE/NpwKp9PRcQvuQ/nng6MPwBdGJ2mJKGu8TRuiv7CyAKb8wFJ6luNkA6U8uqmtGplMU1s8dN8nlIxBz1NDE06Ev8dE6cN1W/46jypsqCbq5hsa8ztTpmKZzIo9xTiAuvV9vabGBfdkgVGP8NHEyn8BFo/xYx9YstadDOeQ9i3ijc8YAdfqzzUNl7pM17ZFAlcIc9vmGSRPctalNlVirwsz93wPnJrb8vBThbBtJxjp60d8w3MVP9XiYXJVZXm0WKU1QVLAGTTFjjvBv0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwn9TpTBnb/fhOWzfnc94CKT/6Bv8PmsUCPkFS78GY4JtBlNzRXs+Y8MmenY7EhU/y4xaNa+ozrXAFnPv/v4CTAA==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "0E7ED5F4CC472C97F1DDB0E047E0FAB7FD851D7AD7FD3A4A000F97C031FD7137", + "previousBlockHash": "D1082C3F8EFEC2A0366A549B3A39669CF64870BBFA53F43E5000C7C36840DE57", "noteCommitment": { "type": "Buffer", - "data": "base64:IgZFBHI+Oue0K7BzS9hHmN3ZCycpitoPnN1IDd65+0g=" + "data": "base64:uN/8y/Yj5klP1rOiPXyJEalR6eTatISpOh+UavhWEEo=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:NzMuwMHL3GwaJsliYRJmlg5bjNRHUz7GjxdUy/QbMu0=" + "data": "base64:zs3pOhQCkbu2rhE/1s7zbJNpQOLdaJ0e8YCvFMfYy3U=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708550922210, + "timestamp": 1712339988233, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -364,11 +364,11 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAq7ZsmV0c24Hk3Sd1uS8cdicX6s37cdhPfPPmLbavZzupNbymvDImymOKAjF9o3KuN/LhdNdqgO3w8w8iZSpuGiUhMvgkMPL6Os6wWy+zYFSq8BAtyjbVEe+z7c36VBnCcOLXWdAnfikwP8uVJgznIiKOYrbD6it1t5xJ/GTo5RUIUd0zcbbK6ZazG5PmjS/pIAotwVIKFMjM5Yw+DdZkQbFxsc31UULKxHBQa5Bqf96TLPJVChlkx5wyKfm43APlImjhYmFpuFgbX6i0KzGG4WgvpDhBsngmz0K2VTIIqeFBCtTISfuDgc45rXAURPKHPcQcOVUMijSmIVseKATLosqbSZJsXb75QxMlMt+jrWj2uGQMpwTbgQzVmCylSksd6cvXJ2NWi0ijc7DlYN6hpkgrD9+5gnOurIVotvcO5YmC9AVu8LTKR8s+VR7Yvae3JgwHsSXJUEyX+HRnMVIhVageHzCWMOZHvz5x5pBD9M52e+pCWfCrisUgotPsSGjKeXzR5XWHumoKV9AJPaJ6tsywGsSMhsBFhXhT/PQNWxTbK9T+TXHB5F/oD4mxx/CSs9s/V/cUzpgSEMrOYn4xeWfN/lFrTb9qq3/n9Jv9qiNJutw3Ra7rnElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBSqw5obKejD6lPJbIE3getpyNPWLkSGf6JJ3XXhQHzURZy2dwHe4IWgE/A8UqTDJMZcYEozFSTLV5ZkojV82AQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAA2hEQFlNK5Ih8TvJcacpWVv3d7AB3Xi1PAyS0qpr3Y2CM2Cot3GAwZU8NZ2aXtBdQZkfUgggUM0Ef4D7lMgTT5EZA2ELPYJdTFtpXHNyyU5OhnIVVs3ONROVK99joVMIHrmOjatL68bvUyezdY+k+XyyB8OeSQ/wTkdXb21JV94YGZrEl5iUpRhqR5q0JdRwFKUikcdHMICDKUPsZ5Av5rFWYZ9G/w1QasL0Eoms4C8SDS5QUYTjd6k2A+I+B/LDT5f56IMuqXEVn0C4Doszuf9KbGttwe3IDiy26MNWjZ2FWfYABM4EwgCpS1gtamJVSJ163gf3Klv+m+py1MIGyI7RP8QDHSFHWnyO9IJKg1UBSNmdDe/y/EXsu6HZcHT5sKlrAU281VsqLAAZXaoDClwAYJjiZbZXHOJIOEcOTw6ICvN1W7MGsUhgu2iomfyALodImwCFVCdm4n/orsvq8h7JPY1iajerG2vnQt2uIo54uURCeoi32swpODIVqO2JU97U5ieTpChFvRnG7XClHt/0BXiRPFA5390viCnBVIQneivhctG1ZMSoC5kdCvc/ZVF8pwXgr5tyhZLT/wMphIMi0Njjl7WJf3pvFBt/kqGzqBDRIWau5g0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMMSo1w+XGWlh8Wyr/GylXkLq4brucEkIBaET3IhRVFzVxfZ0tFZ+/cKhOmpYpC/bqTk1JGLQT9S+VdXrXiv4AQ==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] } @@ -376,13 +376,13 @@ "MemPool exists with a valid hash returns true": [ { "version": 4, - "id": "c6e2ca2c-0c6c-4666-a62f-a832ba3ab5e3", + "id": "71156bf9-8196-495d-8557-0370d67a9351", "name": "accountA", - "spendingKey": "f0cf0e07eacaa76e230eaeabed0a266a60e48cff760bf9120102166cf7d09c5d", - "viewKey": "357f8ef85f949c064c741e9c54da979dbea43f71f9a335c900bed7d4186d271e86b5152ccfeaf268398803dd8ce2730bd699f4930f3520314ebfae16b51e7ac0", - "incomingViewKey": "18260b6b99ea55739dd6f603a31242332f501cc73d61db9a6578c29a26ae4500", - "outgoingViewKey": "a08a44f30528b003edf9f262309e8b3ee74e1b95836c8bb30f81d92bb51dad1f", - "publicAddress": "5607d3f1002b264edc062f475cbf3862a9bbf46024d89589a8705b379f489f49", + "spendingKey": "979053876a6f146029a711fbf4c34f80e412b670666f00d7c37872b1101ec7ed", + "viewKey": "cf75143729e6210f5561340a2bef79d61b04f28cebec7ba965f3426f8a016cd55d6de1546006f3fa849419bfc5d44a5e0b6ead7dbe3be62c85ebfba1f7c681d8", + "incomingViewKey": "b61558927d05c4df1c549c2caf990fa357f944ddabba7b2cc01c45f07a769900", + "outgoingViewKey": "96cfe661bed2342ad99ad5fa1369ba0533a7b8bbf9d717fa75720743dd20c971", + "publicAddress": "90a07237a473eeca6ac5d00f10b3afbb66dae5c9912c657862ee5ea9a650da9e", "createdAt": { "hash": { "type": "Buffer", @@ -390,17 +390,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "75aee337fc9406c9690601016211e3301b2f994d1ab0cd4a740be1d97109f405" + "proofAuthorizingKey": "5e45cbb2abc00a79f8ee9bea59f400e3a5e8635516583e090c0f07ef831fc407" }, { "version": 4, - "id": "d6741f42-8a5d-4e59-b1fd-1e74d8c89fef", + "id": "894a2769-7508-4e89-a297-fe633a6b3f72", "name": "accountB", - "spendingKey": "2c11db216716c4baefc789949b08f12925de4071728f7fdc842e8aca7b609af3", - "viewKey": "66be83c541aa196db53779a2db2762d37e908687a815cb6d97f8beaef4421334606b596348f388f996c12d8ccd06b3d05960a3dd271096910e249cefab2fe988", - "incomingViewKey": "35c739b6a054e7d3a2b35f58627d6b7de2db6ad332e1d2198ef23da88f9d6403", - "outgoingViewKey": "ea61bad5634faa243a411776f716d33510b0ec6c28f73a0e394a5278e22b6603", - "publicAddress": "ae4eeb168dd027fb0866cbbd9fc16454c67ad27f896633e38f7f2f478e99ac00", + "spendingKey": "8530e85bd611c645925942d77dcaaf19587fe62bb6f02971c7d56092fbb99cc4", + "viewKey": "cadca072e16f753c35a77c9a43402a81d696fed9480c28bbf90ce8969fadaf150dcc93e6fb1dcbe01f842f35a68d05588b4dfddee690a67f0141226603f3458d", + "incomingViewKey": "8a635611af0831fea9c86f8dc7214a91e3a5c5c1cb390917a5ee4efd42af7103", + "outgoingViewKey": "d573db923ca8ff5496e476d31235534109faa30616d30278835e9692099468bc", + "publicAddress": "ea9e284f14934b9b9e201b7b7bcfb3db5b6f504ceb24607c41c21ac411128a20", "createdAt": { "hash": { "type": "Buffer", @@ -408,7 +408,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "ba7696b83ce023ed8b95badfd68421e4700541cc5eb84a315240f91289099101" + "proofAuthorizingKey": "d09d8bc94833ca6bbeb261e3d5b1a988d3df19f47829bd60041507031ffc110e" }, { "header": { @@ -416,15 +416,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:3hkGq8NMtMUUoA/DVj5XgpuYLz4Q/IUMAiksQgQEHHA=" + "data": "base64:eMxyA5GWZYcYN5jDpTEqS3ZbJxIg1ZxXHOyGwKur7BY=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:VuNoCzRsELcjpepTh1yAnXHYx0ELtfaPE0ChNzQVbyM=" + "data": "base64:ai29jw2iNPtt6MGAMEWlF906ws+lw3u6McgZA/NCYxQ=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708550924152, + "timestamp": 1712339988646, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -432,25 +432,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAPypkFymF3jJfUwjszIpXJUPRv6LxUbIsZ0UpZHo9ocetyjogaw/ElWYnMvu75DNR7gvajxUluBaxRm6tyr6Q7ckMmxwfTPF7gM9nF4x6n8Oh//t4Ly2fr+ppOUdrrlphvN8wO37qdlCcpjIZQr2b4vzx6ABZGbZ9nOn43FnsI58Y+tOFUIPXeUqNCcafmJs06xfqIgXDRvtY1HFFypOPGZZ4iets+bCK1QEt4xWhdBiWI+7zCGCiM1774fnZL2xEmNnlp28qSArtcavOx6J6J114nKqIMokOdnMeJJeoFLxtwSve42/QZPRv48do0QN5B6tAXxtMbiHopnOlDhefBP30c1dHV/b9dLxp8PPNCA1wcpRuKUDpD6TavvqZroc37ZrG/dXd+I0FUAJai3z6g2z04NnVXoEsd/1WPSFrmAQ6QvVyoYYdUyWMgNFUro5bw+wRLP3RHU7RPWOKYHuttpoqvd3eld3MgYFDqg+mYTphfSq27luOY4u71uqLY0ukXit/UWPDLRXMZeLRFXD52kRn6BFNl2MESl+9KO/Fgmg+Nq5gSi4Ls1ERLS3j+iSUM81Krvzt2rbKAnajKXOMsnYZYsRyE6POtel7teSzVWHJkMdR4UiL+Elyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw+OBljAIpgSJCEWBqHZP2DQ/F5CJ984ZRrCHHCS4jo4esDWG/9EErawTTE1vfZbPFjLzW7NMyVyFLSRmUf7c0AA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAALafjCpNiXFzZoRN2ZRQNsbK5sgDK5tTLcsfb24k4PmGlzrA50WqSEst78cPbuKHiEF6R/cvFic7qOOLiiJvNfu2tI4pXLxETDwfE37wy3Z6PER2OdFDC7WzNhs1NkEd/9E9Mlxt2gfyHACE+jn8W6coEUrsa8Ok2XvhLkY9obg8VcFSG5zlyuRUu4hsps+MRYTZziSZ1uD/f6bl8pcbLAHn23RhvO71eUAAutHQius+RSzXcnn6rQpLu/HcJUK4Q5MAHmBuB0HHqq5pbp/CMmKo+lxO7p/7JAR/TVtSK8RyTisM5wQCSpYG7kIpf6z07gF71A5mbNy35AJWwEcqEGK56/N7ePPxvJAV5YBkmyUsc7mQRyA6R2uQoufj4838LGNPmpwVJVSOxSZMsvHxtv4ffepKS3mKiaabcPWbMXzRUCsgI7ClI7iZ37JgmRRm/4JCIsui3cYuRscLXM2Db2QYHr8Z/vKfHeIzX5vlXCKk+D7DDUkUPqstMfS7BjWMGfdwOw1ytphx/qv/A4C7D55UmvA4V0b6AoheR5Go1jyaySO9iL/z+dmVQqyUha57CtuZll/+HTAfPLqAweru9+Wac+EcoVLxO7nEofMdNQkNQ/fotd9/YkElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwlNgDn/RkLxD4qNc78UvQpjj8Qlbs1pAC9ibdTyUT/Ikljcxu2Eq2kww7u72+Yo7hlmlWUs9F2i5CFy/GbZyaDQ==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "DAA70EBA946F9698B38F46E274EB9A1F06B236E1544E6EBFDF28BF7FF1DC5503", + "previousBlockHash": "051513632544CA40791ECBABACEAF9F750646C717EE4E1B5EDC626192C5B28A1", "noteCommitment": { "type": "Buffer", - "data": "base64:59Mi6TGsm/VxLP5ZCIHuZoWqr+2B8v0iI6lXtvztKw8=" + "data": "base64:S7F0JyNPL3lWsQG7ajKje6KTrOEdOU2NtHthzA4dDx4=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:1unqCb4NUbKtH5whunqD/lZgztN5lB027Dbr+X4I5Mk=" + "data": "base64:yPesrzL7MEmqYVWlMfFeVsp2ZwAbegfmOE+VwS1C2pk=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708550933220, + "timestamp": 1712339990105, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -458,11 +458,11 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAA0GmxpOMZUuPskH5W7BzUpWpi9WiAbdUCw+uYlWO04syHvujBA1JG1bqk188VcXCZWz4zSeZEmezQkqUmo++rB01XehbD5XILer7q9RCMvAmht8+6sQRAteUYLxB3rHlLPVNWVOS677/MjvpxY9qopMv3MYliK4OSDtpBTVTWkPoZTXOMBvDCqO6MrMsSjQg3LcAt0o1D1ThMF4UDa5Mgbcm/mR/kyAWkvS2s/0EPZzeV6t5vvVBsmTnJ6bsg97S+3KByHMRkqeEcZ8cq4ZRNkAjD2g22yvclvGxPFB1CkS/1W+IvdkY6EhjACCOD9JD5ue1+O5Qrp3HCQV1eNGWBJ0OXt78FlgoPgw8TH55fl1Q+buujzNX1+Zjuurj3BO07fGQXe7xpRGB1UH5E68fHX+M7lwPwMjIrOiIyUGGYyTtiQ1T+qjxTtGvsV9e5TItPtZAe2Bk6INwfm4NBvtVvkvbrd4v4jIhQkz/hxP1foQKeAx1vYM08ra9Q9SFBi/bXswMJs90G1y0bOgymWgKF6RMLfr/TfFADaZKw9LIyXKcz8c5R/HmCnEC8+k3MvoYy2tYiysEWPVQkdo/aAMdf53YDyDZik5R4xAY16DdN1IqHr0cP2vTSbUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwPTbdJDU2xqyQkRe6Q88jJ0IPhgllbuC5Ic4Ujh2dgXFvgGzw/9sGdVw+CvVyPIe2bRBs7otaF30qM1JBVT9BDg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAzsluK59mYiNNZ/q+3LvH6cd33s2leLLNU0M4fQF3gqqJ//Z/aEyqfKlzzAy5tV0ohqI3xEJrrzDxyw1RTXeGgUV//PLFiRI8Lz/KSxRpO6OWZFX8/V9amNy5UDKBahtHoJByy84p+pwYsclm0KjoHDtQJlHDxibBFhT+MVFvxW0Igt+IMOnDRkiMj0P1Z93tsC6iCCSma2UHBRPxgygDRyIMXP/xcesqzg8HN4U+kNuioyaNcVUqxMXARomiRFfOlXDfSmwzDL7TSa2HA+ncp8dccuY+U/ZXZNin62LZ/uynlMe4kX/RVCMjZzX8l2VUMtcG4Qwhwmw4uVRcpxlDrthRp/1wlf34R6NMOCCwtDqztBvnLGRcm6Ed1Xb4rgI8XU2fkaYKWcomoNLQSiFy3AO4s+CBlHX/UwQMy1zrRs+ZgLzJrTQhxVcFB0UZCc+H6+Q0cisRKBRw6T+spYweWhR5mtNdB0f8zcSlJ8LCMD/PLLNPZSvmmEAlEUTj8mp6T3YI/JFvRIKldmdMobR5oe7cqQHKMFCJGzgN/jjzpa4Db08Ek1rR7spU/rK4IDYcqkoA3mIAxxz4QTvIwOXcFkKyUOlijRv3ZolAthTmSRc/M2Wch6Cq2Ulyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwvK7LbExQEQtda9SpJTm/+szxguPrcNo1UnfdY+hozld/srUeaq0z773LQTPs2pjUmqfFKtPCQkr49E6Cfv3vAA==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] } @@ -470,13 +470,13 @@ "MemPool orderedTransactions returns transactions sorted by fee rate deterministically": [ { "version": 4, - "id": "ce83a88f-d077-49a6-94d9-8a16d0e9e794", + "id": "1d808f0e-8a34-41ee-ad53-a25a6a18d211", "name": "account", - "spendingKey": "6181acf9e2866ab0573c1d0658e575d65747d15f8c71209940ecdcc15eebe0ff", - "viewKey": "e77b620fe78379c533dba01669d9c8918f095e0101f63b266a0f99e388003d7045d33bd95a3432ad949307a5fbc230247c83693cece1d7621bac38c093e14ba1", - "incomingViewKey": "70b5772aba1c58cac9bc8c24953133cad66f87ff911ceb7598162ac2050e0506", - "outgoingViewKey": "495e32a025bd126f9b0344062168108dbd38c4e25a8347b53b8e284176f0fb79", - "publicAddress": "59cc0a9f42b6af180f708ffcd248d5aecc14fabe6bcf82f3adc9e0a012acf0f2", + "spendingKey": "0a6da7a6a500cccd0e15ad5dfd2a0761a634f3e29bbf086366d9cdd6b2c7033e", + "viewKey": "b0d692c501ef06560b16d3ea8c0827ff4a0bb802092464485c9e6b38a660bd57289006cdc3737dbb1e13943ea55c8d674f8c1dd95903afc2ebfa1b5c10d7024f", + "incomingViewKey": "e2546eb272c82827544c5a07ab9042a08f5b3abe773d040359c42d2b54090003", + "outgoingViewKey": "6da07f9f35b5b79e31ff7663ec917d04aa71735c9ba863cf30e15337c7a497f2", + "publicAddress": "f2f1197ea7c90697c6b5f0b453c21d9a9ff0d20557f0854b6f049c6ee821dd9d", "createdAt": { "hash": { "type": "Buffer", @@ -484,7 +484,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "3c57c99ff726432c5b21ffe78c49ec9a3638f10ce73413eab898bd934e37eb02" + "proofAuthorizingKey": "b5cc288a7649b95b9c6316b0f7ca8f1de62956218c6739dc974e7a810a1cf10d" }, { "header": { @@ -492,15 +492,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:nbSHo0ZKNsxGuOP45eHkJYcOpAqQey5pY19qIlpe8Wg=" + "data": "base64:gSMpedN7D1KNOnrF4C92oYrWyV131FAdkfvP2ftYfQU=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:GORC1GM3Bs+GxV73NH8OLc0HLc+0F2JBaigHaGbh1I0=" + "data": "base64:DG4vaGyMSEi3qAcZ2XdhvcS4F/sp2UetV+hB8jZT/SA=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708550935159, + "timestamp": 1712339990507, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -508,25 +508,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAsEgqHjAeP1qy7IOQgyrAcIUpDHbF4AwqzRzY6/blLmShwTvyCu2MOFsvI4r5qILpAhmDzx0SN1KOtR0PPMY0agVHGQmgs4Avy/WBH7+qbkCAiWsZy+R66jOxXgQTRNKrfPRevqOjx9oVZDOqSm4ZIcGpXTlHHkv/0qwf9W0NzbEXEIhpzs4jCEd72Y+qNlfc14V9q+UCGLtGBehCcGwlroaT4gXkGloBPvx5nEKiQdqQMcDAnTGTYZfcUgT6rFG3ECIe/YpPe8g+93XdFFRVB1CrKPLWKnansxVQR3EaGL8LvtSInZG19nb1updauC3UuuxHfNTqp5nQKZvcnITO2niWaCf6YbkSA3+LoUkcP66DJDqkoFdpGF9vCG6f7gICI0k7vGoI1RXgcRfMoVuFDJqq98r+lei8w10EcWdqXAvTxau4rRZSwV33S2Ts344Djmm+jIVVby+wuOKM4aTgErRkbi93te21bwVGoUonNxcRg13B61ItTsZ0uzATqdylk+WhlbawJ4NaL2Y6apEZvjMr3yvAjK4aNbYYicV3KVcysheG3R3hXngIZfOXloNma5gZKlWxROFbrKxezjaEIW5yseo+EWa4hsx0ScDf4gQmqTjE1juX+Ulyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwc5AzYdzyY6BOY/zuR2V07xjjufHgalLY7MZcnhLHpoD7hZadNsdAlNL4Y0Vbe9zg4WpBlU+RXGaSK4wrYRCiCQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAH1ZtV4I6Hwn8ApzgSBnoLkO5DCk3IhaEkF/6gXL2HYyu6FWIZ1q+L+rFmQFXJkJN/w9xkPUgWXxJ1ypeAuun9N9N6Dalj09BZ/f0QQgQDk2IdNVuY0AimwbUqTCru8UYwd71DwlrzGwxsMAZKk+oEwU1Q7UM2DaoR/WWgneC9XsWuX6qs6XacYaMGie1+40Tc2Ent53O3k7POQ6DMLiguwAmsr4tMAcJ+5ble5gbMM+yrHFSKFKbcdj9+T2PNumibQjyhz/mp2VWvXV/CI7LdAPwrU4Wq9GEg/RDl9uhAU+GbmhameyW7xjDCGpiFCCo9VHl0dBkzhbeLnCPHa2KawkwKjphIOz2bQ48sVNboT90WEXptMF3H10RRJLj2yYH9mbj339UnWshrxwgskT/dpf/R+A0C8pitGFZR9TARrwTPfEPP6+5ebxzt7iZkAxoiegVi6qhMW4UPnYHp7DiAtcViScSqM1y/09auIkQug8QE/6Xk9m3eBIF7clYrfmiwSMUxm+NwgajH79axnf1RUzKSFGBpmr51hzp/tHnmR+1YsW86TSWUS8HoiBf11kdWCWwCVno7lkPziRwvHeAH8IB9UdWCgDUnoShlimDhfKQSPYYDBf2zElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwl/qScCBsLgPsGjr5Y4lSd1E8U2DXU4ZnvFgqoeNdYB1wf15haRMCXKfAO3F1Al6uSDbtw0hhqlbVgalk+yvVCQ==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "C7486120AF7A67E5B8BC299D2F0383858D386A2B0B16C4BFA4CF73D24A9EBCA0", + "previousBlockHash": "52FB6EAF4549E972EB0CDDE7C21F30153801964952F4F9BD0EEDE52DF0972736", "noteCommitment": { "type": "Buffer", - "data": "base64:miDC4nHQpApn6qwmUQ/JQwR8GxAEnSiwBfubZwEs4jw=" + "data": "base64:96N0GijDBvq6MUiMveDxbWUd7AS06AR+kCLCtZLg2U8=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:ZKOUlxwIT0FPzJW8XZE7IEpQnedQj419WMz5Icx7mco=" + "data": "base64:jIg4rMmU4zjtlhX7cC24iWCCtGjt678YwcantOO4X+Q=" }, "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708550936764, + "timestamp": 1712339990811, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 5, "work": "0" @@ -534,25 +534,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAXIzYCMuqu5yoq91flKe+sUI/pwJzNyKEaP16RV1KZ5SHaZDCPEbPCs2ZIE987B9gNySz9pMNDTfzcm9TUi+rcID+kq150/DObB40H65VydWF91q84e1LpNBHsccPa2L9xnx4vZFe3EdPulOb+khX0iQE7vMtsie8eLPvA1e/4B4NGtmZoArFQL5obmcqrBCpJCTvmJPINZ0sJlDByemgS3axed+UI5bAVBm2PNFAlfmChLfLzTe/tDb3IqDCtXGHpK3IhV1QbXl2YnE9mUP5HI2wyD9wth4t2V3tPuBKTJPt9g+DypPdBpF28FC3Web4zq75DzBW5L6l1XKGfqZDJaVzJMwrVz21aE7QX4ljmP3JiMiRtU/0nA7cjjcTZdRxvT3P+tFlzw7crjp4TyOJ7EZVx8BWvkRED0AibENmW2oI9wslCJeWSgOZnFJ5cOaYOsnbLJGhms2s3Dj8bS5fjdercjgvVHJp9OWhRcLc50v61J6FWbogMELiFxZ0yE9wQVORKk5sXG0Si/5VTtGO6pJwyMlvztOab1odFSlgo+nmPOiNmdSYJ/puYQWwxPrkWwT4FwnK8gI0WyNDVfRRj4vr+SfqGlUBfBESplLrjYo3Vprg2ht4VElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwPPluampnsV3oQPG0e7lfLW7j39OAGKlUBE397+9Z0jrV+03FNLJkw/mi7ajJRzof49NQLednHmpskVMuB4wlBw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAXQzffKU0z2NCKwgkMUVuzDlXZBIJKPdZtK95yn5/pR6oPJP2PrEOuWTcaVOB0fJmkgnjtYmFL0ycgBmrcdDXiUo/4hqP4C96LQGWFtuYh+yMTLAnjVknQ2Ajuk9y/0mms7fXdgQFZuRQevgs/KCdrX4ag4ouiEqA3YjeIkBVVz0JQ7E84azwYXaf914puTXOBH+24FI5YFuIVUpHNdyBa76Ayhy+F64Jr+o0gdLndkasHro4XAtcty6U3TMC7jmlp8JDw8nJb2nI/28la0xkcKFa2nk75lIg4KvBi9PQ1/AQmpw5sQrAiaM6/z5qyi+vHd4MW57MgLLldVgog7FsuAgTFsxG9zuBBgI82M6PR6QM2Qt2hny5mQTdmrWkeMdoTTI9RL7v3A/29pjmhjEzCDEi2Wxgs0VzPla9OCTkK+dW98yr8BPcJCQdlCWpJtjip098O3+wHzHZEfb0DV9Q8iDXq23qtxHh44r0A74sxgq1PD05SaxfOLHHsur/xVSGTTV229Fp+0kjGwUWmFp92T1h4JY5X/6Xg2Xpi0MgVcC5l0ZlablYkljRH6Hznsd8+fGKDln6PZ1gq6LMZRBe+6XEdRSRcA/bxRCr/6ZprSd1RRsaGaBrD0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIb0VZbKuqEZ9cS+S7oekpWt/UZSip8aElt0lfB2MgL+Z/7TNb3BqwxjEMR6H/ZHRA8n1bpzC9eIkuXJ688QhAw==" } ] }, { "header": { "sequence": 4, - "previousBlockHash": "C1E18254D298403C61584EF737F11872E955BB663AAE8CCEC7BEA3496FF30C26", + "previousBlockHash": "45D01A33B6D92281E75FD6506CE53C8D15C77AE4FC91F950B8F8AEA841798BF7", "noteCommitment": { "type": "Buffer", - "data": "base64:ubC5+FFqV72y01NHg1mPntDXijtoEqeHPmvdefG+DnM=" + "data": "base64:+Cjp/wExCMZndR6cM8Rm7pn+4NUXsHHsFXdG5cBdq1k=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:Y5YOvG/1A5B7sLk649y4mKFlQQFwEtQHqE2M9CWMcAE=" + "data": "base64:MxH5CULVjfmWkBsktFICHI8NYOeAG9/SL2wAiBn8iUQ=" }, "target": "9228823284279306817296266184515742822248210830185427859262273659833347", "randomness": "0", - "timestamp": 1708550938519, + "timestamp": 1712339991106, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 6, "work": "0" @@ -560,25 +560,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAQrlSct5EnpGyLS4tOsLzeL0F0iPbbZbb19Zi7vD+9Aew6Fxyengovg0v4FHh2R1q7uKrna7SQNvnN7/ch1oNm8+JVRRfknJ9hMX8ZL+/lzSR0GNiauBijQOiky6jSaFR1b7yovQvWDBPNffBMlmcJLF41b6IKXWv7KCiPZLprUIL9GV50tzhqSKqPDDhnOlGkVI3iIGW+wIwKqfPOP0j3miwKB4CN6pOERV5tqLVe46XmUD6O0fN8eTLf031pubB1d+slGhm1ZHGZVHQ/ya53ZWWXqkE/B/B6cL7QZuH3Lc2xLfJZNMU0jo5OKviRjm7x+MfMXVCiGRXd7XPBhKE52Teg6ySHfCVoUCjxXoxEIItYe/mjfsreFzvF4OIOkACsKWlxyO667VH2mS1cnCHDo4GgqvSUnYfuJsEBz2TuolLsl11RIl4sW+MIhRGHB48ADtSH/GTlWNeWe+wMxnaWNbrsBDZmym9I2urwguBE+KqoVrJVsM13NkKb50kGxAvdq83skNe441z2QKVHhnQhZYwKs+Eag5eU+SiScy8bidH8CPQmBOVa9V7d5JLXIY+ELz6/3P/iyCXn+MAFz/Ic7YWAnIpYG4XC+Tlg+a/Motej+8rKIJqcElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwKkDmHv9KMJZfmKuajpOkckugmSG1hI/HIC+BOPyL0px+6xxXzFUuoxOGOeFg38k+L8836dpSMflbNqOYj3EGAQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAsqn2f/ISG0hZZhmB8cGNyX5ZW5AjueCaJ/Qell/WLce2nIMbLubTy9N9DTvTU234VZ8VsvyWjbsuGNtq7eNnwxFA6T0htfMRRUnD/SqpSieg32oucFflJAS+eYBHPTKB0GNdjzKaoYs9u+w0fpWO7IWZji5bzGnyWHyYaAXsqCMH2fWAidWv7zSNxi3an2CgJ+zg3RKoLK9yMBRH9owIAG21nx0e9xhd1sLHQfZTNt6KueU2Eb57mXzM5vovLF/rM7vKKgpGYrAT9FZmfR+PY+DYHiV/e0N3sa4Sxy8Mgts8kDVvwWBCIXovfAsGBPyUTX9X4mziXQvoUnGYu5wiHe9BpDcr2fR5b4E+0Et6JHL2IKy1dJq6dSoVHSwj5oNj5g/YspQrsTf5lDLyZinNcyvI04X4F2iak2fuOX7oTbitJpcr4eONFTdQ21Jkh7r+c8dtzjey0eDlBwi+mGjZNrIQl3xWTJz25v4VLipYUJ8W2O5tWXPL+H5+m4lS6alx2VLeodmwgSOXjWrZ4/EOvNuOhJwwkBMBQKZLN/n8kTo3NIeKZO+1asqE+Sjp0DqxUXKTYifYN3R88tNJT/2cGhrpkKpzfQWnFg7EXZKUNTJeK+KXdjT8hElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwwblIksGElJAj+1NX7lq3rb5HIKjrgfRKzEzrED6G3JPLcAUHK8ivUUwQRYO5e6e+hakDn/VbG3iHxygWjHa6CQ==" } ] }, { "header": { "sequence": 5, - "previousBlockHash": "2C9FDB86A02F8AEBF6AC14DA4B08DF78B73267483788A4719B7CEC2ED47C85E6", + "previousBlockHash": "80D107443DADC19D65E8513E8DC43DF9670E07922FD3A08E65C3A1B7F03AC6F0", "noteCommitment": { "type": "Buffer", - "data": "base64:Y4jUYPcACkBTuBoArIFZnfU5wi0fLSKGe+SnBzOJByU=" + "data": "base64:uzcL/RKTYMcMjNsIVxPSufLWmnScwOQbM9ZhJM6dCgo=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:sCL6L4OHzs0IEKiLxoanjyIZsIh3p9Ew1oxuKySIoB0=" + "data": "base64:Jq339w5encLVGmQornKoTDk+fx47LxkYKOZXtRr4Ob4=" }, "target": "9201866281654531936596795386791503876274441021197252859723586932895305", "randomness": "0", - "timestamp": 1708550940143, + "timestamp": 1712339991395, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -586,25 +586,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAP7eFWbUWl5+RS6zdKMmA5S3lp+cD3917d8MRwFvAZvOMaFXQkkQEQlG3lZeT6J/Puv19GhgUozay+Fk+PoifeI94ZNshyBv+WwYSvXeZ/36BVTatoZAP+Mqm9yQvDEGQ2ZTiKGlwHfvsygG5zxp3ksrVFrNCAokzO/to7G0AkiESLad76Z1P+7zG+zSA4WC6o+XlNGfVKbMfMPkuIJV3LgNjia27I420gm6FcstMQ6WBwD9tYsFeAbU7adpqZHVSodQRTxglAvohr7S5X5yfCpro/lNErGRpTxuP0YvZmtyNLx4vsj26o8lFdkMWaaIJpUT+yTjM4XLhmH40IsthmUWhM2uiVxuitzXsIHvPH1V1PTPkRqOV1/BTf+1p0mdqnbb+goBn/x5+zSRn+NOXpdYC8Dbvl88DK2ZTGY/yzOVnAe3S2cey+/Qz7h/4s3zg9rMlMLakVuALG+gUK72JJOGS4v9DCL2x9rcN6pTXxUIzvluj/6ITQm+yixlzgiYLypgl5xCzH3b87whgQ7IMULNqb1Inj/HdeYoJeyawTxXi1hYn9let7xNzqTf1h8uyqyrsx/pfirrem795vWvqfa6L8v0NpjO40PM7rXM+cIoNF6FK90uCO0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwnTvLUHWTUsg5zcpmO4w4FYlFYLOn8xg4nCpF+lrxDMhFT6iTCTkJTxqLYR3px4yweJUdmYexI3Jv9hkh1EtUAw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAkYPWuAl5zjsbPBjusd6on7IVc0IT6Uw3cwxWHwXQEGqE1NpRmrl2BisiLVjjsWWzXXHJAZDPoGqzW/NiIsW4Eh7yVZK6qZ4sXfHCmozCBTyj0EnuE2g5mQm9KcdK9GhueDi8pnlYlZo5KB4F+tuAluzHkmugvV5Qs9WzPr/OJScV1pEoZNOak2+ajPJHK1k2MKmIATkGyFjHMj010eVSs2HYSCykmOgyGbv1nbVQ+8yTLbsAsY2p0qfnv3y7C1dX0PyVQIjNPvyJMC1fGwOPAuS7a3lq5y+vQsMDEcXUjTPNhpz3aPu80MFLn3tH49wanFchUWExs0nQpfvaRiXMV4SLvLZgG28TtpBc+gkUUpIxIC8Q2CU8S74aC1zqFjQCAD7gpSuHaSqx7EGNb6UQnpPEpw/3y22krz3JlKjmgMm53/q7/PHwSX6Gzu9XyvErbmpuOnS130UJmtKQ1ADgO4+RO8wmYPicOLLdomI6yvuTWd8PFXmdlBKY42jlOd4uPqUzN6At9DjnpwRoCj0IUTTRl3igNWr3uzIGCs9LQp4eOHWZ/w+YH7/QxX0q/Fpn6P+QPuszWZdPBBJwytv31xdhTOe3QR/merEBN0aM1fSu4O+SrSbLBElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwkI6jDSRP9QUupgnnyztiVpGAhIRbivXZ+5GhhHOV70nqkgKKtEyz6CcaQbU3VoG9JIiaGqQeGIT+tETXeAtGAg==" } ] }, { "header": { "sequence": 6, - "previousBlockHash": "1596A57490744B3B7E1AA4FEB7A961B2EC301771F7A3A0D9B0B37C360C3592EA", + "previousBlockHash": "8FECD62C86ED371999E3EDD6F48A212AC375054A500FD6216AC7F5ED26ACD5EB", "noteCommitment": { "type": "Buffer", - "data": "base64:3YigBp8oGuMipH4v8FwR3zVcOsPLBO1qFamgxzhLUl4=" + "data": "base64:6oLiTQrhtStD6z6xuD0eycoNVO/nxzsza9yc9jJ8hgg=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:/3wpkiL2YzuXCdtxp6Umajp5co9zENXQrj6npseQuq8=" + "data": "base64:82DqWKh0CurACnq5QwMOZK9Hg6CzmJM0WNF7XQIzP6Y=" }, - "target": "9219872941575788346906448444544799210673200589860613072623290704133741", + "target": "9183929819617531830564032148225739273838604380799085354474543707381681", "randomness": "0", - "timestamp": 1708551036105, + "timestamp": 1712340006633, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 52, "work": "0" @@ -612,23 +612,23 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9mvKiP////8AAAAAZOy7F8nmj8GS2DI/qoklVpyQ2lnZ+pko68PetHbVrciyIIc/XjS3g9LcxTJ/m7lBSydyjQbAu9YfGgg7eGRe/9ie1Zyy1uQSrLbC6R+qtBikFj5XcOT9oabcUWlBSf8TBtOdqbCmEjwo76msPsaLoCd6gOqHlgCV434RTqcZn2oEMzB4fK2LZ7Hx8KHy6AjIjWqjYW3IZIO+XEsT47LQ+oQSQQlukBdwV74RUvd+482s1vZgTkreedSbzxA/mJ4wMbC9VLE/P7jnSXL97fa9mpEncN9L/1njiN7AdLl8mQID/tQ0Si37AWkwgOETxrl9cdTCRDUCBRvvBb/wa+B6ONAMq4aJZV2Iu0HIJ7JAYYFkRT8vB9ECA9GOikBJSc8Iom8iIp+d6CpLkGzA0mQ6/XpYHpVFXRIRlin4OsbswWd66ib1U8V1nL0j44YIB6bv5fxLsUyWOz/h65nzLhkFM1q0MkibSy5btLnCHVN/WliYIHyuuzlteUEvOHlVM12tr6f87SLo694NuUoQuWiM8PBt2P/d7fnL+83DjLgR9LBJ4Bq+Vvy3fCQWJSBqyJB14R6vLxGrL7Yk8MidSj637N3g5ma5xcRXbF7eW23fNNuls85Jf3VxGElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwtZ1HTyzFWTIJnAofVubXAQS0oYHf+n0tnoQOvOHYYSs/UjI7hfQQ+B0VN8iWRIR2SKJ6Up7w+KfVwPQuXyJMDg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9mvKiP////8AAAAAGL4sLRLTs/NP6IjabzpZLFuqhSQgQvxVF3BJwt4lQyOME/Saxucgw56gJeZZ6Vi6Gd0fXhK8mhDW3JwV2pUJo5435dyYApCcBfpQVz6DdJCtewou+c5pTnLzTOr/VMo7zzu1AgS0wnmtaTThGnRzMnWQbBnG0eEBgfPFcJw/YhQDJYx0163mFfxRFvDPqpngabpTUAxg9mvzsBSn42zRbPpQE2CNv2mE1biR768DyqSipRzNav0bYopr9XEikOVFah4a6owUU03bQLt/C96A7ppj+i01doLDdqtFsrBZdAG2zcAPHeXJ3G+bFlXhK7xEgcynCzIxuqGg0eb0s7IaFNg+1AjPqvcyW5Y4ZXXDq//PJCmo1Jt8oaXxAYOP6Yc9tcuIJQMkIJN3npKivlS4uhWCLYhM5ggH3V7W9E9mvWPwYiKzPGXEnqFPfq3f4wBAgG6Ybg2zuyLbHLVDG4fFnhGplmkgETZD6br9xgGM+gx8nK6q9SSdIr81iP8O37DyGqvVKk7K3/IxHvTXNwLsWwuIKr/hLIRHOG4G3l4cH9L9SyUTjtw7jDh4VArmN++56hd89ieoyUDJ1qJaGQuLnJp+5SKaZpVK1QcnbU3reSuPg9KIuFFeUklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwxtMKy9JDUxycZ7iC3mlZbpFJ5xDtp8/m4DHeXPq/XA03LpwzlueM55UCvvIAcKOsyS+2SfqAUvScsSs3220KBw==" }, { "type": "Buffer", - "data": "base64:AQEAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAZWYx+XG6F8rKK9OCZa+r5fHDig6taNcQNYK7RpHJ7R+sjvfiGmDQzWOMqt7qYqvQg/ou1U4uDfSpnN3FFwxB4IxE8jlb45JbIbtaJNh1AaynEdBz4mwfrXLoO3DX3Mz52NQzYHaKVvhBm3cyZJEiO0cLWp3CtPw+egvtKkuZMfMZEWcj08k1rOg8v77pl5fG3yijaaLgo7O0JPsBgxeJF5+DnxUhzYBKQNrOPz35N1KzB2D/wLMGAISByM90RP3vYq17Xf5N9baA7WhhIlW+hJM4afpkk146z1n2qfTl2FO8oKO5MouuUL8wpegRHza5jV0FiZBkAuLGMLa4+6+U0mOI1GD3AApAU7gaAKyBWZ31OcItHy0ihnvkpwcziQclBwAAAD3WVPIv7vWxd6kW6sgxMJCBmWuDtHJdfUDTbJNhEjx1IP18XcPGXFV+qmrR16mPsx0YW18d5BmZ++Exsodss2HNRwjAhYdLP4KS/AIDTJMdUSjqyU/hGn0PikIT5stSCKzEGIGlVp4NCG8bPsKktuvK7PQpdnaPQNiFP6pGwUmKZ6beGfMyuFxt+J6lMa4RP6TXUuCVnyZX5LtjFzfMMylMPKopC37rsPHywkG6Rcyqxi+CMI9WUJ4Z6S5FWX67VAMJ8pD/FOsZgL5Tq/haVVO+gHXwP83RNqrlc7EGy4b4CYZrOQa5GKyphVPp1vjx6LRAPbJZ6OBGVxGvgWlDk+qOmG30DHy8LuTf3RGlztJSuMP4/uDtVHZaRcITeqPHvDNXCZk6k4a2MaAA8PJjfrMX+IB93HBLTZHSb2onTWo8nhruaDSm4k+LT5P3zE7auRmAvFI6o6xEfYOpV0hNlAWMQU+ij9RuejceYBgxJuC9X8ia9QaZ6c9sLIxPJ9rRIqzkdTu6DlhXcP9WKgCDSPCG+ljSyjCB8NDt1XQfUuw7t/PrryfazB+2ncE2nyQtPRoCqkTgm2vCrqVmVkjhk9vlulXo0+vwj4R8VlxlUO+HkTKeNSExxetaEt3e7+EBQCUqP0TaeBUHh9WK8DKqg72LvgsOPB/aaZlmlrvBd3fUtChfeClw9AZEmgJJMYho3SIbGqI4jjAjEEn/CJSEgYFviQF8syCzOD+3RQC15g7RWUt3vzxT4z3bbch1ZUCsSsMK7us/JhVpI22pVZ7rEHZMyyZ/mrOGkY73YKfxlBjtGbmQQE6ZcmqEpk3jRfDiFVJt3UWl7a34g5hyxTJ4jOmY/aLmvzirB9JbKIpQ233vbIfv3ErgyVGniueZjivRPGv8ZMtnqthwx6E9y/JIjSJ8fAWa397wTtdioOzx4Rw2z5yywBAglTgDk9j4JFpm6EQO3mMRE7NBmhzj2Kw4JnbNCo7twatcsLRtE3X/vwfAeYzzpdMy/22ArYGK9o9Q+Imkbsa+LpAJYeRa7HjHvwUiwfA32cz0W/tsK76WPEXkbuizWvbxqKnDUhPlruqZglPhhdrhAUv+27xvge1ppUktlAE8H+wIwenOi4wICA9++0n5XsA3Imltd5x57LQPhGiLvAUfdG5t0ECgLx1i8oVyyko6SBuNhRD2jZg4sI6slxHh6A6dbZ5c5zKvK6rpC1NXjGV9yJDkfaEFYP1XEj0jCB038qJI8XWOMusohm4/rr0Oj2sz92U4EdsIUQaYPYCgGxFyAon+5qwfVR4wetXTgNxEJiosSHMFiB6e0WuuwysgliZYTqFpyP0DyawbTj6nrUVn7mNp21vZFZJk4OIFCV6ri2qkjn5E5hZVDHEV/SDPeIUUwq33wi1WKH9PLUXPrahz6vinxr1GHy8kAggr1ODMtocRL2ujSA0/Crx8uvZN23iXoi37HzUROEnnWFO1bgK0qdi/M8udlkEpeecuxGijCS2To2+7Kn3Qoyp6oErmSYrG5MnQarkjRN39BUp8bLfqjCXcP4nj43u0bjb/pvMBQr3nWja8Vo4HnLvJppm2xPT6qOtINNaCWXdoFbLXnMvlk7YyPKqG5tAAZyxGFPf7E6CORWaOiCTEVWbXA45AlmTKU0pS2yHfJkZlIKLtZx/kHqDb6Y1EcChPDaJHivKNt5ChB44RSbhjZB4OpjH07a1lIfKoivueghYm5SiEwnix/PP8F176wD2pQTFPvK6lQY026XvXYHk6miFZ1UDI+L5SG1PVGEHPApLdd3HNA4QxoLwmO15aehuoQROZWaypoczNsGr/9PyTZenqlA4ON3mmKMFfO3K95hgIJGcvZyZ7yQM81WVe6geRhBtGaADxpbw0wqkZ5DG6ChpM5FXFl9stAIEaBt9IaiG5neZKUAkMzTkVUsogZn3P8Fy3Ww0+mTyWGV4iVgxAo6Iyzxpn92lplE5Gh6UL6RfpO20tBdBuPq3W2x+cUho9Vqf8oxFs05i5heJtD8WhwtXmgFF7U7FKwXAjK63GSy1hOFaDj4+lWGeYbj/K65z75bpNmBvEG7b7A4MoE6KFPclZbtrcm9W1GoQfiZxDWDWbajXl/zRDTlMvb26v1JfYFsKpe4m5vmLjr6T1P8hk3Tb+4GUkz0tfmC8l5NuUisfuOSaGg6sOKSrRfQpLapVefA9jZ1AdV/dEBogN//5L4d70y0qORTM3VSyVA9YBNH5SfBsrnbCcg56Eo1zwzAjcUQvuMwciNjpyJ4FVpLScsNLa5SiXsg8a/+NuEcBW37W+qcMx9GQl3lsR8LLWInzXl2B6TmDmb9ZgqRYXvm+12NSmoSB4p8cEYtQmv4fyNbJiEO+wQ8Ui1WkL7tAzACrzjjSTX3wMaiRaxpCo6MudiK0lhAWTZdnJZJjRBWyVSnFIx+Xj/AiJA440IQAoALZyjdfHEyGrL5Om/5xWWuRQtqqzCqqIW4Rd+8fvniq7tAnmV5wEbZ4Q6oxkDDb9pkfHXX49/lISoOs6TyF6oQGGTRROr7hmGa+ULiUwzcv31JnHMS/KE0KWecgxBG7bmEVtQOJ/b6osPaz/PyKGVqJmIu5wRdUDVys8A8eJF/qRpayhAw45Qjru+63FmBzPEz13jSrAOQQLG9C0981UHEzHwAtdoZZrSkWab5PzYViwCfZKrgf+wlZEVdeloJFhAhmkBOqX/MZHkBt36O4HR70K10+SRD230b/4Ikqt7Dp6GiUNBWAciWrKeZqdo3wav2TuhJAJF5eK9Dq9aImw78XxkeLg9SV+p4uvc9G11crl8xB2jdaD21IPjgpocNVsZGS1s3FuuOINER6Lgq6r0xeFNGTjOfgK/ZKbC+tjQUKYYWzHlwj9Nt9oKkEuxXriP0CALpWS85k8XqWxXqMQCviWmotCgN9/I087R4tpZGWwkQvdf30GAM4uMQKkM43VAt1wwp2Nl2tMmwULmIqcmUKgTBMhimVotK8aaE4+CtI2Rr4UPqlcv0Q3ijI/EkcF9IBlrO8DDkF5r9ZAnNGVKZUnNIoOtD82ZofFoQZuJGAvxVETBCOZcTVCTuZ9AvbMyv5G7zyqQjd6jqTGTCoFoVDx4vNmkAhX0VOTi1QWx+Ep4AQZc9OhrnKfMWMICGrNQRxw5Nq0dDB31CHlg/NjoDWNvaJuaXhGxJBKx+JqRjlzsQB2J7rG1JCV6us60IV14uDZCKqZhxyYNqjxi1UtJaL7OvZqw8NBsHR7zPIxywMhZkNUmoCc5Jy8ClQ+eC9gdi8AMBzn8/N82n8VXrTRGWP4l8XWoi0tpo8eubBob+GrC4NuLsZ8nflmAtlQvTfV4DbOs4XvdN0UZjuAljQURQP+EZ3JvifqSP7Fu1bBzTghbr15HAS/SE1s3zX/ZpIcxrjlO6LgpRsZQDjEhzEBq89LeSwkOLKxEEKx0z10HexffbMwq64WBeM5ezkCdRLnTQjjY0v9cVq2sD5EWQV5/Wg78uDhA4iOWbQ3gNcyfTptSh1iLyU8WeOxG0jJogNgnoeu959Vpqw/7OREeYmIgbZCpJsc0hNS8cLex0yoHiXQnS0bg/stgdUt+RIYtXdbTc+siy7YLYz1vYwiDMZ6lHH/TlTmdJ0BPlZzAGslq/9RmZSXfDuWMJTlk8v+krks8YNTidinGWDWB5uPXN/ELpMTk3gXwfr3znqxTEp0EfQJsPRvjcTmQ1Qzo1VqDmJEUUJbVluGgELJYLQvZdR0YveaoG6z7ZAyAiUS9apj9jEm5x0lBDXPJuS806q/mfNvzeQ1tQqIogHE3VsmpqL6at05dprqrEJIRKsJpS5SM+hOkm2TNmWWIiOsT0l0PEoZuNRvlOoqqoFtxnvCgWtOa/MWkG4n4JOOpLZYrBA8y+I0u4JOMqvJbUeJbcHvzyRM5hA4EQACW+EOaHu7Odlbl8Qc/MI9nC3UJw/HIQjJXcTjBR4Nk8BI2dR/lmaI9YwBL0zLRHHIQDoLCNXxBLoAzXE/1jPrQj80RGLS0WyDh9je0nfeZhGlGNLH6Xvkj48yYveAR1mTm65zW5tigSEh7Ex8uSlOdJGznQqk/HAagS7EASGKbDIC6qbLF2oGphodrjf6a0a/Zt6/unwzHfttomBLFbCmSqCUl6EhCUsyhD5WtuWrJUoLbe4QkvBWX0tl1ijWL7mRW3NDkyAbBQ1NdJIr7Gsvdwc8O7xM/sGGCybTEagq6Bj+Q1lHhOKHvmZSMyBFl2HhOHvNUPcgcvNAnp8wzTh9pQ+a7lJA4fpmUdyc0dpSXJeSQG5wqAmw4EoY5eOtOp4ArqvFR+on9N4zaxoz4Kczf0qB1tUqhAHimOnJ5zltHaNFLqZuFe8iJJ8nWbkuURSDR+FO+22f9DrmoE3v8nwpDRJfhZw7Rb5KW17l1DlishQVkUMfueKH6TOlAwHGRZ3Y58fZyhK92ZmGrJTdK8P8I3J9TvZskVw6f4B/t/WouZA4aqWof5R60v/44l4I6GWALigSGiszT48KudMdh0mlO3sefewG2j/7V+8c7sAPSSrvOCFJdyDvAu/DsDFJZVwMximBP9XnsOh8k/FRuj7FmH6bFCquMC03rViHKNxJqpU57lzuFhj3PChZxJxkzznea1l/wWkWOmt4GvrjZgsSt4ncGbuqT4sbskU6zW/kpEJTC2Er/+YEtqUMtFFyhtEjEoI0/DpU5/o6KvHJCT+d7yHmNdCEf5lfbZkPkIHnxNoC13DQGZCE+CddDA92ByeKVeMSk5vOk4/NwwmmXGLr4o7hl0MDOZ2/0nNo+7CjVuGSzagLy5+QbblOjJm+U1Qxb+AfJWTShkBCjKzir6UOk72GWKVqjGvgcNPbzb2//bC3oS3tpeqIT+k97A7p+v+GDuZws18d0Qx6/rmQXq57C8x4K/S8NV1bnsxwg1/COMnbPVN4ngK/f5W9TRfd073RDt4Inxt4PEAA5TNQwe19DLvpvyazUkStqx8feULxGikb8df/yyr9ux4RZ2VgdpAPfk44F1ihBGVaK+BdikJnqPynW1etARKYdzxuyvhrmFBOmbJsQVRqgqR8Lo1ORfxXX0PllZqGvSb8C99NYH8TznkoCNdbDUUAhDZ7oDAhpCaVHLPFtp2031TQT8v/gLqpxmuid0CHqZsO9J8StZmAkSk6PHufvMeFZ2FTIitsnUFiN8UMqSxnhdqQI33k0eO7pORf7HDOuHeC/3G+277aXkgW3fS7pRmxns5qVzFP2Ur9Pkwfx+Mypu5+WSQODDmReaClOSpOF35RKcQxE3wekb/xeMwos/1WFSEhEt2yzihDAgS4MdlMROVeGOsqyK6JJXLmH0h8KKApUTq2/g8O8lY9OLoDzI7utCpYGFQx856epCAT22KgpUgub5CW1dVf8Rt28ROjm3IwzDHIPCq6OTgvVHWvbo1YWHsOlDeoNikIvfxpV5od3+dRTOyNQTC87yl+HIjtFPDAhKjcizRRnYl9i8J8N+XMBoV6uBPHWxoJrp628vP7orbApkDsHpWZUdMh0MrgmqX2Z2B12lJpuKVb4rahCXFIED8YDpOWlqpgFF4Kkn2Tku30QHYlzDhPdjsotvyw1xgFoXyR7LZz1ocHWc8ASE9MmK9A3k4HWPkRU828HooWZKpzq27EY0Lx1Nks1VhHoaxWaBHy3shokSy5QnlqmFuJJ4HelbNOAflCvdGaVJM6awpBQ2fmmMmfQtQR4mwQd0pB/qexuGo1gRBMcrVWe4/tlWAynHfkVvOnHSY6o/q+Kog4Xk+gORhl4VuQy3cZ4iHK4N4dm222EAUFfhTeYDOYOMhhlcVEkPdPqcNIbUrbBqY+KzW9uXyPzCq3bP4UIG9Kv3OZwIxplI2oHe7wxvOUv7FJC+ydF8izf7TtVJOC8E12MJF/ncS/dhtSXxHx+Ow3MvO1GZMAk95+NzT7nen0+gHkVKDlzCTCVTM8ign5eqpsHM2/+7lwYrch3enxCAzxndXdO4RphxZ7X2j6/nePVZqB0nzJasDyYb+4nyqhd7K6V6M2ymPXQdx4Zmw5hgs0UpUo3POW1pIbB4Rtx4ONvwRLHsDcVauzfto6yMR2mwzDyxsQvbbWjwd/OWhZz33EeQz9lrRfDRv+pxkAL2uG9xfU26bUarx2uh2dqsCf42Ye6h4z0l4UiuST6y3vt2aL6X1v0vplZuI0hJr75MXlByaEbxnS26Yk6ZiFh8yJbpU3+ZkAgPzVtY0rxFp3vr7EkCP2Jb3zoSCIRMfDUP6DiQCf8ndPN0pDgv9sL5zMDrdMEgaMMV3ZbUddiefnJWz1L34FlTOKSi3UdMFtwknh1+usd9wDgR9hYImpnfCHvXUFU4RWlD4w2swi35YOfrRcHe2x+Myu0fsmb95oCUfswRY+WEE2KEmeaX9L/f29pC6Tsj0R7IF1ScwcYh0DZ5BWSpZzrx+ZxFmInuKokM7xjG0/xyu/Mzc1y3R2a3vVsslMXFPeebEurHxOUvVKLAiOzroSjCRWYruiD1SZTYC21X9pURLDDBQL064Z0R42AMArUbPbechIZ6wVEdYZc6ZmsQr+hxavLG+sSCfZU0v/drG9ReUsc+KPQsYNvE6EpXVT1tLKOT3hURtlowAHjiWvq3lCPMiAZa6008l5gIETBf4yMgkv0NPZdCLx35nMxV2I9i7OK5AWcAlZ8fIX3deTklk3Kx+pRhyCAa9jGCpIlsjSs8WEBMf0gtMMCKSgFTlfyNYgeSyexPfAxFYoa+dJvJqSbD33lXANamcdkIGC4CL4wbbGSkczA8sHx6ZbNl0VLJ5rvV2jx/1ddRsErwz3jTGJr/acO3PXK4PKxkDRabF+7GJ3q5dFT1H3RGdry2zmlDzGe9zNKcfy23GEasi4gDrgHx7I2Hcr+Hiqp7qb5/y4A8vszBXo+1Khz+SdMlNJgfYI98E5MmivCskOAJowIbVu/E+NhBOVMtGDLDr0hvvqbhczRUgDLlYI7YUFLxZdugZAs5I31xidVzieLITmCVrpIQUQPJXM8yMBsE2w3t4tfmlqk9/QlL6mjYhQo3k23rlI3sy2ilW+XSPtgD35IjHByq62a6Lu/laNXZMSFfzRGakqwCM0yk7IsahwKZXG0yyJOqSXzgkmyCP5/k/XXqkttXze6vMKGX7NL1+yrt34jtcdYFJ+Hn9KqRYO6pt0nWj7FT8PiZUkMsavpOtvEzsY/ulx8bNEkwfXFUO/28hA49Qd0Ay5ObL4GcJ3rEAusLBRYrGzU6+OmfN1qiG+AF/8UYD1iTl/qcfKy+CqoAi56w6p34KCn2RgU9yXIssncgUYFutzHjTghzWMawaLbLLFU8hmve6gL8IVLZsLohfeqHmE8Ax5K4Ti8hDyDMQJO3es2WvDnU+MTsvwyG00wgckkORLzTN+SuX1j7NUv/Xd3GqyNBgak8riY4ZocpuGx/dyVzuGAnhg0gjqzT9gA6kQNttjliufuo5jV+X1NpZ5NYQAjnX6xUHzFND/T3QZRBiFEC2b2whLDehRohjHJJbjvaQGlEYTEJgTkOqSBJj4bcrEe8TpgqlqEzDBV8iQ4Z5OwHt/pWjgVeAEBFe07UnGdh16FLGIjL8M0O8rey7A83Ymwdsdb0BU2OovUo68YtjOSweqTEBcuti7imAw3uGiKuEw9wFCDUQ2TAZUOyUB0XpOvWmkMdM9gz4XudiZWMDcS6C1SyVgd2IqWuRMPJerys1Nrn1kGeQD6x2dMjYZ9ANRazhuB3fNAnJCAAKowKzHvjEk5Nz2b2uTgnEQM7+fG53jFUlY/1dRCAq3XbxoH7d9YVekmmlCAl4rMbwxzhQySKWtPcQT+vgWDg==" + "data": "base64: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" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" }, { "type": "Buffer", - "data": "base64:AQEAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAA08C9qu4YmgKg1rTxr6abUMYSFoX5SvO5Zv+LpZsvRlOAanaS1TXUUVbXfSFgeZ1kJvaW5REElVA4vqiQw1bpS+cbhVx0TQbWaEuuG/p3vu2oBqjeK4kn9Tnr0PMUwTlTe/OMZr0fj+eCKbqFIvLlbY07KH+Zq+XypK+3CjcT6cQRGwPNPxrCI2W8TP7w4BBw8CsaT0v8YAjk6LI/B8vLRxzgT0imbf+IxsaOrL/uz6myqB/ckwRuZLJLDAqtZgcvw/bQXcWYDUXx48rqk0xEeTTJHsMmd0dyBAbIB4bqyxXsGl//Y5xRyqMcVTEigFQqsmuZX77MlYby9cTkNmId5mOI1GD3AApAU7gaAKyBWZ31OcItHy0ihnvkpwcziQclBwAAANlrN7XKfk+zCpAhQ4tz07NTCn5aBBQ2Ae91Uvx7mCyvQ5fUzPkF6pCzqiKdBYqxv0ki8ZT0ZPxlKDVp4uMXJUCtkr+i8C9vXAXyfrMuKrQBmE/dJ6OMrPIhgOXlKOZBDY0PMBxUJXXEu2QAgLqAil2U0cHhveZxeCqYv9kp2fgyZVw+yEGxzMq5Fmw52P9DH4JnjGgUDHwSOTD9KkPbdAAZUJ9/x//6RgfHPPaBeTiXGn6F3UgjNXiSC8Xe0nhZ3wLvtQLamFY4C6a0kzOoiPdX9GdiBHZh0Buwpb/8ihBT/zPW22MxUbAkiGSoxIJV2InyDBqN1mcnttH61fSvKGz7/lTUBWN7SLJJUXKgE4vPW9FS6JLSplf1ofxQc2sT5oe+uiHJBSlmnJ6YsI/ZHsBV6ljviSlKCDh5B0zRN5yelSTLjb34kg4YgtvMWcf3C+aYkiyc7nsrKUoK53t2giaQ8OJc6WDpHMe1zy2b5DC6toQ4a768IzsNh/AT8nxrYrIy5Ws1xL9r6OyZ7e8ns/JnGhkNUfW+mMGEF7w3JNJxtxrbdjALcavW7TH4uI80NlCTlAs97jPR4vs0rS/D7bmTx6YoMCDjEKNXnXjFLgCHHd9K4zh7Rp1aoMR3njF9GJN80wZHtU2FLm62olnhMlg6aWg3d09C7nplSTIy+BhGcjE8dt+uJscdLq1SeoGQrC6bJv7QnegNjvxrhcHQjIl0ZzJ9c8rqxTqo5e3nz8jcazz1amS83vgJg4pKRl3q6jic+Yra8LEBf/WCqZwMum2xJAud+2XIwe0ZgY3FXtuU4bjhEg7EpgCERphhrWItzhL+VQp+Groc2xUx+RaJE8f/FCxEhH2evxdz6QRYskSZlzkJ2Tq2OoGhTx1TRNci+/FklxB06tIuOQOcC/pXy6PFoKveymjikowtD+VXhRhd4ld4HdyMP2sUUaVSKFP2FCGRACZnU/0hyEI3YgZ9Nyq1HNJPeTAzwhEnBFVOdRB7SdplyBRZURySkVBbMSVl8raA472srxoRpTE3pEZfkReoIPbQ6X1nMgWE4Vh6WhurG+89vE8Ws66Pr+oNeM9dCVT+/Hl9YaUZAoSNC/dILPwwO/Spg2hYGQ3mVvLShXXSruYO/CgJJH/IZzOzsiBNNqH/TjzdZ5xfmy/oXGrao4/fof/Gv7iuP/PN20WdMQkjRK4okKmdRJiHfw0adNYDYnCimiVejI6m0cwpcq3XYm5WktdXu08DZjexSJCFKtunVK+Hib8w2UUtNyar1/e1Ug5eTJ1jSNOkXs0swUHP0esk1CGUpGQorLtUE1LcoGl3s58DxAieWdtYIEfed/o1o4HXGemuNqpxtDBLmtfg0yUyQfkJQ5w55OparycYY8cZGcWdwmERLh8KaKoyr1CK7d14Byh/RYCbE8LlH3FYrDWW7mFPWkmUJ1aKDHL5XaUq8slhnxBT6OchesCa8HN/Q2fS5cF4ESqVLeMOrnAn1EjYVbfZUb2roTkx11V38HD5oL3vdH+L1H3ISFAHA6HdJ39Me82s+VP8EvI2yyAnKY7lLp3Zi+OMuEL9HFTuR7tLluAAN7qyIlO4n3Po6GRxvs6AQnFxf9VYXyZC/qqqHHr83lPsOAQJIkau2PCY58LOF51d7Mx+IzDaJthYetTq2JRnykWpKelzr5U1pNKoDWuY8fPIeSQyYMcgR3oWT0onks+rXDfiD70VZhDKrSaKEzFaKeHlGYWQDFA5iLaEwRgI0RX0MMhbbzzFTxToa0b9PYwRv5lAMak9d7JEebkWLXprIB5PaPD9CZ0q50heElUZ2gV0ICSvvokltj1Yl4C8344WiVkvjiKSiJ+ZRPc6ONaJuUihaWkSrMmL3s+XBz71Em7OhhajBSWev+PYIlcjsorU5aSenzJXu/EfzxbNmgSQ9Kn+aqqgQ0Mp5cPnynKbxLVXfjiyNj7QgNjUkzGhHDBodadNSo95j+KDlOOtzaPY4XIwKF53uMTopuyWfAKnGoVPllRskquZ1NyRcb4EYlkxTKuI+YWW/hm7lDGIroI80BCZJYZPAirMiv4VxHaBO8+owEpE2lii8BdtaixAeMv9YRKwnn9oaSxu17x2QcXBxIDtlQpE9fkr7RKQPKvz7+KAkIXtTOTMLU8j5vBf2EsFEk+VKbd4XyGWwNAzSf5711PI1elrvIExFZodFQMCGX7PjG+fWapLL2QuIurelhTKAw9sYuPb+ClPM3PMaRvNanPFxemIFBI4QlgPhSv1jhxnYWKQI6Pk5WrbWeGOKqJKBzpjJDSU5bW88U/o07TBa5KOalzIPZuSls/uwwvVqk72r6lb9wkFKW7NwVf5AuZnYwKqsczSkUrECE8BDOV/DfHRfn8VQ4KDccavT9yr/toknAAVaaI4TjuZIDHz4epB9x0IeEX2GTG48scTbJBY7Gw6zKYGr6guc0PnLNc11xKHlre1FhCkJEh8d4fPrc3GAJFNyQulOow+cSLOhg79fFE967nBCYa5zKVyPb/OqlSP+c7dczdP4zPlE8M6LAhqKmKGeRX2kD7fsjv8DpOnNeAHyJbhmMpSuzzjbZyuI8jv9YoyDm3TcrUq9N21nLFiul3AV8LytuqEzUNdxPtKSvBVbFg9kDm8nkiA37MOXnyDmVQHj1nar1qVU26liCF/1VfJ7JD7payWEXbfH3NQpYftnEQiCXNv83o0ZfUiTDXyc9gq99yRPqE9xC8kvQyGBHKS2/DvkIC4uK9WmLfw/5pDXH4XdFxDy5ZAiMAP6xa2Sm7skI9PrJ8CNup1TgzXKs1iOODE95yA7Tk5PDTGmgm6BYQ5CPgTv++MZOdliZoe+AJK7E4eNRQeqCAryXjxI8kGvfbW72bNEa4D/DrU6U//2Tqnfz/uY+T1wKOwmH8qL1mvptEaqV3UQUvhlQO05bmRavp5oVsLAwbRDDJLmhC2QNbk7u9SbY4UkPquBlnSNowLUNjcwnXWxcnxpTs6L8DgUwg/5ciSZnl9Pg74snsyoZes4j2Oo1puN30Jb0z1Sse/lCQZxQC2tlX/8O3nVjuoX66ml9MFMEu/jaWi1FQP3cDuaPwM3kiaJXiwTAsHQFwOb7KcPLNcv/wtyw2RjsT82eLMRzlPxg8ibGICLtqTTmGtU+bP+JmvkrgEKQgdGBUF4z65oT4ePdeDWqyym9JZZuIn0dF0uPGOvNhh5/bDtqeQQFgJ7xNDMpw4ukv3EJ9eoQ1t5l1vA5M196WxfVzDqd0zHZ2pmmwxXxyzEeZ01aBAqx0T8ej42GRjNxeQVFGrraXxXCI11LjjUH+HhiX6qhW1e4oKosCxue057KFaCtQk38J6ynVUBWlC6OWM/s+vgFZ6Rm+zYyG325T7LEDJMWLyu6QRsGEXVzMuqdVcqWQWqTN7lZgLQSx0LirEervayoG5qxptp3FmYQ88NvsoIY0kbqFWRAFvyw5hoPA2MDHengXQo6kqiSX/Ioju/EBMT0fPGcQtdxQdv6LG8qsRxiD8RE52BNqG645y9nMkcYovyOZTlWStqLn9HhMAw3xZkAc/a0VuIvESS7Axa9W04spE7n+PasjNzmfhmJxDvUPEpQ/uSFY7L1B3Heue94a6krI/9RBOpRHg1NCSonXhIGqto9LgsIBxkacHv1wr3qDfh29p0ukrHvmudS9blDZlfFNIVvf742+YQXRm16Xi66PltYmOgyzeKGtxUkpVLdUaEIBwnyh9SNPovkq2f5deZJiZtSoM5qttbs6Aaz+3eTrujv1qCra/FzZ6wqZJTGi8kYDsOTHg0f5wpFfqFiS9dgbCJOyaprjrRbT2duZ4uo1vq4Jn87hYdgTDvxEY4LoONR0C5BnlIbShAYk8uXMgdMSGYDVLRw4WbAz2MXRQExNV4HAVyEDAWjO/g4wURJ3AI4AjomsC+H8wWOAs4WUICwRcDqnuOyvykqwK8nvd9KGHisu24oeV/3YlU3K3bkdGShRSEcSzJfU5mzFbMSOd9PMlL/jA/pR6kJnfZ5g1maAq+2UhI2afOO6t97UTnb71l9EvtyMsQdyP0dnuWibaQAUgPVrFQ0QJBIILiim/KOSa22+/umR6jggMnvZwpewPxkSiR6ZEiPv/oVWchFgMRdPPgcg57h3GMsW3z0Pf+PQDTxEs/VoIbQ/Mbt/D57oWTAXKxjbeX3SJn/IMSmWJ+M58ZkyCK9olj+6SU8yrkJdRg8F3vdbQq99452tq7GFw0854dHEv/HEUoTNJQ7lVVDVL8JAfP+IlhGXDi4bCgdVbCFqcP8N8hJPG5H4Zlp0x7QDC0/dZ9WnPyMtyzl61a5yaKrcHDz3cwlttApu6e8PFhhD3DWteD5iOgQUEerwBR21LCcmbygIEzzadNo9LROYd4/HuDvHIiKoa/ZuqWkhcsDfQwWWaCAQuvWLRdxWVEQ0bBPN7JFZy302vAXz/zCQl92V6+uoIPf6Thb1ghLeIHRZaQCNcxIOy4Fv+q2aMot8OrMgBeVxz3ba4XrHb23HfAhCRSsxWDca9W7sgCykvOCfEph3qd27VRszv5fyHszLSs1DIg9ImJtaJr74j+zV/cbt5Nfs6tqcrD8UFuuhxXtynXfPIH1p+tY/9cquAPL1+DOcje1iPXuBpikzxpsGfrWnRIApyWPmmln4+2JyumnbGlZBEFTyiiQSyx0t5ezhuMYW3WBWj+r2gH9yLBp3HFeq8CCEA47/agXFikaKXiQH7n9JbwsPeYObVECoDxtadUbOMEki9aOrMal0fHjCmnrN05iGjgSPNl6+7JS2PtsPACKZeg/puFsdwV2plCejktiA2FVvDJyMJE3AiQTG9L4KvNk7lyDRpxuqcZ+eV5iPSvsvnQL0n1j4/P4VycGcGnCxRc2Ur53TlqqDS7sRBMcac1yGQF2jdV9vZtml3rQnJ3njfHWadwQHnj03f3fVVVhD48MtKvqFsGRYKIjfsKxQyqusmEA+SMnv5f8SMCCaAZ2nbq7rSE3wv+ew3vclnv2Evspn1BPQDaqhwHVZxwHAWa+jfCQe+oT6e0jeNovfmh5kypKqi+wmDvw9QCfy3r2ecCt9T1WLorc0oEpRXqvmRfiR5Tg15CvN9pOQJmcf/+hmRDYGM+ceDbqHiMx7X1AczhZCeFi5VQ1qAYQ1aPmUCHP0DqqprAdBRouqESnBSRbSQHqQCygxFFrAV13GJ4Gr99IAuSR48h6wNjvn4Rph5j7ng5Pk1v/yHg2euHNx89LnWXDTt55Pm9D/ROw10/hJuWQle/xThAXoo4gyUiREi0AKpDHWf/ERivLCvXu9DoNEnhHYnm5kY08A/Bk7d0WhocXM/y0aC+VsjIHfz/fI05qh8eIVf0b3ENJLUy+dVaN0MIdSK1g5OjVd8htNAwvtm6b3SNdHpEN31YwrkqrJ/IU0S9sU9aqSz2Cl74bY/mOzvDNaIo39WlRG8NV8gaMr4xGjYmY6E4N4cIU7ThLew/znu6CWNk1Olz5n34CK+kovsd8FpEqlk78zfT/2MOHgSh5thSfFb/auXl5sTyaYwg9HXc71fOtoxGH3S9SvQ0epA83ALO81nrW5UFkJc9+A6X9ePNVw1fbPXTDBXi8/GAAepQYzH7fvWSQ0Z0E37oFncwPZ4sYzqaNR2ZTAOdvoRnhUuA/9d22JE2cp7r+Eqnq03jpYEOJgvyQMunM/UBtRQi8bfJF5MJ/DuQZEAUBOVMzZNIRiY9HulddBFtBQ5u/6liSgOXENO+6Ca46SWWYdYeRhtJbYLEo/KSongCdFgb21gpnWTmCrZsb9UaonDuwBoChSv9rWRO65VJJkPElcJCyoJ997tyDLGfqv3d2Jp1o4t72iCQxbKx67sJ80ia6PagcUODfLM85Ww6ghicFP/VPZawIupGHm4ACaM2pJG/+s/yYLDZvKHhXiF+v5IWFLkAnl6n57xn3yKrvfmPCIwGFdWcKuwSka1QNKoWiH+2QoBArwUZdI/Zxh69unSaoxECOh8bSiIReczhDK1x1WFXKXLrFgTBmpicg+bTkjn6eKTJwpH7ScboMN68XWHJri8UHFObqANQn0maTVDKTbpnf0IVFmFfmaFM0T/UPPXzoWCosvgOztOoh5FgrEgPjSClzwI7RrzlvoxXvlTdoHQpEFVIiwf4JWNv+rfU4LZSwDHQmCnGVrDg5S9uT4gYxYxc7Lu2oHTFBL59XF+Q4ib8oM3PVvOBdyajCrVMYcD/rJ85VQMHS5nDCNNR+930q8x9EF5H4iFvqtp1pXgqaIoUvlfFjpWAh5wN7kxXgOVSTpWP2yFTp1Jsh/uiDZE4E+zI/Hvw1CzJo46SmHb6R6WR2PqBrkJQtnLUUdPdECIglRPbzw6I1IeaqDFEcr01gcVSrmkQzA4pY3cCUjWNwNa7BESkzOcr6RHX3grr0AOJqPpWJyML1LwTIe/vhrywxVYtjwTFxsvuHeKAWuHPXpXt8EIxJhLV6vkkWghK+QMV4kTv4ZnqNfJwBidqg4fxlhgkXK8rNxBj+JOZBqPnXDtEGIkDOaTAbvfOSFCMnzO1vYBMo9MoIpZx4dd5AoUSz/rSyDSrCNfZA0p0iRFc88H8j/C2f/WqCK67f/mZSaCK7KxK4pGVGvA/44GfcR3bqlrBVtaqHwqozANZIFv2cb6MWKvw1bUge24gpNXW2+ZMrSGW46ODO6UlP8JDX3fuF9sNqGEdl9ZXRqt6jbl7VkJJ3F8z4qi2omWsipGdsxHp8HVPBIcW2ceW8mJfALwfj32l975y3cYHTQKN/eveRcaS1u3lXp/Y65/li68xNrvWiCyMspwOpwuBs5NXjq6ARpsZzFeE3objLGYyNKndxLh8Qok6djFIbADsPWDAzMrKwNF7zdTaom5+j5hEpj5i/6cWbW+oLk6S/dR+FRwSgxibybDrXIwtXVkd8H2DnPk+TngXy+89qnzCIKVqSEmKwS+d6IO7+8dg2G/bemj/5u9FH2WCgPCCPZnkVODG8pnwyZDJggH+3S5AGo+MvdB3e6uRvHOrpoj36PXPdwty8Hnan8lWLF2A29fS/uNFVHR+T2RPP2IF6Q+Mm2ZGJk5n67JH2FcwU7L8k2DgMsQANJyuUaPRD7akC4N5y14WEiOdjynEC5rkN90o3CHLgcWyX2ZnfRK47XJaRVXc4yUawAftnXVhudHFGY08Do8hQlJaM0ACRjM/VAgtWahYE59XDmVbgIkdAj2rc8AYknYhjkIqWeaKk2wvRdO6EwT9avL58SYMj1iKL5Eq2qybFHL3OGlLKV7HgjBbedRmi1PxQGD+21o7sZbxMxnYR7j2toyx1BLuyKignAtk6Bli1h1v/9XNBhpsNW/DYIEcI9rPbPizJU+wWuCeuKxW1nHXbo539G67P9fYM2DHlDy9Iw5BSUE802Hb9o3kgOKHnvuGJYj4D+A3bC3aFg0gI9Ogjq/9puQmbiy+o01WoxHM8kYeR9FgWFE99qzwVh2FKaua5F2NKIs5N//eOBQCshzgqcc/K/g2P2PaG7sw6lTNFGdl+wrE+EDneB5QblM2wm0JjCt/tJhq6pV/dhVHRI7sigekZJk23TM2zL49eEC/SGFHRHNGo8Bu7XlQ3ONRgzxelZR9ETqNCA7yB4gHhDFprTnF2+bTP+9BqtqIMY0AAm31ORJCP8qc0tJMg+vyEoxnHxkLTZAx2sz4tZq74+UuS2twyYCHDG2JPB9A4MkieGOpn5zIOEb232eS7CiAwkLX9b2OrWDL+ej1qEyCu5h+lRCGkHpN7DBXn+zC6us9SEfM4cSbSLwjKYNH1hTa81aTKWGwLNZAHETl7hbhBgkwOLt+WpwT8i2jmDUBw==" + "data": "base64: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" } ] } @@ -636,13 +636,13 @@ "MemPool orderedTransactions returns transactions from the node mempool sorted by fee rate": [ { "version": 4, - "id": "b03ec802-977c-40d2-92f3-56d748fcb257", + "id": "5382b9e3-517b-46b5-9101-6ed76eb1e587", "name": "accountA", - "spendingKey": "11571ea5c20b779cc42bffc2568873a980622d61ef5d9608bb791fd3af55df83", - "viewKey": "a7b7ea241d4ac808d9670d90c65e5ea111abe82cf48d358764adc0f00e1fdb243526b085120694c7237d56f75d05f38758247eef13b18c46f1e41d428c017e24", - "incomingViewKey": "4a0c8ddd619c8765797976c44f759e641cae1084d6234486b29210862161ca04", - "outgoingViewKey": "13a42464a4bf76f1b76f4784ae9a2f8a2b128e1c4854812100811cabe3b82268", - "publicAddress": "264885e2bfd6059980faa6dc13196c42de820b817eaacb87f31fac9933c6fb42", + "spendingKey": "b972d2f5630772748557454c0336124ee11ffadc4d933527d54fea15f23c9ddd", + "viewKey": "83b84a39cf537411c36537b8844dfa408a12712b3c5b0989bda240a8ba6647d7afe4ddb62cb958e3c644ed29cc6064a2c74269607d1634f9ae362cffbc5b411e", + "incomingViewKey": "fd6b2477288803b0d8d5b1457c9acd6150d585c05a1fe5d20a235685198cb103", + "outgoingViewKey": "7f02022120bed1c0f95ea2edf6c1065008feb322a05e640b593915e71861354e", + "publicAddress": "c1cb9d4355b4257ee9c1980a724f7abc68a77a511e3d4eaddcae3a77229e7003", "createdAt": { "hash": { "type": "Buffer", @@ -650,17 +650,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "b724b0fda4ae08effc1469799dd3bd8a102d646a7c0b3a9a9a7f6121287c7809" + "proofAuthorizingKey": "b96f8f0580df0ef4273869a1055e6ff28cc677edbd0be5e3df8cf8b2a072070a" }, { "version": 4, - "id": "b9ec1423-d8d0-4340-83e8-1437a914b82f", + "id": "c0b6e185-8557-4f46-a355-a4671017ea4e", "name": "accountB", - "spendingKey": "42e7f9fc606d00f635c93be9ad208b37b139666509ab10187c3a6effb3f50671", - "viewKey": "36eaceae21935f1159e4894002b955d8bf6cacab9067cd619a723193883bb2d07f96a8607b05f0db0c115e793541310e3ad96a3940be6b7fa9d2b7abe23b79b1", - "incomingViewKey": "e7a21aaf1e3506b2f5b15cc91d89f4dfc475eb79b6c61757ff89fa75935a1006", - "outgoingViewKey": "8d733ab257223d859e6bdd978bca571d5b5957b8ef269e890c145c756a5f3b01", - "publicAddress": "296b915e3bbb9cab54a9a422c00bcc6fe4d16bccf84fd7d4aff49ceb557bef17", + "spendingKey": "7232e92f1cbbf10fafb59b33bcbeb25ec9545e75de875eff7ba4cb405df10a08", + "viewKey": "44139a26432e5a7167ac572fc35158491cf717461a8aee6b7cb88a0686cd1acc2e0778eaf3cb26bb07b68635b26074726b6d5812f36a46bedd41b245d2c3ea86", + "incomingViewKey": "7276ee4db7b23761438f47970d29d8f1110b336ad6c42a4c8edbe2173307c201", + "outgoingViewKey": "26f9e6be73693a0fd91d5aae143edd93bc668ff53947d1b9e0d52c302e03a8db", + "publicAddress": "79a9ac1760262ff78836b46f1a8b430a9b826bc4284be910e7b9d2b705273d5b", "createdAt": { "hash": { "type": "Buffer", @@ -668,7 +668,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "6bce825634fcb643442b0685c2e2e24f478765af82ad13e1b57cf474837ea507" + "proofAuthorizingKey": "2199adcd1f7e41ef3fbef61233d753dc7956cebfe3390eb408a798d77ed4490c" }, { "header": { @@ -676,15 +676,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:0RoMBQA1aNog4BLhHdY6cg1LSOnfQ46flRJ+h05CyF0=" + "data": "base64:d4ouajR0J3Phcb7Cap0a+nkXXqYRVPfrSGukxd10vWk=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:E5LK1BxKfWeTMhty/no7rY/S2aDlGuqfnHouO12sk5k=" + "data": "base64:7+QZTzC5+ZMObCUttqxT/fvmEL6ge3Mfbwvfl4tez0Q=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708551039336, + "timestamp": 1712340007045, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -692,25 +692,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAADTIl0a/+tsequE62E/XJRJxbBSvIcMbe1AvgWmY4eFei2Aq6gFp//pN+039EuI5pxERkkj8mi3mJ7B5uKNzHTJF/gioP/CIB/SU1fO/uBJy4M4OfFtov8TMaA3FAGRzZGmqRSBoVoEebjJLA5iTyKrmMdHGx6dHo4UZeSd3IedsO48qS+kXL2Oq/2vn2SKgX5MKHJsVTnFdqA51aCbFVs0lEP+cTmlo0E4gemXHQaYWt7Gh1JNcX2OcIUr7GeqUA7dWEkEURV/ufdH9XuW0sc4vmuPKS2h8ueV5L+mr4hEyQLLjyCAvgFfdrzR4FnpXgJq0FzGftKdtsPzzPTxhXhtXLDDeQ7QX9zeYgzN4YPB04ipHDMkX1stplZPJSHLY9f2qPciVmJ93pGc7YdrfSpEukewlGKEN1RphPDZBUSUhgzcD7u/EFALCuY4JJGK5XY6D7FIvWXfMo1gyIUuQ7XtLZmMBzx/tUkWsbTRWl+mVfw3fToeUJLjrGGfCFXQhsXIDwDtZ0df3r10sZelrJ6w/IwFR131U/TcJ8uWLrNtZqvwMFGgF31wBWi/GvHsOsKpqJTrUKTkaI2P92NbYADhKRnjDw+E4Wbld0lolcNEgsnushQXuabklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwGLVUIJbWjUsuA/v/bT65+cvif09Yo6uZ7K6F4edl6lS/DFtAYpZIOrgSvX8eBZjn6LL0/vYbMn8nobDQg1GFAg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAyzYVazP5DJFLRC4lnIXSIIHdveV4u0H8D9CzTPEYuKCz7vkcYsfSms4/ZfoIsndOFVEPp2c2TcuFKDBulKeGjO+lKF4U3o0bjrdBRF4T2zyhg/rjlRcMorctMonHspdhgkGc0xcdgV433RVb2r2k+UKhMqIGDOVvkdTOCnp/Rd4UPFcljoWuWwCZVEMs/euAShRBfsFGJDn/6bIqnByahLZS+Zm00x+Y48DriQqwg56Yg7wPgA8mvdi43j15tKsSrma1uLhL4U1wEDqQAq8zN/MF44mFh0x3/Tp+0jxHY4xzFRaiS7B/BhsRaC3ngPiBR2oYxbrR213Co6UXctR5ILKqIcjTeqa4XsITJ0+E7S7+Ao5kpFRK/lqP3LsOr9lfihadyowo6aHp7cy2knEe8UW8+UaBFIngJl7sVOFhmezKrf1UylUuc6WaqFpQr9eLz0wTvVV/VnOvNuCZmVJepkdOaxPgO4RCNZXNo9WyMXA0AJ1wJ3Pa69GIHsnIzQlSOfuXQIYo3AYjl8tUPDR3y+/Hoy7npaAamjffdrklD9fqi/1gTAo3lNjPW0OpuScLVNeCJg+7NyKZtxYZY4clCKi8hK+k3OV6f2IbdwKaieS1PGQOAyjSM0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwq07icIQibMV3usDIgYn98kCBTgEFEL4okEVKyUAwcS2sG6+U/JaPVl4q2Xag3jcFLFRVQz19EFH2WdGcLNDgCg==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "E12C654392EABEB0E329A5127A9BE80E23E17B34C59F997663A0D42F80553CD6", + "previousBlockHash": "EAF3A2828EB712FF0D1EEA0D6A55231D3A6F9BE0E0B3AAA8EB0307608F5B0D86", "noteCommitment": { "type": "Buffer", - "data": "base64:BhbyEvaQJiQmPb7IthhL3XNAmb5IYRLnPfiS/94sxmM=" + "data": "base64:H83ilHIcXv/Mz6lV892ywPMiIBq8OshBsEXxWOx+bE8=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:T8jLDduX4UsZVqAf8AJGC7dFj/S/wydzOPruof71CbQ=" + "data": "base64:zrPqbn+djV9Lu7t1Fbxvl3nh2HI0WL2RAX4c9+2Yaww=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551049237, + "timestamp": 1712340008512, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -718,29 +718,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9mvKiP////8AAAAAGlW3Fm4Em2W1IjfM9BQgsv50/dEJ7cVSTMdSqAJ1t06r0YOCeUKtnKLh+2c8A7WEqgkSCyMYkrFf1OK4j1VQUipnOwU5PHWEs89h1ew3gYOKRTepiowQZ9tltMkfPUMXKyeLOiDdUYu/Ef7hfeqF04idujknh13JSTvUl8hqhdYVYLHFvvF2LI1Q3SgKBrM1ht0z5OghqrnbULecFwOoHWVWM7zToV/O4mSiLVl22O6En1rsZ3PksC8KR+ShEtiZag+qxGOGhsz8rBO0HyEnRpZh7PfRKXKEggUD9MzV35cSro1Mu1VXtVrKEaovJADEipWxEvdumyi4aFjKf9TOzQum9uTWib5P1b6BtwG6OZtsHorcmsJ0NolhnC91fi4WgofC7xNQEltIHtvBOx2oc2vzrIHJkXQWC+oBM0hxeFRgdVV60gSesnwra8QlUfiFL7GFeVl+IHo6xQh4Opm4+OpsoenleDZTDdpDF2lVENTc9AHJ8Doukv7KWLAgASCCJ43WOTKvZCERmbdhUPIhwGZjm6aeOCXppkWVAyyqXO9xiybkOLW7ig2Qx6z9vJmYqZS+ff7HD9lb4mECvIzUfRPm2WMgwZQugfRK3aXRpsWW18MMST6XE0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwkl+oqeZh2PKm2ubAxP4vGbTkDtu+uvJvlHXGydanODJB0Uy3yP+kogW5c5EU6EleFrASseal5f8rv+4usf+4Cw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9mvKiP////8AAAAA9kZ0M5tEFaj65enQyE7sVkGCVRrjXkggAeaCUqJY+MCHrssYzmZlEbBx/xctl3DKKtBiZjT8GSBxpulUhXPeEYjs3kxpf5d4XeD7WKjyUwO3WclMgHdk+gXYChKtQdirQWmsO/wHAVFOnk9tOjgUhXOXcDxD6UdkDLgk/w0tffoZ0UBvWERQUgY6KXDEDnhZvsNEXYNmbySn1h3Blyx7rQTPwPdoY0z007RmUUcikSOSvUMIducUZJEMIc2KTHxgpflXwgVx5fZSKwsPH6iLeivWGONqjHKaS+jl2dV3Z6IOmZZYvP6fb2GzEV0MgAWCowiCqpRl+fjs9bW2Cs7XG1R4UG4qBHbpILoNCuuNltfop0cY30gEAWxfJIeSHx4z1fHTyyxB2kArgs6Kp7OHmtKdku/CfCJ/6gkD9c1JKWNFqNdyqG37w/kF2zipdV+q7kQDYFHK1T59AUipYH23abkThGjG7HI0rwD0OuKqLK65FmXujHkQ9eZd0dKbteS9j7Or3h0RmA/H4/7cW4cRK0m+CDtbZ0n8g2TZZKYv/3f6Deii4cSq/C8pceEjgW7ho96YmJf3QAZrQgkEqFqKYHAZmTyUhSkOi7k2G6zWQaoNugxCtgu3LElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJwVyVIi6r9HMkQJrGR1n/jBZGc136Qi6pgEY/fqxWo1wQ3OJY6wJ30viet197v87lMMxu2Z71DSv/80GJ42sCQ==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "E12C654392EABEB0E329A5127A9BE80E23E17B34C59F997663A0D42F80553CD6", + "previousBlockHash": "EAF3A2828EB712FF0D1EEA0D6A55231D3A6F9BE0E0B3AAA8EB0307608F5B0D86", "noteCommitment": { "type": "Buffer", - "data": "base64:U6MgI181itPw1ZnKNVKEwKDUeJ1sV25/XBYfVukRwWg=" + "data": "base64:Ovwbc9bbcqXxQf4ijwB3Nnh3TFiS1bNjDwCevNnP+Uw=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:O5bJYtFi43gAfzvjCmhX2OkBM9tIoHdPzwyl/siIBww=" + "data": "base64:KtV3G+cwl23hqwwJaGm5pbfcE3z6U7+72P/80wCIb8g=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551051329, + "timestamp": 1712340008811, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 5, "work": "0" @@ -748,25 +748,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAZCd4+aEeUW678D31b0ysa9MvceKv/4cc1GLVhtVnmhWGrt3xUsT6CEH7bEIyz5q/XAKqexluG1h35IWS/tNByW5v7IbmFmXNhnBKn0Y6fBiXqHyXQhMJ+G3xoOAfWZmZMvNkuXd1hh9/VFilzaZWELl+Hpl+sdM+RMsk90odr6UVJvLldiIn2PXF6ndgH1Xocobjwcc0pUw4gqEcnxq2Xj6vFTzd9JS3iV6lplhq5OqEDWpkD2VQtBl8CBak2gm7+/T9V/fDfAaun4XRz8lMp51EaaKSmf1G6s3okVqz1xWsXABlWzqP8danU6s5dBH7BwPUlJnYuwB5fQe5Ped5Qkok60lDNNkQlOfLqBUnDzQMWIGImGjoKp1UeeHUDsg/x9PdbFIbyl9+r73tQwqb9UjhDaA3jRYYR19O/JcxqAxQ0sx9KKRCWzIBIgKYEHi9xUOIWqRF0ic5xxHVW54NFORtqJfzSf+j0VdYs9Iwl65VmtX+taUD7XvDqPeJlYMp+eSHEElVZQ8tTAWZL7id148vWb7n9Qt2/UahXi4uptyesRhjsANOC3nAGAWEwTEu2mW9bsmUv0ZlpNYNraFJyAYzYG2h+zjaJMT9pQ27qOENQfHJ36jdfUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw8A00nck6m9Q2Cj/bybQ6pcX1te6O83YzuOJTdspwA9N3ipkZHME9pjnQjHZ7mXQsQHNmlmM2RVckocUo2SzgDQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAe7nqVX3TWgQvBXsQAWby5tckOJEiNkQkhr5OIgMdrGO3M6dcu9lEJeJj8QjU9YiYvbHHOghJryoIxXkxpkYTbNOeM2X17RznD4zih2hIyiKlOntkUs+mweaBBlL6EcTU8c/I84LNPsmfZWGE7tLUeHney5wRSntrZGOU2NWZDzAFyNmMgj7RJsADG4jjite7kYBKJ1b2Rbu2z+BcF8VK6095868Ulr7Tu6xfNkyX/gCivhlscwoIPyT+ySGi/oSNlDY4q2LIji+XDl8SPlR6e0HokutGIMSAT4fU6WKFpu5nb4o7waolw2RkYgw3w+Tko38j7XqWSpTcKd9ME44KKWj3NW0MT6dTwJUY4fNiqz69AywfNtU6ptf/odcVUF9WyyDNTVcuL2/lLVvUhmYh4J1VH1SxPM48BEhnm6vjXrb4DKgzvx0AjVG8Nftk2NGZB2DZdo2wPkDiBVFX/eNvWKHZNbWjk7ZUElExWKS13grFJxHK3V3GmLGOrNxY+nd79lrhp+ORgUOfZ37cyBnldIXNFjGbdmRqtL0hTnvHOsKWCviPoMYQhOkmGT/tut3moemUqLVjEHLzckXV2iU/0tvG3hNsIihJPExrX2FJLjV28RZHXJgASklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw5m0DJhfWo+/4h2T3ZpWUjCz+MH+NewmKCIzfphkNnev/l3XnCRsRGdfuCrVd1D2Teb8cKCaG74MGF5UXgXZKCw==" } ] }, { "header": { "sequence": 4, - "previousBlockHash": "2B69C184E0BE246E91AED17B48932F0200C86784B61192565288C7D594240691", + "previousBlockHash": "3CC378A1D5BA9F532C04D3E2E9984B5C4B9972F739442E2668215C10058C7D7D", "noteCommitment": { "type": "Buffer", - "data": "base64:4A67Z8MxtDr48WsJ7aM28KFGs8Pbb1BEwH3AjSY16io=" + "data": "base64:+wxKLyfvESBNUfs8pquM8FW+l4cniy8FY3xGlkUbAC8=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:3UIN/GlowvvBTDu+DQUU0cgxy+dOewZOBTgJ7wMEcww=" + "data": "base64:PHK3kMubNhxngwpz1+2HYiRljPJ36QSFZQ8qVtWifDM=" }, - "target": "9237815341750015092140817300043113376661752366206318446334046747329935", + "target": "9228823284279306817296266184515742822248210830185427859262273659833347", "randomness": "0", - "timestamp": 1708551060753, + "timestamp": 1712340010277, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 8, "work": "0" @@ -774,29 +774,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+2vKiP////8AAAAARnwdXaWjco5f3e9G9xCTQn5n1s89VOHVwyZyGavWUSymz6JV5TpLgIleTFj5BLevtPcdJX3uN1o9iW7E/wg1nwfZn+sb/Qh7d80d5/XMdge5hxB8VqR++Z8W+ceZGjXdLxPoQq+TN5a4LvgpGkETx+JAKD2TQ+cJUCHYpdp9PmIRpxj8sFxU18wePSPNNKhmbn75SebEicLc5CF+YYOz4dnBnVnuNhJ2SV20K1QwGl6ZNa7jqfbMALLgU99zHNwEUWeUm0AwGc+oEu6oSUTba4nD5mPXUit/isK4xEWCVLCdfrDYNa1Vz/SYYWwEX3AzXbzo5zjC1Og1uNQqLlfnyAhkiNWSqrFBLWF+9z7a6P8cPllcwszccG6alKAxsnEKogTIyl9D2BMv+2Koli3Gf+pq9zFwYXqdd8Wgg4+KUMvaginmK6/da40WoyUsYOFFVLL8OngwpdVCIXuL5QWtxh7zcQSLUwlhtoCsZ3sSeBmRcgJTQdCvE9wfTsqEWlHeN0hun+rUVazePHP4zOYtHOw1alGAFS1J9fFeNMABftKyN5KBYwCzGnRFtnVSEKr9kq/VFR4SkYF8s4N3AuxvzIvsOB158VaclsGPUkiGyIuH13IzrYyLj0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwwnbBeVoGnBq9dbJVTVCYkWPJqjNKw+9qZXsB9/0/e0T3/+wa7L5W/js4hE6s4XVJOBdgi/FG2H8VNWs6BexJBg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+2vKiP////8AAAAAyzmBXNPBg95tygJr6usSionngGUwSEZbbW/Lxy+DKcyFHKdMA5eK/tPkayPyyuCj7womj52rwcQxMtfcZmBNT5U84HjkJAuvY9WxAeARxPK2ehbZ5YcHyWSQXmxnbqwij9CB53DjrbyXy8K+sPaq5NNEgyphkADiP8yi2vCsI4EGTp6DNT3URhG4QDj+tYFsgL1txMnc0sA5Cf59MOgFGKCSBayzildYulLLDz8R6IG2D5wDm9yEuldML98gPSvKbUIBAEc/RmItwZrLBs30NEXqgnRQf5qbtJKKDr6v+jCLplRtGnpkSceJiJZdV0yP8kIcxzV5PYgbZSuCq0cJxjvTIB+pJfStj/aQ+ctOC5JZjZk8R0j7asq/RG67wVw8y8lhi0ZagOsbAg0Zli/hpud6JatquMuCgqa23J6kO5hBEaM/oXC9r2Q5DonjG82ga0rUV8SBve63+TOQyE9kGNRdsGnoWpxKqjXFVxoDbWiONEfVq9Oh5x8N5gCLC7c5scSHpPIHOZ/8cQRvR+9RMctmm2xsLH0vhrhgTZOQpxS34YeSSwib4Ori8FoB9R02mVzivD5Hvrtdb5dh1Z0lBsFf/E06+qkyDqr+Bf7wR3Sb5hwbephjS0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLAJkvM45GcP6vo81VmBX+JfCd6BcpHeoSzYp6d0Izu511uHBsxow7Y4UeQ9Re1DcYomG2HGap82T5Eafn1wEBg==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 4, - "previousBlockHash": "2B69C184E0BE246E91AED17B48932F0200C86784B61192565288C7D594240691", + "previousBlockHash": "3CC378A1D5BA9F532C04D3E2E9984B5C4B9972F739442E2668215C10058C7D7D", "noteCommitment": { "type": "Buffer", - "data": "base64:ifyyLzx9/FKkX7f18mGTnnIicFqkpnRtXv4fCbI2u1I=" + "data": "base64:B+MoarCLM7IxDBb5MKL4f7Skwc8Lj2iiQTHB+1XjDgs=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:zIKuT+evEFhFmDQMe4gxk71mdLrkeGng91BosfZYMaE=" + "data": "base64:vbxeRwvhvVQAWZgMQU79YAOFuM7zjXFpPkgTqZ/Cs3U=" }, - "target": "9237815341750015092140817300043113376661752366206318446334046747329935", + "target": "9228823284279306817296266184515742822248210830185427859262273659833347", "randomness": "0", - "timestamp": 1708551062670, + "timestamp": 1712340010576, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 6, "work": "0" @@ -804,25 +804,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAeiF5peAaz8fYMTPMXIKBDIGSfGTwnmN5Bpv4TFF4Y+mg4YYRFzdeU+w92N/D8vGRvSiMJnHz4Q4f3gIfxYHdfDedzV0gbUMT89A2nHX+PNKkjyv+nuRr4G4d4JkCEe9BNhK5VYKgvptJrPn+KMSRmqo+j4h3/BOOy/awSUO8T1YD1vmnEnGOxIv4scg7cF2nNecr+wW89TaLsxB3/cS9V9oumqWoqrhkG+9wFf90f+KgeBbT7vGNCSWtTKPTCBUTS3sfI1Y8+6TMb0+qEQyS+zU8y49Hph2Dwhz5F6ea0TkxWbU+fm0Jomvk8V9qQPw12BlTZ657cMVRkQ2JKdkW4lGYY7aLlr/pWO8ktNUhGOZeR/4fupQHCLxdnfLSNLsaKlKk4Wyh3YIhvTFGNW+KAJyIt4kfuaMGhdT9fcCX9PCCVsUFw1c8vhZsR+MZJMxMVeKKSx8LAlh/igNZ6601qNtd9X4RSwzM5c2+0AKUAnRVSTjxObZY5FZ8pbLd+e7g9IdonWjI4I/qj7WLJKU49VmpjOfJ0vY/optv3ReQU1vXjeSsP5If9J/IfoG2FNKEikNa/MhJkCKbtXFtz1Oxlu7C9Ggs5bMaVz1FZYCuxwcB82Ns6q28pUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwdVSuGga1biyYID5fstNbq5W45fTbAR6LrGTKOOMJJ7KVsPQhQ+dZG37JekHDTzl2LMByklggbf+GKv8LtujeAw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAxW18/tz6fUaEeN2Bn3kD6Q1ZlDx/b/YgBkQIWZwZ4y+2BJwxCd/lOpX4NyomYccTdrwwNP050vRxoNbMkk5YQVQeOu6RiMjMrsEHG8iPgz6tCPB58qPy8r295ysCZwbWWmlCo0QQxvvudUJHlx9febsqQRnZnsn6Barus1GSuj4W3a6+hHQuzYWBItdzQte/l5FvdoQXrrO2y5QNESoLJwU0XXwj8T/Qkb5/KPTarryR6WH+QQ4d+8oVW3Spz4C/wb1hDCGJfTQXoS+zpxuRmYVYmWF+6Zqx5tZie0AGruZuoQkk72FfJvuZsmvmOCEKPvwG89jP4dYPXpuP/rDdcJTQliI1mstutxFdhiFHJ2Dn0O/RL6Os7Kiji8Lqno1Fqb0C/XuDfTdEaZomKJgVeCEvVv43F2e6omjCb2pyq4vR5xdtkRuC8wjC317Fa/Uhh41qOQPpQZDxqKvd52s5SP3wKjHfhgsdtwljImgVzkeCCnLipCVvtsiHRl7tHtuIMlLf789LWwfZsCUMeycR5Kkn5KwAQEh++7rUKbFrbqhNpUVeOl9j8UAgWLB1AROk9Yg/LIa4npbDZxP4ue/ojykqxYMLy+Rqt6dhdPXR3DJTjopF6DiGf0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwz37uqe0RiHs7Adlj/ZCLbJChm5FhCaZmnBvbFz2wQu2UC6zSLGNtc0eejw91/GES9n6atSQxRY97sV6C9h5ABg==" } ] }, { "header": { "sequence": 5, - "previousBlockHash": "AC1C5629EE1D80123D46F88FEEB1818DB8363D3FD2DC3DFBB4A2DDAEE1BB8689", + "previousBlockHash": "EA289B6C9E979E6B5127212BEC84BB56FA0A8C1C71CC28F37812AE8990A6C9EE", "noteCommitment": { "type": "Buffer", - "data": "base64:IUZZFU4CLMmAx2YBpsnZrqhmp/nWIYdIU2qo9FaYngg=" + "data": "base64:SsmSfwMnv76ROcaTlmJxj/uO0dDaqrf3mvT8Lf6UHFw=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:zPW286+1+VlRBWOX5nTaMlHiRfjaXuzLckX1QZUufFc=" + "data": "base64:gFdHYeWXDTx94fAhSy1UYSARzmbGDNa14GMuHPzQWH4=" }, - "target": "9215318468490585719941901725100359354586783285202200847935471173932168", + "target": "9201866281654531936596795386791503876274441021197252859723586932895305", "randomness": "0", - "timestamp": 1708551071126, + "timestamp": 1712340012060, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 9, "work": "0" @@ -830,11 +830,11 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAA7ZLw3z5q0pUQbYL7uKbc9uJZ3m0Hy1aPk0tO2xZ11VeLO8CiZK7ftAQiJsmHqGDizxFinDJ6hV8tsgr7I0W9hfATBcGMN/IMgjsNJmkjlhanQR62FO7tPJ+ebrD7n9zBtnEql0Ee4U4NVXZ/ylsl5LrU4swwAXCI8SE5M9NacbsQAAdIWW/pp46PYROUt3N7acemPNWMmaUPpYH2CtPp9HFk6JfeFL2wDwkQukm83pmJIpsQ+tMG5GdBPfgTW7vPyYsnw4LroTlV/aQPXkd95cs4GBfwawo7LhP1XqDdwQqLHs8GJLNlyaR23iGh05usMPNHTA9nqWbpkEAlNK3BLEuu/xJJQ4ZTnjQEYovEj3sK7JT0jVtXqIjgC+CIjHsdMs/FVtW6yAsjBkIwnMCBlXWB/gplkkwXaHQlYWP2EWZ2yrEl4CfJO2W1ygRir71WKzPO22cywsihA0ffY00YPMSgqRDQXRUK6PAxi6XA4Xx+Uun+mGzB2WW1dJpqIGqkG+qUbtZVmEh1QBOJ2JA4CIgjQYnNcDwmPpNRa2JU61FLCrmfhjF+OqH7SjCrgFovU8VEr/msFhJfZ559srtc6nWlC/oQQfso4jRqHsJUOBIyvAG3SYXg+0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwnfTqVoeYdeK4ZPKsVQr6DgFKa6OZwiVBx7KoPS33WCxvlK394PQAodSpyv+dNaEpCuppCvjPOykzBRQW8AwSCQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAA4dXoiENlFXFn4BtIJJV80CiAClKY0fs8N9cUDG+fZgilyh9FC7d1yOStY9Noy55e0KMpWwFux7eF5km0V04O4Yd5bqcfQZTzb+6o3D6MzkqTWogAT7is2e2gcCmNERDzjXaLOr0T4yCC0mhLUz7rv1Q5e1zrU64F3dFp1na3cGcEaU1BytuW5+LxLQIOWGwy7bBBWLodeZlikuOCE/GNCyOdOrIKG2wVWueYyQtjaPKNlkj+57LtyMeKH2ylF8IBadhb/qF/uhBCfcLoKfAdxDCTGIpJklevdtgXxx9zpHfGxx/R87opSafQE8PzMyiOOo1A3uS7r+zy8kQVmfMJDHm72waP3VvBVWizSAXyEDlYNbO2mEB7szw089BsWLojPxT/zrvmytmJjZY9bmNhsR5aueLPHuSGRr6Gim6j4iuitjcOsRH6nE8NfEY6G3eQo/lmU7KkzkTBbCzacTCeWpYIu71SgIXuZGF/AxYVFJG5X3yLkgLhdEj6LRNVtU78yGLjvKJ+Con6I3veRZTMj6Ad1eKFi2M0Fie89qeIm1Mes/wDf9rgC3EE4Rpyanfoz2DG35v0kEK73x9qq1C+asj1zH/WoIGzsoVvqauVs1GhxPA/3PX2Qklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw/Q6JKvdz+uPYGWSw4BlCMMJEbn0MB56l7DjcPDtysjsX7MqUtCwuRBxn7sIiDSsfPzmmtfil/ubkg1AFN9rTAw==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] } @@ -842,13 +842,13 @@ "MemPool orderedTransactions does not return transactions that have been removed from the mempool": [ { "version": 4, - "id": "db27bc1e-bdbb-4df0-a4bc-2a85f5ed8a18", + "id": "0eeb12f4-adc1-450a-a894-1512d53b17ba", "name": "accountA", - "spendingKey": "a4e3124f4b7386a6cb294a1c5cd0123109b28a5a8920fe2e264d9c7c3e50180e", - "viewKey": "37228f4a75212b2314bb938c11b993871a5b6ef6d67a8ce3b4c26e4415074d408e595be3aa76ad0a60620cc334ad63519964026242fd515869e2bcfb187b466e", - "incomingViewKey": "a4b055898a75ed4cf93efb23f4a3bf692f0bb452960cc04cb608038e72523b03", - "outgoingViewKey": "b98d655893cf44b620f47823e2e564d5e33dbc78387157c5948c2b46975b11ac", - "publicAddress": "57c93197c34861af5d1ce72372565dec20eec993fac6f77c6861b669db7e0298", + "spendingKey": "bc33c2156f5cc32be5fd6602e5e2c23128e54064ed18a35d88f4e9ac9d632725", + "viewKey": "0d44db6132ec5a0b9c7f313dbd4c8e7e3a21d438399d1af3d29c6047250f70270e40931665cab80b291f24ec33b9cd70d23ecae3f60da869ed39ab8000d43ca2", + "incomingViewKey": "d3e340c4f1dadcf7f9fdc49865971917f5349fbe501624c6e97a837366ace307", + "outgoingViewKey": "6a06df59830b02c2794a09714f2c29e87a8adfa2b592aad350e83d590fcc6ef3", + "publicAddress": "5e9eacf581db79d69a0a6486e8ee3a8b27a4822c2d9edbf1587cec1222454cc5", "createdAt": { "hash": { "type": "Buffer", @@ -856,17 +856,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "3ab722122333ff6d92dc0919e60c9017156cbcd49a7a8ed1f2ae7475ee035306" + "proofAuthorizingKey": "c2f0fe629b24c000141ad14c23fafa37f77b17e8af6fe3c7b7f6bd10ce65580c" }, { "version": 4, - "id": "10dfe3dc-0888-480e-b438-10a0c6cf971d", + "id": "f80e18de-d907-493f-b60e-1864877c5998", "name": "accountB", - "spendingKey": "c865843d0a935ffb25db407b7f52e722b5c3b90f9a8bf13e00863b828bb8e36a", - "viewKey": "c24e050436658c7533c93188c9c4f29f7c432fd2d8cd54c19f0f21cc5369ee9853945e929c0dfdf73c2d001a882e1e0f0e5ae527a9fbc450f95ad330f7148192", - "incomingViewKey": "ceaf5ba5947182dd65a6d703ecc88e0af35efe8239114554726e387a2cf93f05", - "outgoingViewKey": "ca3b6b06ec3097eba8c1244b8429845385b2586313584e988f36dae6d69e0b8c", - "publicAddress": "f4d840916940298e5f04be9a20d088075c73a92be63b79558b4e1a786b583316", + "spendingKey": "6a46b5eb612fd69700096e7e4e1cd71efcd87d4762f1207691849341870a5bef", + "viewKey": "5dd70e83d7b35a239c7f8e29cddd4d9273324633d9c4d49d000722ef3d39fda1fd10ee8effffae2280de4ea432dc3e5b9acde37882d29322c140b30c14a94f82", + "incomingViewKey": "d983ccfaacf6fe851d94f3b4e5f0ee0da6f34b7682720b4417f6a457f6a06a04", + "outgoingViewKey": "8d70ec11b4ce522f2d6d9107cce191c44e483c1e16eee7600b37d686bf4bfd51", + "publicAddress": "a846b31b1f1c1cf48576225cfafec60f014da90e43c4441bb415581ceb1eb62f", "createdAt": { "hash": { "type": "Buffer", @@ -874,7 +874,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "b177df9b4f4cc81246781459dbe9b9367b542288fd999498c4c39896bb2cb406" + "proofAuthorizingKey": "1e2e90b94aa6bd7690354049e08fbedc0f2b7e5bd9a3e86cfefd908e9c19a301" }, { "header": { @@ -882,15 +882,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:mn2NtLAGpxxtNNzqlG8x8XRnlMeBPJi0laETCo1GEhw=" + "data": "base64:mC5hQ60cFQ8cmm7d+AQDvhiiFJVs+VoP9VCO9EJVoCM=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:yCGPgnMg6Q9lxd1TsL2KUucmf8niYQRJ69t7ah+JVoI=" + "data": "base64:2R9MB+bFez24gDrcWOC6IWRvwmDqJUTnndFT0BOl6G4=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708551073352, + "timestamp": 1712340012457, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -898,25 +898,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAATu7YsdhV+qWgXZ0g8SEWKuP4hqC9HMAZ0sgcjs2gleS0nbTlHtbXf1ArUl29FBD0TAn6cDyFy/oZtKf7i+jMHERmuAiiaWLqmg+rb8KYD0yySbSBfES7ci09df6NNX8DtUyIgPmN82yKsjhneQ4E1+7VYi9CvRn0IXKN+N9arGsXzOkeHZSd/zzAHvWmHZKLHLd28u9ChZaQryPAdwa2xLLe04Zcw98FXCd1T41LHu644PSByaTSOQGMqgCg//SQDX3NIrLfemKR26KRZr6+GyTSYkuFRvuz/wJPguZ04TH/gmYCxNjYIsh/jv6awP4UF5NnQgOyiYI7m0FpEgxekSU/Rl6iXWIgWW8N4EQyp8wq+0UCo1avsLWkgyFiYWMzqNiB7Oj87O1BcmFs/2KfMHRT8P1PSmizgV2jPG+Ql+PpAukJc81sDOeVGGCceXvd4FZboDlkRYSf4/UdwnPE3sl4tPOoWtRVNCMc6inQt5suzoyYIGyWUVXyImDjs/8YgRNHHh/f/xxSNodzMKHffjZsrj2psdukymUKtCfzEZyaxaYc73gMUiggU0u75CgYNQPn83z15Vt7wQQ1N60Yy/OtONGPqUVAed0LHkEYsDxA+K7qqpmxNElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwWyX6vcv4nrXUl5vJXxBloI242r8/UuqjbUixlDg9o9X9KoSfnZSPwnSj/aWpbvXF3sLhu/CTziiBdS8167GTBQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAa+Yt9w3puWJAfThSQ3oiUJqstWQnvlFFM6/HiZVviyWsXcdQoqLrGTa8FtC73Ebw5pxnT+kv1fWmca/MbY/1KiBsO41d1o+cKIQh9bET5jKV7mj3Ur+A3lnerC0jjWMqTaSW/GE0HD2B8/YnIo47r+sFPAzs/tn3YdkzDbzzShIChZOHKg1U2GS24uTvWbLmg8375Yf9G/+d+dkvmHe8AGtq56xFBOvw6/VHQ0Mnc+Snb1ylo6FZimGYsYc5R+/yXq8Df/ceAkHrP1Lh2JpLdseNeu+60HZtwTol/4RS5dmFSZV1d/W9CVN5ESscod/vfnYxKHTbuTBtHpLDto+GbISh7dB3sf4xPPfXDjZXWJdDs894QS6It+G96yiFCvxEjg7CArAy1Ph4FxTcXYMfyvvH9wkEB5HUuyxq5pi2zqV1CmK9aG3+JviCCpSqWHe+P1/9G0OFM5WvvpS3zPAxTYtee0hDF4MKpXK3ji7EQvaBaNHdufgZT+UsSTDgn4mhnR0rA+kP4A2NOITnAV6LblXcBIPiHkhWx2RCVZwDBenLeEopdARWMckOSx+4oRAiuCCpPbu39Bn4HKOht1wKg8v1//ttwAzu/+HGbv/rCx6Xezx+FEwx40lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwvely83hzGBnfPcusjROFFRfXSwJrgczEt24d32eqLmTF/b9xhfaAMp8EaJp91MXNPGV3KRuH/sjVW/+Lcqk5BA==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "10844CCE10EC7E3E19C7DE23DB3F4CCB1488BFC50447419BC58A2BC6C222FF50", + "previousBlockHash": "E9354074C2C737844F435D4B648108257075C3F1BE949050350C739A540D4B03", "noteCommitment": { "type": "Buffer", - "data": "base64:1wIKyYXJr4YyyolkdIUslTUpzmsN0c/DvlJEG+tWYxQ=" + "data": "base64:A0cjBklmcrpYIsZHHL11GzF1D8lihhjAFAtuO4Sl/Uc=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:AZRIJ9GzbaVzLM62xKzmJXZIINmhv/xCC6RbPj6eGUU=" + "data": "base64:Xh02iLsa1q90+iuPk6xtbvqqgEv7sLnH2Z6Fby8Pn9Q=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551080399, + "timestamp": 1712340013959, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -924,29 +924,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAADWrtljlpekjFrO1R4FsoP6CPA1x1kHKjVRbY7K6BDWSoRUrQxZrKHqXGqhkcVfpBKcvzx6hoIw+XltuGyygMK2w960AgSXi3t/+jjX4t902VxZxC7rkfxuO1mLg9fblFbqmsLVv024VvdLfCwgFL9mvaCUmaIuYEa/Zir6wVNIkSYkZbClrOGkQE+rxeRBI+HeOlHo2naoQcRLXnt2IdYmBInO00LqosXHzLSY8JLBCHDXAyKhh49JLbg7iLLJR3h07lOCNEomfgWZW0dffmOe3yWm4+3WWnwukmuknaK7Xfz+ITgmblM+UH/B1auSZIRyYn33F5koVmSL+DXSCa6lGQvpKPUYwHuBUC8ecm7toB4DW/NcrJTp1cwTAKQ1Bh4+k5DnVtvh5YkeFVWxhDePdVD2M3h0nesUKWdySNaw45w+gdljQFU7zuclO9VkNlhDknE1qDIrKh6VqCbmdH44pZaP82T56Y9tgCud00BKxsh5coY+RlB611mN9cAUCm9b5voHlNJwYByxIvTMD84ye23lI7MHHuMzFXh9wIDO8cci0JxUShqAWyBpseDdjHc73zGxB4xE9+QnLtvLab98swDZ1RZzy85TOBS3KM2T1VI0z/QPWro0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwtt4tUGpFWNH2XhJB/IkhOLI0XVPpz3wI6Zh+YyZKz+Fv3kWq3gDeX7SVW5msM7Tw0CIbnxR6fisfKwMAuPmYCg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAA4GPtKhFDfIWPaGDAE8T9r0UxppVgWIWcup9e4xzdra63ohypdvInkOwkhtbrL3/8U7qCZkKrhIXUeUBMTT6zfvq0ENdAqKdXDcryeu0xW42W1877+xLzws1ZFrik7mgn8yx+9vWqW55vRQ7OUj9PpOXr3CvdT7GwxG65R4meGjoNYAFP23x0+5Bo3jpsr5jVYUTsLkfTaHlFixWaj9xP02fMJ7BckR20CdlGFQP+qqyZQO0JVXIBNtur7f2d4rFbFLOETHTy8IzEmKqf9Kgr0CfwZ36xTrur3QYR6nTmri5sBNfr2p9sYchBr31khZj8Gr73pTHKSG1YgV4nWvKEvCmwwKFDt30AWvrXWE+98VvEshhby1okjQpTzr64DL0IzgdG8iicJbgV3J2OAMpqaNlQRfQeCQxpqsOJa54MaQLyDP7wW0IYTLMNzym6IxaVudD0U85PSkimFQxVaxLufGPUmaM0HaqYUI8JZq1AxMLY14OqOHAiaA8LdAl2LeeNIkaMa2bVQk5cMSzQZlrX6shAsQ89fy7gcE2UzmqaY6YlM7kcCtX9E/B/t4/4+KlffewXn92Vn+v5hZ/BGuWFIsthe26+NH1BaSFj2qSJA8Zj5cjn/hqtFklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwczukP5mUbXJpnRNecpr28rtDLQix7Jm1CBtwdIPJ5TR3KFfwQiRucXCUyybPn+ZPGFCgEqDTGA7cGJaD2D1jDA==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "10844CCE10EC7E3E19C7DE23DB3F4CCB1488BFC50447419BC58A2BC6C222FF50", + "previousBlockHash": "E9354074C2C737844F435D4B648108257075C3F1BE949050350C739A540D4B03", "noteCommitment": { "type": "Buffer", - "data": "base64:xLWfTDg6xz9pbx8BNvXjRXLJxM9HtSM7XS6mxCsnwCI=" + "data": "base64:zxh/dfq5NnehvvNjEZtmn6kBqS6lmsyn8eHtYZlfkUE=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:Jfprcbhi9XzngDavswuwrGB5Kx9H+2TH0TcUW+nHQGI=" + "data": "base64:7kVZzCanQMcxMgib/DbmwaA6LjfvvN67kWUOVGQDOSk=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551081680, + "timestamp": 1712340014254, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 5, "work": "0" @@ -954,25 +954,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAsHH7+cbXjHE7+Z9bJWy6lIDM2b2NuQjBFyRicECFh2mZmO/6joMK1g6g3trhztX+ia79dsM4H2PC7qFHFbrT7p+aN4vEsybkvITyYhQ0OEGr3hAQ+xldqqeLiyc7m69NHsdF/M004ObxW6ctY9xVyb/sE4MLaaJABvp6IqHbqd4Cd5Pfhhz7+S2aHJ0kreFoa2XHM3U/HVBIvp6oBgcYgIedufaySQZvmd6UBIGELOayCjIgJcQcgswr4wxXBA2zGYgF5LkpOg30uUfcfEfSDM19klSU1LqCiC41+uWj/au6v98go/NBNKk2OiLIphspdiRAv1g0yT6HztJ47jlVoQHLU5EXB6PXv3RZTRu5xQyFeA/E/o7Ly4NQ84Iq/vwIu5yTlGtR5yRQsKadpKvIqOXjFoIhuc3Peoo7VNKQ4MIdJ99o6OUsqn2iUuBj4oH9EJb7nwUnG4DerIjoRhqUcSZ4fl5/YN9/p2EyHAtkpvH7nH2BCYhAkK2rknfuoWzDdK74ca0kQXLhDBJ09E9rRSR0JN8brXjW8bmUdM25p/aMKglqoggsMdcJYmrMELCMfr/YruOil9G/RadwP7N4ykmHdp9pV1/+mgo+Oy2Hrbwtwcxsry5icUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJSsOx/G78HD8sZL5SxyeOBChEHxLzCn0xBBdFhGYIgiCivs4/Q/n0Fv1Ju7lvRjdrHC92aaHZ6mkvRyY45F/Ag==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAutEiWLjHkBsMvmZDT7YY+nkkGhoseS77sXtpOyvTA1COG6hjwxCQs2+XoU3KBQWDilrOsuy15ktYg4fU4vTWxdlR2HUwnM5Yl7MAMlfIO9+i2G2lZLpCxP2OpYZb6BkZNY+JBSlfU4dDvOmW6FgluJTnc8DZGNWEK3DwI2old0YNJ5VoFatbBa8N1lviYLmDUS+twxeYCyDGSGdoPltFjiLOETKGKl6XXp+COZZHy2KxoUnZDQxG6gbJyZ2g8q6JFaBL9NUtxBOd982/zVCouNa2bAZJKz0ORwtakCDVvbz5+v8LLpWPGPrVvJsw6pv+DRuy88ZcyuHomvAkS4hYIq3k0OLo8KXtLKmp1haS7M6Ae8rSSdST78yZ6XYkys9zl186POYUUAjJ0hqJVwQiQNMtYNUNqejpEH4yEA8QFOnLw+3TK/fGoPBu1U3tpB8QOkNPx/D25OvkZFloj+UNuS5UJvsll4Oxu0LbblSmM9W3XYGAOi86mQ5MrJyI5foGgmoCp1qVYID/TzmV+r+fI4fHZTKcRm6m6cXvkvjgB7769eg/aqThPpOsIwr5HknLjuo1dYAJenqNdTSJMCXz4AvS9utpKMLD6X8VX375/RYh2yZL0SsNqElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAww6CT+NkAXI13BDpqjuNkejwn2Svc05DMJbhF8GOIPi10vOcerwLWREECvBK4LDbRWplNgX2aDjT2Sqf2rfutDA==" } ] }, { "header": { "sequence": 4, - "previousBlockHash": "FE67AE6B5E51EFF8947967A384C98ED414CF321FF5D7B70A8C0D3FCAE77EC6F4", + "previousBlockHash": "658C71E431D574C7A3572E7F2DDFBA6057B39DF2D9CD66B012E44536F6ACEECB", "noteCommitment": { "type": "Buffer", - "data": "base64:hkgZELtQE57OTU5Cbymxq/d+/WkIJsH1Eyl6PoffXjc=" + "data": "base64:0fhvyr79Z2ELW4CHuUOwHnUCeUM7kyuVuMbvtF6aWkk=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:em37DB09YXcS/CLWbt5eU//aHo2OPnsOAgoQHaVu2UU=" + "data": "base64:OEo9R9E3OopnqMHHq8R2DoTqnZSDpkNRpolzDbHYE1w=" }, - "target": "9237815341750015092140817300043113376661752366206318446334046747329935", + "target": "9228823284279306817296266184515742822248210830185427859262273659833347", "randomness": "0", - "timestamp": 1708551089067, + "timestamp": 1712340015695, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 8, "work": "0" @@ -980,11 +980,11 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/GvKiP////8AAAAAVcb0nkYnv67RRyu8DMJ6z9+RL5yX3yy/k0FEM4filYKTir08Oehr3OEBB+hv+KkM7e7GM07B+HGnDrId+mnGPPfR3Fyitz0lqShsN0Sjc0GK3aK5Lfk5vs9DFYmDtP99miwLL5knqDOYYZHw2Xh0K8P+yKE3zLkSW2Laa03BhOkO1jo82pYhUzaCnvHnfRK7wGw0b97pmymulwGeic4YCb5piqtM/Ui6y8BghS0sHAOFCOaO9avoJXf8hWCH4/CCbQnxZXIpndTjWUBN6D+O1+FjOOzMcYskU6pp0WzGsEuI6xrrd+zLj8+ypkwE6XBJxdJ3XuVD/j3nxTwYgYnDjtJl+BIMeyceMF5nEdT8A0+6F7+zbW1RImyJjrs68LlyGhsYMwPlr1DXHNCcxa7LQQMDZqrlqZ//p8QtkDrWpQCALyeNrB8ckbJ09pQANVSU+31h2mKCBtenX8vbho17RqrXe8OWwNBB5otVNWi5LDkrUwbB2hGcTJLq7lGCjzPfjR904RUCNCYT05T+iG59uNPRG95mLWrrEDVckH0Bph7gKoRL3AdRRP/RhaoY6EnnmHeI/OdKQ6fUVOXSdPRWpt5A9/9axSLiZLx6nwW8rIIdyrIr65Ho10lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwFNqevHZOHOiWVXPJDOLHTZf5tfZxNt1Kac+TfN2qAqeu0vBbLzpd/p4Gra5h+ugRe+rEi44jD570XpDvQ1s2DA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/GvKiP////8AAAAAmYONAA7d6hi/SJa292clsm5Atr372w/8YmI7ViujKCigDJ5a5aOD21eso+Tm9GnB+ENNrQXu7cjBHEGjLGi24pxTK+NhowfV9D3oVUsUoGy2l00bXakY96vOXzuuqdaA9rLbiSUey1bodDjVbHwbgi5VxKjogij4kblsr22vMwcWBufkStYmEVY0QxkEpR2G6fxTF0hZLrzDCag8qbG0X1wduqr6WRmS3a+wpNnajvCZIMJL7meaz0Vhj3/d3z63u2CX/WpR7ZyfyJUpm0D5hNAanklpwIveQoX7shNs1UT3Admxn2bCYVcGEzeXqFmVCJFhRP23J9gV4bX2vNWR6KqFzCyNKoNiNEoxnTnumitwUI6sAs/xd8BXIF58OakG8OCCON1uUZoSRGFNopnILem/3T8N3OYZeofCOKi6McUX6N/kg6cS5ClP5R06Re/76Jhb7YqZPW4SKym836t1gIIlcuNjHDH0FCTbvAiZXMgEAEcrH01OzHBTI2BwfvrkgQjCAUaSsPaZX8cw1IRvVHXhmYLCcWU9QRedECJup/XVv6s+ZNiaHhETPjHJoG6oJZEjxO0qQk329WWSxk/D3sX4mqoPyCEQfSfsQhX3fhe5i4SotmRM9klyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwWOal4gQOuE6jc9K6ZEzhxI+efg1Z3k/OwqiG327OZCdrpdGH7JWifPioWyK3naF8xpJx/MK6Q9tIRVM6uVEoAg==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] } @@ -992,13 +992,13 @@ "MemPool acceptTransaction with an existing hash in the mempool returns false": [ { "version": 4, - "id": "b3c420b2-748f-429c-8fa9-6a0663c63b37", + "id": "a2b726d3-a55c-4f3f-8cc3-5a600a8aae95", "name": "accountA", - "spendingKey": "21294ec2c16b8f6875896d59a43d94be5efa03fe75ffb0135a7e289eb14c5757", - "viewKey": "e373f853a9b71a588a3272a8f0183147ca830edac04afd3b9f92955798f47e19d925a2a16ceaa517ac77579bf1e5aff872b6cd3d526c20c3dd01a50cfdac0025", - "incomingViewKey": "b28dff0c4cfa98876fbaa3e286130cb52722d2578f036131bfffa9aac9c1a702", - "outgoingViewKey": "77ae7f255a2db41520698d3cd68a9d25909bf1bf6b1a06721be5ea72ebc954b8", - "publicAddress": "7b5a6293a4cef8e4dc1fd34aee1d1f68db8baffac3a9833ae7680598d7d4fc35", + "spendingKey": "6393243fbc15aa84334ba758661e62873bc045caf1f3996872c54aacb5b09284", + "viewKey": "f95c623ec9793840acbd463d96a9fca16b36d6eb9da80e1939205113c9837a9ce858d035e8369400d68f372af8fde311d6b0be368a3ea4fbcacc481681fe53b6", + "incomingViewKey": "02907ccb7bde78c608b8dff16a8f77dfa5cadfc7fd73d2ad3a61b3493279eb03", + "outgoingViewKey": "cdaccf75427a6487e489789e6a3bdeeda7eea1b4ef183c7a0212fb20d7eb13f0", + "publicAddress": "e5845b6c896a2c641041fccdd4f417712bd067dfa491b03c440de289f96d7e83", "createdAt": { "hash": { "type": "Buffer", @@ -1006,17 +1006,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "4e11101537c0ac1901934ac1111b5dd0432c57a6afc21e88ef1196c1a34cee07" + "proofAuthorizingKey": "3d16a499417694c39bfc7eae9ca01eb0b1e8fa9697274dd87705792b6f741805" }, { "version": 4, - "id": "49b75b9e-1c9b-49dc-8ff7-9363ecc30e22", + "id": "be9ed4ae-26ae-4c00-9377-79e1fe3944a0", "name": "accountB", - "spendingKey": "d3c2de827908d30d212325f2a013d9886c260667d26559f5ffcd125a9042b3d4", - "viewKey": "58842ce18cee4e237db3fd836cd158d9b0b936f6ad0c2d1ef2c6ca2133fbe315e69553cab823a9bded8193da90593b6f7bf449bf02643589cc794f48fe5c1911", - "incomingViewKey": "7d0e038cf22ca2372e91d6de805909eebcc3f7b6d5d51a1291c2cfcd35aa9604", - "outgoingViewKey": "3fc24379de5b1c24fd7e9dda1b01c17198bc310fdd0b960d583d793ec513d2e4", - "publicAddress": "8e4cb859ce418597bbda3cd16b80f70c60728e1f2b1ba5bff177ae5daab79f00", + "spendingKey": "45c4cd8d95ba919c50523275453950902bc5d88d2a93dd02f58fcc8540bbc327", + "viewKey": "c153cba2f9d304f65eab62d8cf4991b0c4b86747cd2d4fdbb1aec326f815f68bbaafefaa8f378ecf32531a958e0535eb53f3088cb717da82acb7c97d9e0f22e9", + "incomingViewKey": "89b4ccf87ef2cf04ec17f2f0b10766ccf9801b78ade79d732e6e10985dcc6e05", + "outgoingViewKey": "77469d4efe6e1fffcb54ea36f036b4d342e73c27ccc97ce6c10081fa038af27f", + "publicAddress": "79981d8ad533def020c29ef2ded4d0d0371d7f5b3b397fb9922c22583ddfe621", "createdAt": { "hash": { "type": "Buffer", @@ -1024,7 +1024,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "ad1841f6d97fc9ceada4c433031098d125d0aed5a6cc475e49fef8e9a5783103" + "proofAuthorizingKey": "1661402492f0cbbebd6f296588f725b0586a35ddd90e444cda6459fddc126405" }, { "header": { @@ -1032,15 +1032,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:HNWww97WlvY6vBkquN0DlvAU98dI4Rh9a1pKV8/emzo=" + "data": "base64:lVAcY/0JsPA92U7h6x0SLeDog0YUv9i5tMq2h/B/0gc=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:1TC9eQB0k6B+91dLPSVpSfCI27i6VscChmev8eR9aNs=" + "data": "base64:swTqCbRsIYVqWtoI5FkTBdyQOaLsdbYiU80arMzM+C4=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708551090331, + "timestamp": 1712340016072, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -1048,25 +1048,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA3D4Mryjwoq2TZ16NtxIbqwHG8uLBGpxIAlTb0bmaPWu4vPNhvgBralOf8C+QpW3GRhAgkeOh4ca9nVKAyBQGjCwHOTADJcgc0SwfIR/b8+eERyldAwQ+Ua/anpbqZHycZmV8An4GZS90YSO/RNF0QLY8HckX2Jc55JCfEuE5ouERzWQ6Ilq8D93OiL4eD7JGYMXsmQ9P0+ziNiO3AX77/g9TsU12KAM+0oVxlFGXVXuE+Rli5Q7LCqd/LaBDtQYdX9Z0Aucv3IBgsNVhSrgPQL/J2QfYQvpt7HzhkrUc3x2+FxM/no8vqQtXxaGZ5mfU2WyHDngQFGb7+cZfN4inDATtKOCz0/7lohCXBJOu6JYsx9wZD0HhCDzYTycU6ZQZ84le6HQxab47xUi8Im6SGb5ph6w/esWf55qjJe3fuVYRAf5yFs08DRE1LyfoKShOVNI/v2DESyIIoPVtrXB7Hpt9EGGLAWnTkZlkkATMYgfp6DzRk4Gh+O6EDwaekoBHMvS/Oqbj4xBRAqyZhphKso4GbNTBjEacVfgIfgl7Qj4PuCN4FxjW8s3ueBwE4plo8USrFgYoih8+cxNhMO2mN8r5qUdqkrvr/4Ckg74rJZ5/AWmuwK78D0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbzNFgR9dHKYXVi3kb14uQWd/yZH0MOP12ASjOxF+s6J9bAU4S9es8Yslgg9T5RRXQ98oqdhCEfQWKkA0SNAZDg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAApsRjI0/UIkMplbJCbi9vXfExH5mYIKXIxia2Fbp2lgyFMgMzwZ29J3F86E+v604DkrzqFAjzlwW5j2Lt4aYf7SQlHr6dtDwtjbMvHkjfG3yDz032M5iebcc+u8unA9MNM4PmCZvI0yvbSDRtHOuBiggtlkvKfrh9tG2SB9wrGfsGYC3BKHuCwLG0Dqv9f/YErnKW/FWyCE6vfkQoOMYIl/1Osmte7i89mZodfT0zDH+Ze1SpHL3jatQdwveG3bmROIs96kDiGZ9vk81BGT/GN0rCTY+B9D4iZR6JCmgAFFurWdjV1MaF4pwUYQwhQdqRIP8kOiPzKAblQRRI/pgmSnJMwmokIJEp8cezT6EhiF6DaqDbzzPe1pp4Mz7FumlNc5weyS5sY7OYKZvWuW0Iy7CXJSaXVSa5WAndIe4RtDR5vAKd0BBgZBJMPibHtnD64uvAK3Gyzm7/r8jBASlLOB3oCQnL4Qqcm7WTbTyCH+16Pan24Md4G8hq26XHqFztlYXQMt4g0r06vmaG3KjfJEaIQKf+3ebM9DCibpcuc9NnSn1ckZuv4N1p3W5qnWZY77sehX3RpgApaTBIAg3ehqXLOvGFMzSd9UYpoVABxxKYX5xulrXfzklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw4o0vq8lvTa9EN9g8E7MW+gOKVJxfseAIWK7NnGodHRX+yKfcCnW7TeEl+hyYJ9QRHO6ZCzXK/YG7G3ZCFry8AQ==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "D5A058CA632000F4A34DC549616BD5EC01A94B2821D28ABCF26242DED1EA10CF", + "previousBlockHash": "2093B5FA8561B8ACA31227FB01A8D62273045416D9B5E869935D82423914A594", "noteCommitment": { "type": "Buffer", - "data": "base64:5JzN86xuiUJra5O/gzkOGNZCxlFJIqjaR2KHxvDnvEw=" + "data": "base64:XWRYf4NxRI0a1aZPY4KqtmxNlAZFUN0Avb4UlZH1YwY=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:pQK/cdmjdwiUKzHbURGV7gDlK02t03SH4dGAnxo8lpg=" + "data": "base64:/NemSmMttofNj3EkrsbhPrPudnwH24gPmHBzj1ellwQ=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551097965, + "timestamp": 1712340017534, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -1074,11 +1074,11 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAA/GlO/f/OKQFYoRqOKY3CbWQrrrFHMLPTY9ghfyWDPlSWWRoidaDfqznKQublO79WGpuX8FKtTZatCt9PLm6FmKomgZPtgzcGDJt2ROSg392igWo9KPNshdjkJMPrQhkZgsMKS5ko7cH4iM83dYJjuhCgbyLDqpSZrj1TygQj7RIFPOcXmdr13OS5UgJTEYhH7qg/4IHN4YZhXHFKuSEDFQAfaGnFHYFbwDd8dC7j0O6MOyYCDca+LU0P6EMcex2RE3uQM3o76kx7tBZMsGPyWoVKo5zYk9tapgYxjjwG7zIaN/VifATR8SkldAVhQBbAPQQ5BPlImemWxR1zCYHFrRweBr6jZw/YtmaQAYPZqFd+fQGa98NlvbR0iVAczOVw6QmeacxluhCSbdgSXp1953O3DXKEkHTVPrDlZ16/yLbvc38mBwpvnEzkV6wVyIA1G0DhSJqxv2U6awjlPqV5OGWJPNOWEFXwMfapy1869dcwwZi4WRSfWfrSD79QlZMYq7DkUImR22UQJzlTQC2uma50ZgdoBQvtdpRsH7VFgJV9f+ELoduQ8eds6dQgn3yLf/XRXGV9n9EDzSUSI5YIFWgDoPUA2msgpMYu4gNIbi3UMzgR3YhlZUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwlhgvqhqmN8xryK2DDF6eOH2l706/Jh0cSR7352V0j+axf51z6EvmZ8mljfnaT6h7iquLrJmM4xxG85kioQ7uCg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAyXzq4bC7fvosqHoRPpyy2OtX21FGt4lCpekzXCMGWs2TlU7ZkZle2vRD41znrg0gisvpIpTMn8gRqSm3qYVkaWPozOF88dvXngNQ0O8FnbOOoQaOcYUjnKvXjNoxpiI/YBTtsUArHILKImRtJ7fni9722zJkP8p144aQ2xY3zMYSeyrWo7xJG0dtQZgticeezYroATM5yyyt9Ds6cu3aK1ayqvrSP7nJq1SjbaB0zRaQfWrUxwIBI7hTYbFe0yISqzvJL1o8uH6+9eZzGan8FqqYqxSG15VM4vmM82kmhGYCu4UTGucmuujoUWjL5fFdHm4C9d/prLG0UcTW/SD70hNc7jrH3+Ijn2g8MEYkAzztoWy0cG0IB+roXwcndYRdRZxyve4kgl2TYDxvUCKEDWVjZQFVDMc9CUVq2RjetEh3717b2q7UG15aHt4WI21taubCMj0HIuCGYbsAy2NmG/Ew3C1gQd6zeTAp+uUVM6aPuOR/nP5jUf9zRH5nEX4/Op+0t7rMkATDFTHJsq3VCl4N7NidhY8LtVUhXZoZk9aFTx1qYK5p9VSKiVRk54vSySDNapr0k0pe9N2vD0NYygBqv2/twEICeAlORoknBsqU4PE04VBobElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwV0vFbNSBpnJ4SuzeGF1xeaf3yiLh1Y33/lPWXOyXaqgb5UWnonWq97OUfDGNSuqGU8a1SHOiqF2T6eSpLfXfBw==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] } @@ -1086,13 +1086,13 @@ "MemPool acceptTransaction with an expired sequence returns false": [ { "version": 4, - "id": "66b35de8-ade2-4eea-9f9b-e3111d18d5e4", + "id": "7591bc11-37c5-4642-a99c-936762c35ca8", "name": "accountA", - "spendingKey": "2bd2a758ee28b43e677c35b65975e948f188b74b20a892aa51a2b7fab7c8a3af", - "viewKey": "afe67a04cb6deda9cd98f3bbdc6c6cbc3115a2c474a1bef580c4c9587deaafd5e08854d7a2fec4469477e14820629fa8b8b04bd5b93d8c0bba64a0f73df0626c", - "incomingViewKey": "536651185f365af9d9d4a829e6d73f1359165d08d68deb84050f4f6ffd5cee00", - "outgoingViewKey": "4acdf398706661eb1fc6a0ab96ccccbdccbdb236cca7ca2ce1240c46a4f82cb8", - "publicAddress": "cac1755c82b5f220d83edb0113052fd93e1a31fbcd05e7b58ba11438998b14b9", + "spendingKey": "6512df4793b5b98ae78e3f705925083356dcba09581e19a3abbc5aa4020967fe", + "viewKey": "c08275f702d4cbcee6291d87c5ec0168bba00dc6be7ec20b918db7b8c3120349251f804772beda135876fe127294ee2585b40406bf4b21e2df29c4f634660608", + "incomingViewKey": "e42f5e8ff2afd7e28e052ae0893ebf2c441f23ab4e290b9f8ec17d192eac9102", + "outgoingViewKey": "0352b3d339b50731fe271daf88a9de1feb130f7071ad4ad35428f9b9679fb8b8", + "publicAddress": "7af230ea978f5a022efada7219ba23826a4559fe913382b5204b44ae6f2bc4da", "createdAt": { "hash": { "type": "Buffer", @@ -1100,17 +1100,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "c54dcddb3c1e35494969ebf037abc03fb8d28cd16570e14918d34639fa395906" + "proofAuthorizingKey": "b405aa4a3238a47311311e3b3a76ea43a62e7ead75902a560303baec37162e01" }, { "version": 4, - "id": "db5e4318-a40c-4767-8bac-467d67dc706a", + "id": "45bffad1-f708-452f-8961-850acb29eefb", "name": "accountB", - "spendingKey": "350e6256d0cb5a1f19a3d1f398bb00af5f1110377912f71f59de1c91830fe2cd", - "viewKey": "c1a172aa220f96c63caec46dd5b2a610b2165d465fb611746791736dfe0364004b104999b10092903895bd9641135de33af3187b775c6b3be90235eccbf13baa", - "incomingViewKey": "532d1a281d6e383d350709278e6cd49895348b5f906859b75e54e15fb6469e06", - "outgoingViewKey": "06b18d3128b119cc7d4ddaddcc8f3aad91cfa06dcd0ac6ce006fd823e55cb437", - "publicAddress": "88a79bc1a7f60a2becb1de058e7ea25dae18a424c6a2e410d9235c1e3d4b6864", + "spendingKey": "46f250e82194edc0c397594081a4c715fd7f9b28df3b83360f4c81641f656fe7", + "viewKey": "c3c300e4a9adeec0af35fd533f0674eb1f4f0ffc5fc06fbce26a29f47e9146bb2b3ffda6a8109a292f47f7a094f130ac45f2f9357c5610be288fef137a16342c", + "incomingViewKey": "1a24ca308c811dc982eb2e5b804a18a82725ec91f14cee2f212c2602ddfd9403", + "outgoingViewKey": "922ade6a042793783b4ae12b432adb11d8cd7d986b12845270de98cdd80cc53e", + "publicAddress": "1c8f1bc253874709d27bf8beaf223c77e62ec39617d0b4349b1d2ddb0c80be48", "createdAt": { "hash": { "type": "Buffer", @@ -1118,7 +1118,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "caf6594654bf8be523d1576d863bf0e6fa61e544593d21f1b35d775196a0f903" + "proofAuthorizingKey": "7dfd46c8983b4c1c4b33265233f70f884f853ba24dd5c38ea24e0d53ba884e01" }, { "header": { @@ -1126,15 +1126,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:l3xpMNINTfWiCxUM46W1rRbV2F/IcvS7E07r3RMORQU=" + "data": "base64:oKgdUfpqvXs0v4Odb17q8CUDTzu6HZzRr3n5UBqw3CI=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:Iwln5/RH7/BPPWOTFGDQqVxFfduTGRSQIiaYiFtwilY=" + "data": "base64:+n3y2C/J1sCtRXnr6yhyjwNPGReSpWTwwB1qjQt3co8=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708551099877, + "timestamp": 1712340017901, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -1142,25 +1142,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAi0vm0ZS58C+Juk3I6Bjntji1BxBeFIcYMPgwY8YVaruzDQMKD/eUudIlT6p2PBXp1e84Co/lhI3l5psASeN1uBuuM6HgKAmAsax7lAqPnVuQ7mwEDehebJS4uctvYyFWrCVJlsvdmAEKK09wFwybzZShXypGRRdK8SEyV457AVMQeU7FOL0huTsAm90q152m2+TRbip0ZzFnt2NKlrJNHZS8Wb1mOYpTxwIcPySEf9Gz4/xy87m67gqtoD0ZIM73odsp1TVUMc2uqSJKknnEbUXg6uXRteYf6Wav1GxTl6PSi/FYsTT2AL6bSz/5fuDMMJIyTsg70Uo88MH1Wp9mShDiBuADkg4Pi5Mqhc/m6Rk4lr2UBkc9wdiYlGsvWy8cyY1PzYyt/ahfQD2hQwL0WnFgKSQmJIkGhbXYDLorojdQsxIPit/CVyRFvAosbAcPw2VoERlBF3qabc83gDPaJ3nLAdii5a70kTUC6sz69vQjKsWoTt1LIa1Ex822fUe0RzHXMKTYskpvTBuKFfCN+rQopkJuQ/28kK9vFd1dH2fO++/jMKy8A1cL6gJ1OX/bBg29Vgtg98sUUiOqy42ZAgpfyh1SxjUcRUvevaogd1RzpFrOX0WfPUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwznASIc94ww4HdY36XP8SJZO1QDxqzz72NY/nlQ8A8p3OCVBGjr6EyOiLBvuUWHrC/FFVPxtEtJlPoybjvY4wDA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAaDsKeHFW6ANDXpn4zsLMzibeBlqmkiBRijByUFXvjzqVT94T1o54bVFtzvTuF5ORNYrGOz+y3FxN/5gmXPuwE3YT5alHsX0HLG9ggMe7yRKCB7+mTUd/TI+LuXuzWPfTYIIdShJB2q5MobzsU+vkUsMxiwbIUjgujtJX//Jynd4NtPbpC68W//nqIrfpi8P/omubmHbORB2DkdqB9VbFxGcNJcpc3u8ZLuxjwXDtdGGvHFMzx9pDTqg7RicvVaC1Wm63xsOGTVh7nZZsjRLh0pKNVMt2ZcWbLhgWaGPJIZYKm+HMTnekK6JLOHpX7bnw51/1NtgfUvnrdcnweum3VOL78eCaS7w1Y0gJ0l9X89zZ0lTT+MVOxLv6EBBJo2Jbid63D7w7C2Pnp0W/YI5yg2ppooNqLEOIEZA+QCNA3ViVpdQKr9Hfj0OIB+cidqxzyOmYgJJCVhQT7jZ235ipzzw6hlygLzjDrLi/lYgVy4WjoQ9azh2KmO+sYaE7CKCorGiKI6V3bB74xHJ43mmDs+T94Jqs39xAqjot69wil+dirBBAvttwJGcKKS3BsG3Mmi4WSztwCRxjQqGexKVVQX/OY3dBbs4EdMgFYNYLOEYSdwUDBnZrmklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwhMUvV3D1WJ6VAvRYUoh72q13C8SW0eFPgrjld+qDWbHUNlRY+YASbE+fz2FsA7zgBsrVQJHv3N8IR9pzHd1oCg==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "452B67B19E72B5ACF64D8628978688E2FB559F59E08CE41186C6B92150ED5713", + "previousBlockHash": "F16209A8A7CAB27EA0ED526D003A270AFF04FFC1B6564FD8F9E463144B1E4189", "noteCommitment": { "type": "Buffer", - "data": "base64:IdThLFDnHI6Wh54hDt2lZofYfWJhzM1TprFl445Z2W8=" + "data": "base64:Yb0K5H90snqRMBuh3a02xUJ/S5LZ3k1wtuXDkS+9+Go=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:MlwZqiUiTmmL2kaRwt47RoAAjsqfMelcag4dmNsm9Lc=" + "data": "base64:GfN9ZGv9ydjkyTGby9QkSGTkQ8MMJXyXV6b/fuz4H+c=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551108295, + "timestamp": 1712340019355, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -1168,11 +1168,11 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAA7QDNK27+dQS6FgY+N5ibVzokzrNUEckuN5KaIVDcms2kpXwvR4oZojHSq6/WXR/nxmPnrZF1t9Q+QfotBoiRqAf5F9AVWDHwEfr4yaIQwr63YA2P7TCz6MDqzR4toYrUQJ8UxhyJaPRogxP/DLkkL0lMJicS1kgFWS+RwmKZzkkQY22l2dbHqeDArZazhBzJJJC0QXbckoXCjxYQZH+i4c5/W4P4ITzP8Sk/7FDFtRGPyBJt5gMgSwZqWfi5rLaj5g/tIJlHpkWXez5VMgT4aBFEJLPshVwHVz8nYqU5ZfaHf7TaK1zuzLf4FSG6txuZV1eWx3BxAzUaFSwUUkruyLLnltNNc0YDn6m0b+2oKVqWi/SaO6TEifrEK/fyYJVzA+FjRfezbZ/avd0d5ULN8Jfs7c+YvRGY5WJZM9fUjUidXj6sVLKli/keePqwcd6IB5w44K3xyW9cnSHQ2XRvJWSruUDz5f80ebsm1orB1I1FtZ9IDBP45heQB6jYYOPfUnyGgAKr77XMM8HPJroey1ep+keyMnoZi2N9KJgTY/WHICzt+9KQMA4hdbKmcANSXTxNlq7ehEwIGo+M0S0NVbU7yQ/iqq3LPjlZ2rUj8anY13DMutFp3Ulyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwA3KXQRyK8z2NGKO9Fu/fNKSoizVFIYte1repGT0UhwQJ4lH+r8Gna432vHdDH7Nv3JOZ7B/2FeRMBDIEMuLOBg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAezvwXAROega4nNxM/w30cWkQzkWjMEpLRn+f2uH7ASOAXUEikSaOGyhXYe263p66FI1CU5Q69YbnWiOBI+qtukmRhmmUMjgCS1ooqtpgIKSHI8/zozsXs/xWbtEZ+HejX3OKnxQ1btIv3itNLt0KBvk6/Lb9v6k1POEqXksKQcMZSu9xCVnPBwdRgcyHwlXsrFpGlyh8Rga5/vPURG8aTtirVG67EwHRCUCSmHcZmOGzqp+Qc1h142lVYdSZPIM829PEW2M6JI4p4KdriXPpPhoFsA4VriFMaqRAIrIpnqu/UgY9OJ420XuxUlqy4fnrbCm5VidhJi3APtDJoWrtV0RS53q2BdHLNgQrkaAsSh3vsNX80qVfktL9B4u087AuKww/rPV/ujcn9weZphILvOf0nL0r2znwJ9QAWzhkI5H5c35e2JziEd0eCSeeL5QZ3A5rPLOOBb/QFxE6L4UxrT8rmM0kTU66f9bdV2KgfJ6AStSQtl9ZZIyoc1cMCf3bJI+1Ojaq+4xrKLQncGsjXfZfWJdPnnXiKkm+bT3xRaC6tjxHSWYf1o9MH9ZIaWJBlp3xLLiQKsCyGGe1sbX3WiHCe4u7XkcJmaB/Ci5wAjpXB2v55nTXkklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw0bP2SiMV3IlyoPkKaJbg343u9b+2PK0QHrGXKolByCVTY9PWXd+cDc1tK3mlsaOBv6MZ170tBNcgoF0DQ2HdDQ==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] } @@ -1180,13 +1180,13 @@ "MemPool acceptTransaction with an expired version returns false": [ { "version": 4, - "id": "f8d12590-6d4f-4cac-953b-d5084cf9d7e3", + "id": "a3b6c826-3dba-4fc1-a7ac-bbe00b8dd841", "name": "test", - "spendingKey": "f65d1643397c46d15dd2bdeb829d0ae4c1a811c48418297dd7bdda0be373f382", - "viewKey": "6e968682222fb0ef1c71f6e200f62d8e8f5aadea22702efb9f68e798252a0dbcdd617343297fac6bba273155a588731f3520ba3303301d1c326307ef182d821f", - "incomingViewKey": "8ee43dd329603e96c10d8bab5cde2824af71ace6e63b8cc5d8f3e60d128c6c06", - "outgoingViewKey": "a798189b7dd023c996269c4ae8ab0e8a318f6a27c47549a0bab6f1775b1c7729", - "publicAddress": "bec1c10bc652927d6aff0d56c13a0ed094811131f410b5585a20725848851525", + "spendingKey": "3382a409d639aa0a102c2fcf7f9c3648871a88937d7b7d9e8ccc0cf6caee84b8", + "viewKey": "a8b07eb5b162f22bf9e09261bea502f2c287a811cd5cc5efe29d53e4ed8dd0bd95ff3b079d94216db769485c72bb8c6beb7aeb7cc28d6249c01282b166818ab5", + "incomingViewKey": "7cd5f107346447a708cff6fae2220009af512e1f6afdccd5bc731544afec9d02", + "outgoingViewKey": "c51bad96caac4c0ba00a5713a2c96ca30c8b0f8d2fbeec6462cbc9b686b7e635", + "publicAddress": "481b727bcd585dc1ca09253e247882387c0f6f9fec1a9946e9e3afa2a1493127", "createdAt": { "hash": { "type": "Buffer", @@ -1194,7 +1194,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "93984c3f663877ee249d539a882bb97260963cbc7c243a06ddffca3c3395e408" + "proofAuthorizingKey": "a29a96bc143abe95cb51297ed705861a3c09f8d59c4a9b90e8a852a57689340b" }, { "header": { @@ -1202,15 +1202,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:ZRLJJwpCoAlAPvl8iRf1IHpBvkgxjphK6cX5g0TV/Aw=" + "data": "base64:AJfk4sSZuP2KIh6dCg+IKhtWFzdrDprpCWqzFkxrNyY=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:AgNXA8OtPvKrOfu00xGr2Z/jwnyXEIjQmsblll43ORw=" + "data": "base64:qwA6HtNBBtpOImh5cJJLf1TYnGiXV21FyMFynbFtg5o=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708551110826, + "timestamp": 1712340019807, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -1218,25 +1218,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AgAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAmnp09wi4pVagWXBXDignSxfOuAp03Zd7gR3R0vmZ2TKoM+j0DA6uRdQixs6Ls2ukjGEpN28qWQv3bI55kFmlEGQJwvmxFP8bNsIlREfm3gi0KV7d0YmpVOBF3T1euqY1EHp5mRKXIaLvKvGepnmSUyjeubA7ogSKb6/+IOsCuiwFFlnFzH25oKj5wJBhIYKWjxXHSgae//MCyEyg5IPZTBFGP+P9UMBCj4e3bqMyUamgXaMilaByoKbOE3Ytno0pGlcW4krJ48tIoXq3bi3EA2nJgn/zOom04EgzxObDNSKZ0mpyHAX5fXwAiOs+/Acu9N5FUCdibJ7+4HhTd1Q6HIAorRG16KsT1aH6NP00bfsuEEzKyjMCZkmBMbKuXwphNNWqb27RadwzkQ0fW9hfkZBNyC2r3snKKDcVWli2GLcmrprpZ4cV9CIxClKbBcrTW3exqou6uTiQaxAUlxP6khM5zGnB785SUMPjtU90tYcuxJyRmh6ZYn6DtnCR/mYmLx2nZIv4q2iNeEyFxMLi64604GLkuuVmgnY0SNUcoYZV+cQXLwZ8og+TJsD/aVmT13McaVO6xL0QD+ODuoSOFPsAzvM/FSvTdCmqTUh/4c300F7EjlWm/0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJYexdPYCN1M/xvzfV+dJKuWHz2JjDwJuj2jKL24RhcKcLEBvFtvVHSzdj4fKC+IrwGOeCXR6BilIfkySFawEBw==" + "data": "base64:AgAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA2xvrLhkbC/bZjoiMxkCR3ipWry3IEFW/TwNMP9DjZYmWqEWWTAvntDcM6ErH+zGOo8ssZqxmT5n1E02nsLlgYDSBsou3DgG35vwXRlGvVauhcbrijj6J/fH90/jMRUnrSBf5/Z0s7/zv/iAisv9tscKaC+RM0osvBrVg1EpMBQ0Vc4YbkMpiCoIhKafgSJxdeaBQwbkOmXAy/G0EQUTeQbZ/6QU8Zq6ag7ryUUGK4VWpdj37ekGwq77R6sr8nWDi22AT6iuauT0VEOV5oGHMXI3kLlp9wJs4PF2lmMYLc9DjBLrXIuHbdWYMEqUwSmLgqOTitu2bPtoCV6z2yY7fnFdhmhWPzLYYFN6NEYOIkMpeOdbY2JiSO546xwKvNEsW9sKxjv+hmuCg2R6OaTRLfy5uwMQRkybBicvqozkbPbblvMQSaB9yUG4Jfccnm+OetkG+irL5+Al50Dr+X2sfYN15EHeisKrVxK7XeiSPboiAkoqQ9I/iA9IA21tK+SyLF+4MO9BFr8qH0Qb1CaFDuAX4AX1sb99x0eePIhjBalUzKx0LVJB0yLjD4fJeIfE4ys5IM9DQzwGIk5Uw1+5ae0+U3Pi3AlYvgpHcsfkZkpJWQsboQpzA7Ulyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw4mZ74QNQS3+JCaxjUXBTx4OhUcbd0e66q0i5111nUyJdPwNqBn3BEj35c18vcsIDxGz3NMxea9ClW+1FU4cHAA==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "C2EAE5E8E257F6BE4F344D8E5F1F0F9BE87575B6315D8EA373663EDB1CDACFA0", + "previousBlockHash": "37EFB0DE7651D70999C9A7635D8CF1E99BD01F6747A6969620D23DC7755AE226", "noteCommitment": { "type": "Buffer", - "data": "base64:7khdpF0WoeBw3zEYYJordNnSDjnsH5UHdRYvcDByiG4=" + "data": "base64:jntXqP4I8+po+ulkp+k3FyFB34ry6dqjacP9C4vaBkI=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:cMf7ZyNn7/DngslD2kOU9jadvgiUNnMHb6jXlJVcFBI=" + "data": "base64:59uZSS6UjjqPVJhKVa7QeQBNTm8UP43HJ5aOLkxKDhg=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551119291, + "timestamp": 1712340021278, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -1244,11 +1244,11 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AgAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAANdm2fj48JJdO8SeWD7I3IO5B5vN5axE6XTmPHn/dNJ2Dif3h4s+bw/1nhcDQIsIaDpzN1N3chgBRGIRbzJHgm3kUpiTUgfUKsJxa0UIFnYuFD+1lzyc1d3ICg5udlLMD5iVi6lvx/yaMacti9pMIqzr2CAiCxmBt8hQPY9YfOGMA9mpoEMXVK6KM9ehMjNseTQqRnXNmDsQ2ECkJftgMiygILYBnIHjMUFo4/POPUsWjL61Y1CxwkxWd8YKVEzWbDEaXVT1pHmDLwXwEhlMevZgQzI7vdffvS4N6vKkfShnvdMAwXlkQMjC0PouHfiiOxbLrTYWrBT8gYrwCYRBMRv/uxum9ZKBzhsfMsCqHbWRSOfTtzX8aa76AW87plU1mQq9ILXqMHUgTDzwcNrBIZy97sZeJ7Egi/xHa2xw8SEL3oa/4Vuqxm6kijK69WRecKoFhRKJBNZa0Q2pRGk1VAqnZZEQ29790CDEbYNK92E7bgLr/tmEQlKUd3RUn9rgTdRcoMXpx9dRLGyglGuCxzTE582A5B/BjLTntWZYPrmyGlGu8ZYEiJly/dna7cOwnbezsTd+f8fUS03GWzzrtN4/l7jdidTYj3kXbHF2a1Psjd6n4LWWQq0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwojpD43zuvROfQVowBvMGtDvMvJ3PkgWRWnyQBq8nustOaKjrJejexYAgN5ZeCn8XLeJbOraOAcZ1DBjuIHcRAQ==" + "data": "base64:AgAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAay1FOUfj+Kcw9NCAm2hqi/lxmWx73/uoJw5uH5BeRo6qsljuNoTfaaKthwIe0K4MuYjtA3tr52nMFY5KfPXe/uVFEk0K9Jb+TzfMmOULBgGRoEwSsjyMugoqii6w92zt5ZknKnDX8+LVvX12+oAf1AcMcmHsHqel/tgHmlrzqZ4HYt/aLsuoSx9tr7dokR89CVZrx4+hjF/+uqpGqO4fOGOITQbnHbbe/KfST0CGJ4a5uPv+T133Dry4kPpSkgF4skpU00tQN2q5yU+wE5asU8jh3upOhAjwaXKEQhQMt94WL/e37haOTxJwCIGuHkBzBuzE3Ap6GBwnuQMYTpGQwGirwCxacRa0/sjU61104YDYIS1zLM8Baf46w7DntTlDg9KuVZFKfMVv7Thr/B9291VBae/oCvVRcyZyFq42+ZNboBJdC6dq/zRKSI1x0rZbfKpcwyt5t4S5kJwT0HV/XzN7ga0QjF/3aexlSTkhrfY88KbStUre9RIkcjiu1kjmR3ytEtLILZdq55oUqiekGMVhseiOXJymQnojBxl+Dz5cHwjX+dzCT2yZbz79335Rlk2fNrCK9mCxk+u17IvBlf1c39OrDguD2QglXfxI9cGsRKi4VPR4P0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwD5zDnrThvsMWUTCUWwfUiainolD1zktDLsMdCJMlmwpuo6Jr527IeJHvCP9CDhP2aR8yh8I2P4FbO90RppBBCA==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] } @@ -1256,13 +1256,13 @@ "MemPool acceptTransaction with an existing nullifier in a transaction in the mempool returns false": [ { "version": 4, - "id": "abdbbc8a-2fef-4e76-8afa-a760b6844fd9", + "id": "91393cf0-cd42-4b84-92b1-1a087c047ca5", "name": "accountA", - "spendingKey": "7cb04a4757da6c78933f1c63200fae127e2c265bdad8937cb468cb06103aadd6", - "viewKey": "35ab98c115bde25c2b000d5ec9faabbf8e25504a4505f61f719f43999fc4149b319a8d9561a9cdd97befde44b9aba3424f6dbcb9b03b293f80adef0761caa063", - "incomingViewKey": "cdd317171f2062fabbad93b416209563f41cd105d5eb3afe378266b9630e9007", - "outgoingViewKey": "83695f6d04701458ca3cf2325cf0228ef04f467ad4e12fe2f76bea2f280bc6c1", - "publicAddress": "aaadc11bebc2548fd0f58aac91da4400ad10b9ebd695989bf0881e9d0912209e", + "spendingKey": "41874e478669fb4d404aeae8ff77e9656e589bddab4e9876bd4df9417ee12310", + "viewKey": "b6d3e3a5f9fbdc73b49a410be7d2f84ac6a2554251cbb192affb48e135d1bbca3ad7468fb45e53475d1250828fd961cb8512d56b14fcb2131897f0880bcbb025", + "incomingViewKey": "30f2cd7655ac4766bfd56c003b1fcca500e9c1469615ddf22492d6dae53fbd03", + "outgoingViewKey": "97798d302e8ffd3d81ba999f4aeb3707db88bcf034705ebbb981ea86c886eab4", + "publicAddress": "530e0e32d85ead5509ca571f36e89f7c1772d61f610876aaecb10b9da87ec044", "createdAt": { "hash": { "type": "Buffer", @@ -1270,17 +1270,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "35105826192101001e662d3386d1ffce09635b1dd72cd718c55abae28ba96102" + "proofAuthorizingKey": "e96c0773b5eba65e078813be6997badddb0b758329c4db066f425740bc7b6808" }, { "version": 4, - "id": "17501feb-50e4-46d2-8cbb-564c2e9b5652", + "id": "6cc91796-608b-4f68-90ef-7e6fe3ec73d0", "name": "accountB", - "spendingKey": "fba9da63b4ab246dac909790e1306b5afc9241d16ea112d34c22cafbf4d76488", - "viewKey": "30d84be9fa1871061f349bc7b8e1f49431af7276031ba215ee1cf660f13f6546d4aa58accbd9fe0d4f864da095b8c369ebfce888383ea5aca731747edb23a26c", - "incomingViewKey": "c4214ff69d14207848da694e0dcfe92a4da7a375b2867a04fbf3e879906a3607", - "outgoingViewKey": "87deb391012dd5299cee80ebc793a1df2a67f2007645ba1d9fbea6ed12b208e3", - "publicAddress": "7a3e526fdbe4abdf677099eaf3dddc1b8540f759ae41e1465ded18ca54081a99", + "spendingKey": "7b3962318b44877fd930801aa141e1bab59299c202c23c2407bd22726283ddf7", + "viewKey": "56f299ddfa92f7c4a1b581142d132517d4fc0c4ee17af829e2d613a8c8ca8e40361b3a9b770dee798f1a38f3600de88d5062ac30c58ba740948530d356ae691f", + "incomingViewKey": "a17fa68e4d7755c6cbdaa69629696887d2a1173c6068352facc79da8ead03001", + "outgoingViewKey": "e73f18bdab7432f3fb448247683f782e61850fc4b8200711cf9a69797045b4d3", + "publicAddress": "030240bb715f616efc904dca49e36ca7264320391c8e13e4c60cd303422e2905", "createdAt": { "hash": { "type": "Buffer", @@ -1288,7 +1288,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "e81506d31389b6ff519812c360431fc7adb8010668748cde184ab57c8f92f307" + "proofAuthorizingKey": "19d44556b483e5323dd38f5807f506a665d8cc5173fb8198a516ff356e9ea109" }, { "header": { @@ -1296,15 +1296,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:a3PvLI273+bOW4s7MuywYRqAp078miT6J7tXc2cgNww=" + "data": "base64:P9Q2Q/qMm6KchPjKZFeuNSRWMuYgBOtpWnQY7vGRC2U=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:LbGaS5PyKc63uCakkPzYAMwZw1sGSSrBU0Ur63NvWsA=" + "data": "base64:RP9I4Ekl29nUTeug6TTRV2UnfCkzVburr+vvW6VTK94=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708551120748, + "timestamp": 1712340021659, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -1312,25 +1312,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAaciEiuW/apShs8jZR4cNfunWlssO+ekfHxD8R0GgSUCJvOb14DbnL/t8SiDEeXgcSKRDZXFR6PBIX429AXDcKn3BkNzBGaxruOrr/bqw8ruBCRPluel+f5wIvEg4buKz8glmCvf/OYXDOvfB5wuniuiVmkN0Zca/GxvgDFNjhzYQUoWK/BjmxJzChDWrYjDMBFsSNP3rfIj5NRfyOKRJlLhDXqGpz1P21b7/f8KT4zmQMjw2YKoFupeOBL7pbQLkxqcqsGj3BMAgyEjIiTQ3heMt6AGx+/CJX4XjYAs6BKMW9dElXWm7ztcCgZ/IKncfh8dKgg4bOlww7gsvXi/t7iCvAPfQezny51oE0xk9PV6xvWSV9iov1rYXBunnq/FlEyxfAbYwxx1y0FuwXRRZ7M4FPTznw8To4upCVV8jqe9/4wwDOB3ZTn2e/RvJ3D22DVV6RWfwnQcl1mQVgNw6NChQpn0ljx7DJd3tIr3vr3UdtE+mLlslS+Uf6IyvoQGN9rTAS92oshwYwsa6o53ity5RWRhS3vf2n7sm7qzh0TFMtYIx0HalDy7RUTWBT1KaeN/x7/B97bhmchKvRNZi6AcyeDLuAn6w33Yr736SS3RazCGoiFHf1klyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwp5uO5lpB4XnGI0Ftu5KgrMSK6Eybc7oc+ZT8OMeijLyl1FgFsfL6uS80+xdRDtMgvsKxoIMQvVq7o+uyKstNAg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAp6ybEUe3TpT1SiqqMirO7tzJ9jkuguFObAVullxi126xikHes7Zk3os4+Ka4K8ZPASHdiZ8V46vWSlYf6yCN/P0nvxiBvWlahdbs0x/uBCyFtSsTPdZj3Cfr8UtXySrCIRqYR1VchK9Vb0WH7O2h9RKx0ORTiRvCLQPfy3xUFLgVlFPEi/tBd/BEMtivZLSpHvNTufWltcVmJkt1u0Klbcmt5dzfYcuZWL3muYSf3XaH7go34RE0od28ONn/WgPR7glCaPOtm/ixY4YzAqV4dIo9FzIuVzo3NmheFeNghlowofdLk0nJSOfr6QDC1w+ShljKjIp0CrC+skKEQavVoKvr28ecw/VrKyoZzo1K+i3z4UiVqKaHPT7J4GmFG3o61vh+7+SlI/+IYYoku1qc9X3yyjPTt8x6MQpl+uKE0V9z/je+VJpGZ8KOcrruMvb/uf9tI0cC/y3Pr1TJiHKSkXt1ClzMY+nHvBr/Q2nqtHMW8JuoFEuU/QHGCRm3LEgaHYO1RKt9Qe45OhWAmvEGY5XSFLJZq48aOC71VFUM1uNZ9m/YQL5hurYBvgrs29hcZT8rNCyfkaSzhkljNlJG5hBJh07eHUA1pfwft9njIeDzCTn4nENIqklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwwvpyRjt52d1FjZoIzUlfNkVv8J4L9mbrBg00/cTnw5/sILw+9+aEW7RxoROit9a5QkfXCJGTtYUhuxI4npGlBA==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "9A92929F491577ADBDAD32E544DBA5B6DF4010012A0D4E1D2F8C16B1CB2FEC7B", + "previousBlockHash": "0B4B6E3F48DEF49B14C0C7B35DC970DA921C25B72D98E3CCC1C334D4531477E9", "noteCommitment": { "type": "Buffer", - "data": "base64:5mQ/Im8aicPW6R30aRYyihoEfuLG57XQ4ttGQxqqxUg=" + "data": "base64:IW4UWGZwOR1EDZPHWgH9aWKbizcMptaWKxPj1/qrjzA=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:W21ENeZc0NEIrCIKlokHzjhcxikJq/NlyFpvXSwaq+w=" + "data": "base64:m1lOKeznDR1t3LbFxz7azpq80pvWaRKyqv2TrhY1qQ4=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551128746, + "timestamp": 1712340023313, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -1338,29 +1338,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAwYBrydH8Du5lRF92ch0u5R3+4c5RYrp21o0tv1+PbGiBWvoA3VBnRaLZX2SZ8wZDQSuNLI5YzDnUcIA8CcRzjyF5nm3ta5uGjdLuSMfqC9iH/lGQn+/hM0RAxRBGYTI0EGDvHaYddz+mM5gcVzs1c4TJauVELrFmzug46kafLpMMS0ZNz9tnc1KYSQKL1ai5FjnSycxehpccK67mAs9CrV7pSY+TDYU8VwfzLPkZbTutkExJL/2L2MZRoVO69zcoLSBYoDcINWW409kGI0k7Lw9FCoxKfrAuLZSqP5yzXVfmRSCM675OjrlzrTtNh9L0TmVlE9DT4+d7F2dexLGIBcHIRjzXYoMoHdKmh+F5kgPr5bCFvmcceblvMcrAasomi0qCt5w0CgTMsvVwY41pYhoXMf2U5rfiPYS01d9dTuSzzOyvIKuTwgmP4XxOH4MqTYbCRsF4jvIq7mSWmIPBlnXMbQHrw7BTrckDqlSlrmG/HSjwNHs9YkiyXDT8I1QuApVQ/ozmFjvLfHMYV6vj+t52mRC+G0M9iwuRzmlfNplYuauF+Q8p6VlmIkMANieUGoVG6CkDrlIbjPJCTP4hL/j4xjL9B9HVm7IPnljUnCbk6hyB2NXiUUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw+JfHClNdIk2My/0iE9In6xkJ5gGEuBHj25Gj3iKrrQbAmXQOar4ITVf+SDYFolR2LH9DMV3tM7emDI/Adh3pBA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAnwAfa+NbIVRMOSVWV6UED5o142VqHPTslFeJ48G9C8iVG+72m8AwJGzt1dPlzAuiWtP9JCHeo7lC2SnZYEWylBd/KlYMsAMeSodtd1Aa+m+VcVvP1Izaj6S+ovoXhV8ED+VQyePnGAMdrHqNZWR/+Ge9ut2YYQXuo+YJ14JoxOkY0ZSpIs6T2Dvh9VHu7uwJKM/+0uFE7jJ+CoKcY9oPMLki5G4mYp9JxErDJEgpp6eK5i+D+zV862pqJ7MGyImTiO5dr2+q3ZwDDYU4Wt+5ACGu1ne2m+l6+BnICMvl2/gSOZglZrULRc3VGelLw/z4rx0D6jWKW1puWh7WE1xhpVTUhyVgMFJgGuAWKV+baETrpzCxE0yN1UPDlA2/YKwfGO/VvdoiUVKt9ao/+lbyCmNw8I1IPdtRQQO7djZt/V5JKgLwvKxh/vsrSHQoE5EMmjUQoTxzWUehWt4OkH1Ew5C/uxEEr8yzL1jZIX4Ii8kV8e40AqoPXHsgOFdtqHuromcuHWAx6YQxsXSbURIEEeHLrLwLeCfQ8XDDwonZ5WkULPhjMlZwxjsmM2EuD+ZnatFsMoq4YKIhJmXkTs2/Bum/W7+Rvize7P30DIRloQlGx/kMoOEgW0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYjX6rDdMcY8XTxv3Tu0cWxxs7yJUu5dBGIbt6pZYlPBUv0dD3dpSuleRDvf9sqldO/CNYLM32GwBTUOlWzfsBQ==" }, { "type": "Buffer", - "data": "base64:AQEAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAUk/gv5wds7dYNxlguLnVficmLtxpVRQuyce/NwduBJCyo4OJk18cky4vH516XrW1oNfWB3utBy5UG33pgwXpRy/qMAO8T+ivLrsUW/d4RbOOrGF/2L7J+bROnjV8FgaSLDCkRO8TibPevlREfORZOT15fKkANFSCAMe80g371V0Tn/YngVnHDgNmEGmpQu6+F+1ISSj4V7Icjpc+uiEI00W+gH0A93J8w68KDKJWlFqVHqZhrbN8QZljb/iK997BFTgZ802UvdeCCL9dyBLxTu/uMZPh3ppir7i+lxRzPm0HhX3bOMknYcJP5VzXwfFz2iQEQ0KO5c5JlCEtO74IpGtz7yyNu9/mzluLOzLssGEagKdO/Jok+ie7V3NnIDcMBAAAAE/HQ1LTIjoqfGq5eGqNFj8st82iDj1VZNSiAJxO98MHSGsol9J999O42ssNGfXHOnmIslOYJqVKA/BDsf/fTzEL6jM9EJ8vUNUWEeIfPV6ux37WJ5DBfhRmyEQl9bo7CYDq8ZT/2VDQQgDI3UEqxzMpgY8bO1Lao75o6+gpofYF+qFPJvQWvgXDQMV1cjzmX7UqrpZzyHjyO1FMp3qx1YUMUpTPlQuPgqZ963jvJOuG1LYtYIPtggl8rN8G9pHqmA59VHUs9eA7u9/bmjjfRZJ5wpmnazJ2xDP8qsLKw9d6f2rARp6m/+6cIQBaraLTyoObE5Txyf3YARR9cyhzuXzXjPUM5PORs5qDuQVIIhs2wQRXS0gOhtafma4XIFYFjR1Ny8UqL1FujI3fx3akpHJol7uXPPkykYgsWqeYzXBN8PP/GKGmSmihML6r9TeEOpzc++SqlTwaETLxbD7afBLPNHH0ea2gAOFERIXpAAatfUegWDpAIdIKf/ObtD2dosySHX1nYWX2QtdClBvi/7PZwHwM2VBaFiHW5nEagYJPC4+52OJePWiQqKj0ovTydaXmz92JCSWCYn9SJ+Gsy/T7fTHEbxFiThezdKKMK+kVd462IJCyEDxkHpQ9aSXHHdnGZv04ZTcNRNe0OAAVA+5FMEKkOPxfcv7+ZZ+fZBchqghUpNQZjbPuhodqWupdHsou/WVHDA62iDWFxVqci7eIdEVdzx+7rmWr03AI78Hh6oPZtL5qWxM18053NrGV74dDDHDO3snf5fy+qV4k1DjHlpz+addVrrt2xwlZJ3NqEAqJE5YHU+6SMEtSi3l+c0yOLEzeJYSAL42SCJ3jxgqI9gXVUSy9qNge6p6ezsjLteWMIiUQpyGBYx9Oa62xqWWPTLOKqXq6C4ev/Vo0S0KaJ4ON8omr/8eBeKwuwStZFUflJNI636kWCh2fufxhVOe2lwxKmEhT1TMRqSgqIMH/lfznD+C/lwlao4JFtUXu0yx8YW02FJWQ7q8rpHjMzupcyUQDg1EEYd0+LAPrG6EKIBdnND7FXhcVfE3KfNpcwrLJEgzOed1asoMQPTkUDQ7sPh29UB8WElJ9sMlVQj1iTgxiN4ZL6NlWY9VYfVRTXoQASQbBEutWNNkBLlsnkWsM+QMMTDVR1JHUXRvMDUObV5mUmcMKGpKTXVrvNBenFrtflu8BC1sWauebYj+IaZ+cK/UjOK8Hi3Y080p+nEVxYbOvy40OLuV3y7b7uE5UPbZeEI7SYliBnXp0gFLj8vow6hUnFE+X8SmDlLQO9zxXmhg1nguVms+rVmlrHGVkIRdA7p5lenmXqjUJAHdUShSXLlBM+zNZkHKw4kYYOhiiHmy5lpsk8JJHkYRyqEPiDPvlKvQKCUquEecMLIu8zzuZGkNztPKNzOPMuZbq8Ensc/MXUpWFi10Gqw44v1MwnqtCm2JbmqATA07WakXJNgrTTyNxLV5+xPS34oESnQWOY5OXogxS99AMiRX08O221D2S14snYUBPMgwUjbV4BfNT9CtcwXAPjw2KvlPGwtAC786vIDB1lp/WMPVAOCASEUkE1sYgpXXEHX6mQWqvDQ==" + "data": "base64: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" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "9A92929F491577ADBDAD32E544DBA5B6DF4010012A0D4E1D2F8C16B1CB2FEC7B", + "previousBlockHash": "0B4B6E3F48DEF49B14C0C7B35DC970DA921C25B72D98E3CCC1C334D4531477E9", "noteCommitment": { "type": "Buffer", - "data": "base64:mcaupfCGau38ri9wjf+zjGC/xePzrs17B550ZfQ2EGE=" + "data": "base64:B/GzPBi5Bd7Dn2kSFuUTLFDAV1o++/Kjdzzu/HAfcTs=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:8E3F+K7loZGYnxhWDRTpNV4HlHPg0Shv4CeoNcSxeuI=" + "data": "base64:9IcfQUL8kAGovotbEZc6XAiR4BvPHBuF61Tu4KK2xig=" }, - "target": "9264879167265393346079759017366666868294504436375261565844152486318817", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551137510, + "timestamp": 1712340024783, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -1368,11 +1368,11 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAQ4T6w3GZpi8SYiLn6pxTfO4G8HWd583rKDbYQQ2n+hyye3GF3zMnZbcJFN7jx8AYLFWHxSu6es8cd3fnrkS/o+ZsDfKhZhi4t8YUpF2/yPaEnWEafBQMtADD784SSD261DfYzNzOU21vj5a/CODE7fzzs5P6U7xF4uK8HLJWpTkD+z7ROaTB25WShCr2IFsKx0Y5hj/isoS4T+1Lan3vFyToSTG8Yc9V8kJ3mEulTwyl2aXMcobxyXjJ8GXPX0eRvmPENVW8UjbP2rRvvaZJl8UO0OrK0FNWmZdQRT4s5PBPyl5APlGEt3yIu5oYZ/UZuLWSW5kRrLfyt15gLStYsVcy3RaT0ZPep0WK4tWiD3NM3X/k+rM6kYpdyVgNwCVKXOFvrukrZeJ/4eE9J2VrW3Yp+bXzWJztEYT1IBL0HsjRkEMRAuVd+opacH/ARfisNysrYxqngIW9a+4Gm3Aw0afW7D8FNkl002wK+XGrAqGui5LP6L4gVtzm0U4r6yFa2hDwlUEXtNZCaGD9yZrD3XlvjybafNn+kSrrAJvh8M5YlfaotjwWqNAHx5mCbJTDBwUTIu5qMpF+R2DEERl35JdE+ZfQUMFUCKVzD7wqtlR8yMTR0MJdAElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwqlThchJBfIi573zIHYsAwDjbWoDS1f15vfgpjCak5Gx/CjI6D4CNOy4sTwWbFPjycn+rK8hq3iTFB57q4sFQBA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAQ59e1UyGNWgcvYxaaA3Gg4hFR7r1qwe61/ZkkCAXJL20k4AOi8hnjjd0M2/ZoHi7ozzzgANyJlal1p7OxDsWPVzIe8T0REIdgzrIw7XJsHuy3RTPxEa0ifQU3cfKR6huwuBWj9dzdiUmploTYG/jZQYiBkCQ7Df9HHGvsiI0TYYNyDP0ljygSfI8NeboUi1wPNWljYBTJ9u90chfAZ4v89pjBn0xUYen6izrZMkSsUqHBhmfvCdjCp1V4KpMOLDX10VAloPpJU5emwWfRN3acMqNMC87p4Mav2BNmJo1OeF58LqcQXkHgbYjVT40zoyCQKIaHJLRYMo22TVdqxMBzwb3hkT8doPDRqDbNY4E/oUBqAcwt5HQHlyA4FPzaPkkLgx94DRldKYX4PTud+iWEF9ATQps0Y6eOS+vcqyeYlcvhEJSrnH5NT1BKR/PcTgv7eF7m2lcivagwi1Y8j7+u/IMzbxZ/iFfbIMgwR8JIFA7TIbDelh5lONdyXzaOeHOI5o6a20rF+vzqP/o5EAGlh3XzG3G2MQ9IsSa+lNw1c3fnjhN59WPSFXE/5lobkVvVjQLeXNcSn8ubaU/IAdC2Ot/g4qd86R5yYl6euk+zueR6nwB2ciYlklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwtZoNYkSxkE0L42NVGqRF540CQkbcVFys3zvnXNz7MEA8Zn/L5IXVKBbMdMHgBB57l7u637MIPVZg9Bm5VbmdBQ==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] } @@ -1380,13 +1380,13 @@ "MemPool acceptTransaction with an existing nullifier in a transaction in the mempool returns true with a higher fee": [ { "version": 4, - "id": "3e15910b-bbf7-4f44-9748-62fe1de47c8c", + "id": "ccc99424-6660-4b8e-ad46-ec758ead61ef", "name": "accountA", - "spendingKey": "3aae975ec9d384fb9e5a131b5805542121489149d9b826562b12ee5b1d5a9c3b", - "viewKey": "5977dede5fc27dbcd2f9b4d46afbacdac5327c309b03b3f5884ea1765d35c745feb7df79a125abdfdf5ca3093f1cdae4e9f14ab0a1e7e24891636d96e8bd13b4", - "incomingViewKey": "b4ea4c3b355ff4d8f66e73c6d0d434f36e0e88f37a814e0127700a52aca63c00", - "outgoingViewKey": "313417f6bcc2940e7ebcc9d74891861798ae3f772a7001d825021e458d7eb4cd", - "publicAddress": "e584fd5b62203f57188c9171494a05c1af66ed8b7170f9384cc4419d1956b30a", + "spendingKey": "5e79250e1a64dad309fa65df4cc68e6c0ca49ea19b9904053ba880e16dba8514", + "viewKey": "3d1402613922c67c2914322c00c84a7d0079af00a38abb5d967238306d88731015d506c9ac1950ea3fdd3401d280d003f79c061a071f25dd67213850223be30d", + "incomingViewKey": "b7ff0eb1c09f3be781c145ab2d88bb863d88226430af00f85a5f5c6719c0c507", + "outgoingViewKey": "1c843f91cb68eef1ae2dd868da2e1b05cf60043a3fceb49dc8871393908af1c6", + "publicAddress": "d7f7b50563985571e007afe6943b7129dd884bae4d48e7f95fbf6a927e7c2f3e", "createdAt": { "hash": { "type": "Buffer", @@ -1394,17 +1394,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "3bf882d01f47e8916c5a16b8ace7ceb6f2317c8c96a38b2c4ad0d42a3dd4bf08" + "proofAuthorizingKey": "7c1fc6c24d017c56a356714fdb0df896b1727503918c9a16a77917d0109d6800" }, { "version": 4, - "id": "304bd58e-b76a-4e6e-af16-d2f20dd623d9", + "id": "bbca1ab9-1bf9-4544-929f-6a347c4ab437", "name": "accountB", - "spendingKey": "223dcb667cb93f8e2f020094031e4954649f51bf34f7fe3e9ce0c66467433487", - "viewKey": "199d7285338e94a7d670964dc29b5068df8e3ccc9158c33d25031a980c6e14cffe11abddaa9c152de76d81f5bf2e5db7f34b463f8482abf24c1aa90ba47dda0d", - "incomingViewKey": "e6b910978f70237ac7480a6631f84aa19cb12eaca66782e39a1dd2728722b103", - "outgoingViewKey": "971f507ed1f8e1c38c0529e67a1cd925bc978a7a1cb184196fcf6eca7dfb05fd", - "publicAddress": "612fbd52947150304f0ddc906b5cfb11b8ab7102f99af851f286a1b7245c8851", + "spendingKey": "a6fca0b4f2f709aba931ed94bf5fb2744cbbab5bc2402811e6caf1e36c8c4e3f", + "viewKey": "4af0ec8f4564089e080270c77a5921932c3f7e8e582746d6c012858cc49deb157cd3d7a0e8a1eb2f8572d2ee8f9398c9d9d651bf328643283c26abf05924fa67", + "incomingViewKey": "12901171ece7a5b5a2dd3b7d99ad973da3bbe18a2b546cff2b563e0a1b8b7707", + "outgoingViewKey": "02aad34ab0dc94f99ff57db4e143ae15818b5b7d1ae9e43cdf1752e46b5f80e1", + "publicAddress": "641c94a8d90da8581c83aadf45c78b0d5bd8402189552b6ef6e28b731b01709a", "createdAt": { "hash": { "type": "Buffer", @@ -1412,7 +1412,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "e8d19f04430b1c2dce86d1d3847ab15b0990dc7210c118c85f85d3028f5e2c0d" + "proofAuthorizingKey": "c311b7b548f78ecd45022c3c8ef17c20be3c4d4f04718f297dd975716557fb0b" }, { "header": { @@ -1420,15 +1420,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:KGvMVwAEHebu/9UPt0E1ZRn9uZy0tG8EyD6sAJqul0Y=" + "data": "base64:FqgV8YlQxvZZQ8r8arskIr76Xdy40FIFoxs13Gax5mI=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:zKDgNMXAL97rLhVtvgkDMYLjbEeFOpfAQ+IQbfi5MS0=" + "data": "base64:nfDZPHRAtlJRuUNiXf728tXE0C4Q5kRskzPKIKBdG4U=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708551139516, + "timestamp": 1712340025168, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -1436,25 +1436,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAEXdSCyYa2XaaHj/GH0P32cuUbpGWxojuiSA8UfqIJdaNXfcG54LyCcxtulBesEBWAOEEw7g5vCAujxaCtVumY6Vqs0LkAS794AQmeRrifMqGTmzmZOqMKSme6Q5mZdwA9mpwgJbRTyKLIcowEgMq8JA7Rdpx1oYg8xxZ+RQ5gZQLE+926B4V0cvxikl+1hFvONFRS+UANhSeNZGHqPypx4myEx1N7I3MujfIFb/1AlGk8B2upeYyLe/wAokV9rlMmlh+X/3rgAot8sVSDa+njCzXcCb+yf4GDlTw30TR4TT29Hr0PZLG9ZeFHPfj/8AaGwDEg2GNKAgJzn9qcakoKImcIAZpfWNLSM67/yU8HOPNOVwcUsx8yjG+b1X8Zj0nsKEA27Qpfqm+RYWEHcaAG6YRNSou+ZEmAz/i5TRk5TjWWNSZm89cuh2LlF4fuREXe6P7iiWHoUiKW43AXnCfPj6QOvlvLsdfBhvLw/MeKE4JMa8z0oBMcJxt7r8Zd4EKSyPjDsMkoXe5W/s3uHKE34cujpYHDHVjAN/y4byDS7p/TvQIntFyQ8f1NCZqx3xj6Jy4d8rNh5xeR5mKkBkONJQDcqL3z9UeIUTRsB+oaeEgnOnEONlhV0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwI7sMXebWC1BCGQHtsXbD0nJvyJYAb3nz8Jgfd1G1PI+FBGk1kEC78wGMjrbpEtx9DQlW7OnnyG4NCNCTl4xLBw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAvcBDPenHjltFaojqifJudCOmXMX1r1BzbX8PkNSB5rSlR30iYeiXfBl24ehh09mwT/9gc+tQuYhl7hN5PdD3X+oLw0ESoxOOoHLCdUQfCgivVCaQhT8f9TiiFh01EsqOIY+2Kp9gWeynKOjzn5bziSjyg5tysBr8xtBLZAZ04OsXnae5nQ/Df5IsuCaO8aC5x1zvevzkhcDYylk0ol9UUfNUDsyVMewDdXxXY51QEEivdzGwor7XY/c7T/56hnM0UFUg89TLp/sz/fBs8/04BqAwTFRXIv3b3EYjgf13h/ZalYYhewYMOLHeoHoFX7vwxbt9MKMQd/w6MrjZj5g7OnuiIrZurFqWjOmFHaiHZwE6DXi6nUhQ+Dkj75hxeRNthM5b/CpIrSs0S4UWiVp8nW9tAX4yN08otLvDp9u9T1wAIuurbg8jmZYLq17JEgvSSdKdOQWnBlzuxWKSLKr2eVGH4/ufZSl4unzHKbiKf+pKJD4O8Ar5DmCFhkspLwtacS4rdQp1LOSV6k08f9Sw/DEJ1iyb0p0DMIhmlaWc6+VbkavWWMCtUkObweK7yNbTMfC7Tuha0XKHLNhx/beBKB5IpkIu8BYppp9m5fqagDUfly7QZYsF+Elyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMBsHdBM8BArunlpsrS02h0Yyq44W0ntK9zKDil7s6T3BiJMzKuFFu1aaiEzfZI/ql4chq3cwfN0aouYhyic5AQ==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "B8F37B3DE4F898A46F73B7CAD05D26FE57E9A3D6C3414F456A7538F49586489B", + "previousBlockHash": "A170475CB21BA67E28DA8CC1A12A233A59A23111DF69676356D681ED16F9226A", "noteCommitment": { "type": "Buffer", - "data": "base64:+K6Wdg7Hd4FglIMndQoIx+URlb++ak/DmTM8FiZSaCI=" + "data": "base64:n1MUOaCF2nv+AlStZWsjqZcL+V/diyWrfWk3ItIwDWw=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:+sKlHlst2BdCFYvhQGqvwHBfhYORU3yEB4QGHvq6v1c=" + "data": "base64:WWcMIPgnwkNCL2c64sTy93ovURE5+pC1l+IMmU8D3OY=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551148628, + "timestamp": 1712340026858, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -1462,29 +1462,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAEcFglXW3KplMo3ErFD8Dvy5IVDplgDkKnhw7tzqNsS2PrwlNZFgTyzAmZDU5V+bYLPt82KefyviNpDDWy7QYGvGeeFPBYb9gDwjt8/QSSauYp4pFCKgvSWtQG9NRFxaAn0HLehsjFBsgrNuyO9sh99D2egPxqq7QQC9UlFPjOJwNWxG/pSt+NO7XKwW7bxOmYL9nhXuWpA6D5D+MXjxX0Vk0md5Wr+J8j3AJwW/9Gsi1+D4m96uxTPaRY/RSzdn0cXQDGduwb0EvnE2NxPHLmNKwvkHt0E80OGTK68soI7Zw69nF903Nbs1KsHuGJzOsBybHkV5+qf/N70AsWf+qIcN7oR105+AlPiT5MR/vNvYWXz3Uozn2N7TBqCYqEaFaQll4VshmDK8pqBZfwVf8tfsddjl/OdLAt61bPgu+2o3t8opX3ZIZYvVRrKOCwWrUfIsUw2QsJyiFpxrmckWtrM8IXF3aV5+J5j5q1qAYfFQi1dXwuoV/9B7FIIjF4NASplCtD9aV4dlDeD+WMQQeha/YCgFa/92BhqVqKfXiAZw+IvC3YS9t61JaNmPrKcZDgrxQoHXwmWfNo+dy4c27zzJ07VbsaVqHnArlkyM28lwSX97oQDMuwUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw0cRlNxQ4dAol+IuBGpZSKwP7mN/XtP2JmBsA7ltZI5feaTlBB266GOQ1M6hSggbELZnOk+ePmAGunPOcShUBCA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAgfWoRNoIyRgTdYKhTjL9rPFzpEFo/ndHRqByk35ulSG5KLDFDjVzgufqkfg+UI1ZZDCl9FhxErSV6J3/kRj5OZ9K+g2rjn/Mu+EONWJiRjKUjdnvYh6DubEjV02DL22atZm1B1bQOHCxwWNzcG+PEFg0gZR2xXRqOjiX8IVlQogLeMZ6Bxgq6eRWGh28t23MQLTdmq/ikFBvsuosxr8LiEHmIGUE4Y8I1lV8IwTqDDKHPv9pqTKbh9/TbbbQ+qDLUv/g9+yOsj78QqY3qjM6psnHNi9UUFyKksC2BEeSi+yeHbMVcpZsfoRnRqhOR+xpmUUAtz7R8zSpxDRKmhGsD7IGbzdPlaSaxHfiyb+myLC5tsGBDU0B1xIViRrZV3ZdbqaL1OACjxwCjyetccZisv5dDDPz/76/I+xv2SWnvHLEqs9HHoi+vSpZXkH0wtPs2TBKpMAV1Zg2WmxaPyxUw99GA39ZCqMDbSUsf3EcDM5eY4pDAWkYudOv9SrNZmuFvq/ffpZ4c+k+sWSrq0WFgcYhWd6akb67gHO+sE3a3kLCvDZeILgduu+wu6kxgabLYsNm7Ivq5jC6ujEx1T4MH92eztQ1GBpUZsAOtk2Q/j/qVjxd/mhMe0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZxJtC76DhjYgdHjfQZTm4E/3p5Knr942PrCtYH6CmQGcSoqJgvhLmAXEslTKPSP0LiKAv9U6kjaUdJuo5hjtCw==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "B8F37B3DE4F898A46F73B7CAD05D26FE57E9A3D6C3414F456A7538F49586489B", + "previousBlockHash": "A170475CB21BA67E28DA8CC1A12A233A59A23111DF69676356D681ED16F9226A", "noteCommitment": { "type": "Buffer", - "data": "base64:7m6xqKgzJwIkrMq2eyM/Hhc0eUTcmsqA3Le58LfyajI=" + "data": "base64:0gRD6fIYfQQHK5LVWajdd1oTmvnAnyD/Q8hmynk5bGQ=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:qngWjGHxodmp6lAduHEHOnyKOfuLrAayQbi+eJ0pefM=" + "data": "base64:Yr2dkoFsDWBC5zJApkIkmmOZg8Ge8WyeNes7k7j0+1k=" }, - "target": "9264879167265393346079759017366666868294504436375261565844152486318817", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551156328, + "timestamp": 1712340028322, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -1492,11 +1492,11 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+2vKiP////8AAAAAx5KWDSgV2rvavZZFGMd+jdR7HX8BNAhDUO+tu8+5eaeBYnZ+Z4BPVc86jKVCtLxzwU75iYuQ44FRR49D3UOFbXEd4pxk6B9fJ2W54lxKBfS5MXh1WjhW7Rx8vxNxT1GytVpmkIzhEsPGbl3SP0DdKgMGmZCKJlBRrPgxAJ+lqX8RTM/8017svgkaSWQsig/3dkV0IKxUAgUuuO2LWfFeP0j6n3LZhxpMaDXyPiVPRmeocUeACMatr5/0JK/3RJebIJp0rquQR5e0vcVyapdbezS5kiP8vyymAupssIxNgJohZIJQwu2hBIiOgjC8HHRxA3FSf4TY46nOF1nSoZXH7rtbdj+xZzsEFdEqL0rvC+T6tIScPz5EfpuMj1u5YdQlppqiZsbfFWwyhMz4Ywbu/vRdYLFnnWArWuK+HqFQbVZM5agjwR5Db3W7gtVtYMbDhPx/jt19q9ZxiIUqInUlHGTLCMnHw0jc4KFReURClnQ4bIFKbNi0SNp3oibPgEcovKOX92iigHGjuD4WSQmVjoF0JeWazdeUDrSaHNlVecfO27rj47K9XhHHJ+eG5rCYeSq4h5bvqbFFyo/59r51960xGSJRnOKru0G0WnwFKYRNJAz47wsu20lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwyzB0dk89mCye18WhU0RQXcClFNe4TCIPanYpBPwjvNUGIJQ+YJDaSXyV/6OOehLvA3nKtTqFi9YzOq4UoV0oAw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+2vKiP////8AAAAATSx1jXSTHB4E2Kn4su31gNtKFuFNFSvR/j476jHlRsCjOu3y2Ugju9oJ+VpD7Nw5YTpps6lM6MUz0M1oXnJ77zDr3MOm2b5IASxmjBOabKylJRMGN/sZp+QwvUjwLjAwrGxIB1MgcjsR0CyimIZILaJbAzrLGUIORtP2j/gARNsS8dyBaKHCWL3Rxi2OEvWlVR4cTXe0nBKW0dHgxE9KoE7DOXE7cN08NrjJo3haVoqwVN95NvndyO1IQK3PYRpPFzY53tzWmtX3mEVskDqfsQxbcTOjKvCP4Jh1DdVgVDkFE7O5+eiHMZb5/QMuDR4Bqk2QpDv0THSSVLbB7fbk5mljoQrQIA6GUJihLB0ybM+6NU+M8yuUzBjXuHOZnDAUWXgee/asgvAyX+AUxgWHaz/T3BG4A7q5TNRiOv+5c42c5BVC2WUIYm5123/S9If7J5Zl58C9tnb/Gw7Kwp4AIiryhNJOh00h/YkunFBzE9QJNGWoRf8iow7wJfnosYmcu+nwfWIWAOxKECtdUKRsbxROSc1VAnbYZ6KPkcPIa8rwsgXsrlPBfDhAiT2t4HdZk2e8TRhhjSRvZG/c9AM4Y0wbVu14cDTqYxuRmR9AoXoHhTzaYC4qrUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw1HLPp1J6Hj3aIAPkCBEwQ8kvY4Y2Bcp8vktrVbP+JKUjNvuMqFejEpP6Fv6fKLyq2Qp5MQDqPHdoG6tnPqm9Cg==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] } @@ -1504,13 +1504,13 @@ "MemPool acceptTransaction with a transaction that internally double spends returns false": [ { "version": 4, - "id": "97fff51f-05c7-44fa-adaa-a22d1bf21962", + "id": "3c79fd4d-29e1-4ae3-81d0-25763f23c569", "name": "accountA", - "spendingKey": "063c9314e582ddc739a5b13207da0b91f4f27a294622272fccf1c6f06464c00f", - "viewKey": "75b8df7a312a9da5061f91b28f9cadca42725a8d1e23dbeebbb73f64c9d91f6c786e8b391cd4b6c482fc509b16d1775d46a860b39b97397235e5f3004d547e8a", - "incomingViewKey": "5c400daa641877758a1ce8f9c666299ae6128ca5770a6eda17dbdb54cf710202", - "outgoingViewKey": "c0762516a9c679f14137dac08347c3d8dd63648c142c47e9ecd23d3d02da8300", - "publicAddress": "322bec5b59ccb1868fff6548eb1c1c47ff73550caa79aa4c0302706d3a6c0625", + "spendingKey": "0e295effd1a17dfd6545983df25a4dcf49826fb556d476a12052c10120090a1f", + "viewKey": "3fca2d2416bc501271877d32fc40abea1129c0c54d436ea6991c8cb35582a112d6635922cfaeaf7a586823b46c75edacd2f02c1df172d196f82ad90430c367dd", + "incomingViewKey": "e6597fab42398f64b6476528e5ebb39e8a39a60eae0dff08df1310d13596a605", + "outgoingViewKey": "420e4ac8e6e40d03b62ed3fee038646752a6ba0451949d4cfbe0fdbd45fadd92", + "publicAddress": "ec80a030263189851cd2f39f1302b6d6f0768b4a3368f8180392c5769ca257e8", "createdAt": { "hash": { "type": "Buffer", @@ -1518,7 +1518,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "894c87c68ce4a013f47452a8f847cb07cce5ca7a97d67e8c13ddc0e76abe3301" + "proofAuthorizingKey": "844e85c8173d18b1f6c8c8afb5dfe425be5658fc0897fd0d9622103c15531300" }, { "header": { @@ -1526,15 +1526,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:1rl58jfmFQplaoZMFn6lX2XoFKCHi7yx0icRekB5TkM=" + "data": "base64:GT9Lsh30hifiO44ZXE1pT7WEk5AtD1McgrJEx6tHAjo=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:YV0vaZAyAB1LZ4DZ9K9glO/y+yzpIBRh2mPAOMDDgbI=" + "data": "base64:F6QvNWRi3BTXO4/fCVfctGLwxrHohKRvpB8j02lAILg=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708551158442, + "timestamp": 1712340028707, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -1542,25 +1542,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAANW68IQqiWYAhcC93/ize16KWsk6AZqtOpH1J5vhgW0GQrtAzDxLpUp34j3pYW07pTIIL8dG7lWZZZ4dUF0Is1Q6kQSxg70Ig1E1P4xRoRPqpxM3Ql+A57voVSXE+MwHbJD7s2FR+lDEczbT1B2WOFtef3YsZWh7IpoeUIJc/DFUJrfJP3NZga3ADivjuOtqYJe+5to2mpRxOtg17F7vIZxrbIjdiAHaxuwcd5fr4Vp6n00MeUqXUW8NlGUy2vkx6imodOlnUS9fjacxEND5UyBp8XyEB1OqZ5vj6UqjkqmB5twpePQUcK+nAD6jaP/PM4xK3hbJQQnyhJFhsbLPnKtwqz+ztZ5eRRCfHQ+qAtJcoRg7TfcrDOPmObp9yOhtsTjZm8a5dlEDzEZI/FuTxdZsMNXMZsU4nUKboKZ+yQuobSLBKMusraHRBDnHIsgWoQbTCQJiBqT13kvqdKz2XoQ8z/hRcnED1OE5Qz4OsdlVK+jQo9FnyMyLcQf4u0etd5o9UEW7rCERWBT0DTmpkuYyItWXLX0nwGIaVUaQVCiR5+LA8V0jLbstM+j+zPMPbFYZ5DCZNJzn2k1ao0ZvSsoJbh2TNXdKrbwOGVTXlJp/mDWkHLgXrpElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw8Nc2Lef7ghpTv8n2YTFrYUGyEArt5Q+/s97L/SCv2gnHq9rlnKbn0Achrk9+qt0ICVui/XbPpZPBsvMSaMgqBA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAALS9syr8PlDpEd/j+T5GUmvo+VGmJ4tVGHzTxPXkq1Z6uv/uaodrkTdYabwW45TLY4yIbhcMFEqL4WAf3TfG2b8VXYeQ/1lavFed9GLI41KCichcClvw0ZVGxz9XBkE72wAVl1JYrTQk7JyQALIZlyx8f2B5Qu6QdFvnCrCCSTNwYpCOxoRV8RPF51BMzyeomEGA+NPRnJJltROTUFPolDXp3X49pvLkcnEYa24wo/b6y8BGeuWncJ8UvHD4uYGjKLrLsWqhICe/84aTBPFxhK2gC5UEZxog59sjpFSOddD17oEjZ7FonIgW4AcZ0dkOL63WciUthA6wsJpnm4J838KHK2Y9Lo2NOzWBHUBSqG0sclGA4BR/ALY9/sEWvMwhWlsG2BE1erPxH02LtB0KMTs2K5u2rEwiImNG6u8J8V+jwGV8C8d+DBJsC10+tALVFEZaZmzpFnybvgaPFmano48EcaxPr7mlR9dC54vU91lTt1jKjANndfERkYl0+oIOZrSJPJVQV7XXfRGx/JNTo48YRZ65NQeJVq98LUq4YgDkjwOCyFtvySuAynE6UsXJtn4JupPP3LGwm9jL8D/qpI6lcQrrAkq5PBFEjk/gvIddxH7/NEYJfAElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw+jeKD46akYtt1J7G/KG/sX40ypvTm9NFHtM6gKIdJCyBpPAZJknh2QRMvetcMZM8JI6kIWMRsVW8bploaEFwBQ==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "DEB89B0E55460986E9480388DBA4F19019E27601DD9AF1F12C22D7C35999CEBB", + "previousBlockHash": "7453082AD54442FFDB46C9DCA8259966B6F9468571CE8AFAF52F4E15710BC3CC", "noteCommitment": { "type": "Buffer", - "data": "base64:GOHtaWskOZIJgSku2bdcV5srOm2U7FQVWiU6ORP//g4=" + "data": "base64:Q9EPo5FKrkLdRFQ/nz3EMqKG1uPB9M7u6iBw5d/YTik=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:dgYTESjj7OM4pNnzQGiy4r4TQE1FVmBBI5xpydVgzKw=" + "data": "base64:rK67lyneh8czKvtDVukQR/toDiMeSrc10c5EKcO7cpM=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551165500, + "timestamp": 1712340030190, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -1568,29 +1568,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAA7jWP88mIBX9pn904uC/r4AOTCFVc2nJM9u68gvN4xJeg5AybKiCzcNgPNVjZK72oBaC/th366r3LrzV5OKc717gVtFsOCFG9A3hnIOS4CwOHotkSkJWAL682QndCBSBdqc9m/9K/22kmCqAnW/MJxMJn1Yl9Be/X09j6j0qUjScKgzy523a5Bt4iEm9yvkBsKPbJR6TSanlxXl2WvTnuqi5kjWt1EgXXkud/GIL//ICDfl+xZrAHHzD6A92TJ9IFm59LKRwfJu0Ikd50Z7W3gtJPqCBW/fis/FVgeNfiS5ACbqtcKla6KjbhrVZGao8w6VBQ5ePaTFzEqyQxqYGbo8uXMGfuiX/3P/38r1EuMUnuVoeevGFnZC0dnjjzf+tkbD1+hv1oG5ChyQxC8RcdyfD6NqYVJS/0ImqBVvSk/DelUFw/UGd6Wrk3/Km9vLKcyDXrmiW3/Fv8AFrVI81//QnY9aEnyvaFTTQ8QCvHQYk5pGTW4cjXnWLBec8K1ff24ZS2roRWJdOSrT0z6Q5bP40DyhwR3JINxemVgyGu32eW6Q+/p7a+667pffegMgi5FZ2vxLePbpwGjBUiF3hZ+EMnCHcXnMyqVnKW9WVpDDf0qTgnG0lE5Elyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw7ZUgJsf1Fi8HfBBbZxm01sv3R1n9/3pz2b5aizl0Kmi8w0mpkOHf4MdsiX5ocT3EKnn0IR+R6RUJcpO2c6a5Aw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAhqzrbli43Y86LPV/ype1grqYMDGeqpSpcTOF7hsp5Supzk6mx3sH88uFLHjTBYk9OjTlEMqyjoxABk0l7jMpVv4jDa3u+hAChHy/GSA7z/+nxiEpyzTUP5Qr4mk9cmXYiW6s/R4UX4kia0nz0NmIaUlc/RZX3tSgIvtRaT5DKjgELTrix38EMhiV4BDyyJSUhl6Dh3crak6vprsLqNUClxS3OmZ5cX2yar0VI8p7nwqrmLTpUhx+rNN9ABQIQLjNUJnK1UhjW0C4HCvLvHRDeKHASI69S+ys9Ehm5oTXpGD27FDCEJdinWVr9XDvifececHAOUuYsOlSsNRd+BdSU9SZdMVEoPNJfuxjH89FSbnPPCkagLJ1OTjAJCTCtVVUSRn+/0tjpIK3mp57cHkSCgTDBsa3yPVPqFKF7WKYkMjJFOIXqR7TG7kEHzRvciHGmP0Z4+GgBySPaLlfl25g2mHKd0RckR1KlbE9HJDyuv9wp59mEaXglzlu9UU/4qUpKG9jSR2rllFMk1RaTuO9xhTHZuOjnrA8escUQ+Km/CHFUf0AK8h/xBgryb9Onq0jU3W6X63VG3QV1zCU1K3zhSAhDNO6hzMkVbHnfNMxIlCIdeYz6EhCpUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwkOLcDd8Xzr0IokFUrOw3BpCELGpRyL9PwsLblBO55cmxRgGWdtgvb2nsyO3aU1QZzO7Go9YwoFU2I8RrJ9gSBw==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "type": "Buffer", - "data": "base64:AQIAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAtvUjQszjF37hVIzNXYu6VyXsRQSwcfu0KHujd0690OiqX6sA3dLWsetbgSeSvGWwfXnAji6F1aE+qpboXeO6g2pOvhrBlG01fE4AGb0+cu6MoLNEx+rm8VQ/RuZBAbJx6sGr6vS2DdKH6CmOcMebLMMch99jLSaW31k8DpWaW9MA15PtXF61r/5pbzSUzyb2HqAMZNiAXYMFEtgsukLMUewU6Q0IJPNAhVV3GGFfyVqCgybxTnD0U54NuReQOYJipxcXx+R8nCCmaBO32NLExOfg3Akpils0ze6lRbtTI0q2eijgb2F77c+lOPhvalxw6iXmDXZOURzy3rUspPWKcRjh7WlrJDmSCYEpLtm3XFebKzptlOxUFVolOjkT//4OBwAAAOSw+BCpiFlZGSnOzDLOd017KGxMtnVXBB5I+q0fqmUUuIFiU9qn9W+owbjPU8WyOwO5lZkw8VUG/A5SCvSJvO+boG4J4oh5zjExDFItdomUkxMZB75HYlQpOPmen+LjAYbiC6uH89AlUAMXoJ7m7wjYFQFlxmV1OJFVHCuCVaQihDytCGnQLQj4jQ6G+B/QY64hnB7HNJ60/NCa288jAlNKmRB17fVU45E8xTSG1Fx/34JhxQRZqlUfuS9JXCjIyA3ngjSDSJC9uIJU67jaYfN0/ZevXLIv0AfyKzvI0DVIkk6vPn35/V4ieroDYIY8sady20Z77zBXoYQq5mKx0k2RTczdx/YDSbq1HxJ5Ds7lC61XuF2gSkFpQSCF+o4pi+e7TB1sDdrSuuhnY5ZN9W5prOGnKLCjU8N+u7kr5+HtGOHtaWskOZIJgSku2bdcV5srOm2U7FQVWiU6ORP//g4HAAAA5LD4EKmIWVkZKc7MMs53TXsobEy2dVcEHkj6rR+qZRSepLKcfW51GgaEImUk6XgIo4CNW+7yoi7HyaxQImldj9yTm0+qNCy1uuuvcJLZCn6nfQhsZcmlPxqqYZBCeTUDl2HzMJ/eO/CG9riv56UsdUkKuPqdsB5XSxVmCAKfBd4cTzAQFs8UGhmryUoWy6/8prKvb++YoPdmoETBzEIgX7eFiuLKhwkc7YuogWRk0pp4Ky617CIsecm4DkPKdclEGZM4rWUpDth5+W0sRTF/kcCxgf+ecc0qRqlb9JGt7AfbF/+4n6V0zPbjdwuBSLvIrcfPgANdgja1N2ZBBgvIaJnikI5jbyjuzP4TyrqEbuG1JLuHWfS79K87BM8jSFDBZdDN2TtvJ4QxLJv5lFcCR1onLgzhw1BuPDYEW8wYaGmOkY4pYwXJR8HXNQDFhYNHyUW3oSa22fvF+NUum3WfULgAVljRxF+8yip2XcUna4VCTNhEENB7Jvk0uu6kW9Jfz66+Wjg8zrqc5jg488of+47XfjyYhBZsRvvnbvykwzpBM7SZc5JaZqrCcFOd6SOcWipF5TkwSJUkYSZqFYLu3a/tDAq0xhqbWYjw0q4NdbvYBPO8ORWjnHvq8T7dxPtFZkwNkaTNP0GawkzqsFpbcn6DaqiwXlQvC2hK+hpLUGyxN2rXaoTuwdbhKd5q6aIr0v+Tv6rgbtzUqDg1Pj4i7BK9DBINsnXjL5hiCERzQ2snwEDiVecYZQDUay80kfDUPhm3dxVedg4oq8AafXSeD+KBTDwprV13+5xXYNPGhFcMeHD5pii/jUfzQ/U+3JFGt8tsTsompFqoHIKRh2Nuo3JTgvH3sIagaMSLAmOdebccp/SSJkEh7D4WqJxZcz4tRl1iCnpTVAg=" + "data": "base64:AQIAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAj1bSNMD7cc6M1qfqD6ZKDKNSMJQIE3KZ1vGcPsS18V+Yoin+88gdR4xrEjPClXgEEIb8L7WTjfrp0sY4n0qoUwm9IC9rFQz2cZfMUzKOIO21eK8Dnwk4zqA9iPmz5rV0NSd4y+K8x6ufmV9KsvbIPqfVax589tbIQsG9opJCkIYR9yYvbLV6xzoTYDy7zvD2nsjw39v6yWr8eAlbhVfsX+3EjPxUVAuzyEskdEwvbvC3W/QA62ZDkiMEiCYKOB96m0OTb9/zAsrt2tbFnYVbr5/i7/Y/whh+kvhUfUj1MyyI4Q/zxw08E4SqG/bZUB8tLN0iDhRS/y13mgeE89PmK0PRD6ORSq5C3URUP589xDKihtbjwfTO7uogcOXf2E4pBwAAAHNoFMhw2++rDtFSOaNoL8t0UoUpSO3hwSAZTUVHp5BxjSt1R+/dXXQ70uTYfnz8xXpBvkwkg6ncq02TJkAE1BeuksW6vo8GnBh1SozC4PswZHu5SfGb2a4DoXgWX6uQC4j/40+uziv4hIEIOdkhV3XCpr/ONs3kFFDoCZZDwWJBu7aRMzSFENquHZvOpayGcbfhZIKTpR25DQPs/wrjBtGHdmRw0u/IzL26oswf+lpjTgU89xcYL5WBvYzz2saJ0hI12w5FWWzLXe0jU9Ix1wCCVT1OuAh5ZVnmKoyisSnNeGHZ7MyP1k5qv+dHRH0b642YY3KMHCgmH6XGj9oh8IGDAFeKbi87Updocez//KSZ5y9G4GJx/i/oHSRpVEJaq+/dtmV77Yh567y7Wc+DtGLpRWIHj8sXy31JQ+aFuLekQ9EPo5FKrkLdRFQ/nz3EMqKG1uPB9M7u6iBw5d/YTikHAAAAc2gUyHDb76sO0VI5o2gvy3RShSlI7eHBIBlNRUenkHGkZQOTy32yXWGKRePGlYxlN7Dna6aLOpBm+Z7UJa6WSM+P5IRINT4dqFDEMlGlYflMd300JVt5tq26yh47sjUHqr16pV6crmhlM37BuCF4TgNI4HCyleekPsCrczDq444rX3p7KVbkIdFuoCov8kj2qTijbzh/l4eUeblS8A+9O3wSMFrJj2iUo1UvjY5pmAJzCQ+O7Rnfw5jdgB9dMNu1Bpckm1rguYtinGrFMbVNm9P03GyBtyaBfxWKCtxfeSLpaZmDSB7ynetbgLTL8fGbggaYFdCJ8LC97HhDsn9+4yPP+4JoN/D7BmVOV23xaJDcYEp71KLwUsigvjy4powDZyLYrV45O4IQBHznVnEbjb6064f+9IjgHboa8M2CergmGHsul5JL5Q7BsanGupxY8ZNwHGSQnrcEpopMd7dpRZt74wVqk0mdK7lvKkZoHkTp7WTHIekXGQZbFehGDtok2ThEbN2FEiL/7SSnHQyxHPUuxqJFjpWfUjDzxTpWhsvBvjWD+6GDW0P4XdiZN46YAs626n+iU0t5AMHKAoYIcSF05klEFgcRDIgRTmlGaCNfds99+szOh+Ogxv31bU1ZcffY8PixaXWwdB6HWPNMeD0hG9wOC7ObkmDHuFTCj+1vVcXZoKQ+4AD1EbgdFtFSSxyEAxDPMCwljL/qcEjTOrVQy/m2MOm14dZVkjrRb+37LEnI6B8RbbmpSvuF3PJje83bdd0fg8jPvxjmY0gbS3XFq8aimjDZDNFa5BIWUaiZS848ibFTYzn5qCVO59ZimjFls4C0C5v/JojzFfuTRCjleKAPsl+C3TuPCbCdM03Nd325ZGUCha2kklpIUGTAHMedSHO2mAg=" } ], "MemPool acceptTransaction with a new hash returns true": [ { "version": 4, - "id": "33b53abd-dbd3-4293-bba0-d3ee3b0840cb", + "id": "b6a1bfff-83ef-45e9-b0de-90db9adc532c", "name": "accountA", - "spendingKey": "9c8132e3cfb990b0ff0cd0c1d383e5a9a848de59586f773a5a6a71f0d6e76f49", - "viewKey": "020217436bde1f1210aff61bda0e234b79ae97310f4b5599da3d783febe7c99619fd224ddf4b738aa1e3995ad798390e80db1037db344c1c8e65895badb5555c", - "incomingViewKey": "728647c8d02326f27aa51cb45e933121b2f1cf2b289d3bc7b1a812d559557007", - "outgoingViewKey": "d12c5c8ff578a53e8fe657dea6d941cf2fb8c784b663ce092e927e6dd1e5e12e", - "publicAddress": "b91d4d7281571b711ddda9dd7037df32d7b249854184544dfd0f88be14db612e", + "spendingKey": "59b7f61cc77ee7d4e0d0b29f5e64d6c46bf7c16f512f89fb841b1446c7ed376a", + "viewKey": "a74ce5554b0a8d07cd3480fc874e3154547feab96fca8df1c74c35c3a966c9b4a5aa78ba41e58c520d196bd26097fc2943592d010b0870b9dd2b78b0367e1f66", + "incomingViewKey": "b9308053fb5580cb6e16f819ccb2987f4631423779ae3f1626cf6b06ebd60400", + "outgoingViewKey": "86ce6a86908bf80b94fb1e6cf6ada57eabfc93dd311a2ee5d4177aeba032690e", + "publicAddress": "2ba94df8d2f8dae94b37daefc8eb638792bc21c8457e5229f4919954a6e6e7a1", "createdAt": { "hash": { "type": "Buffer", @@ -1598,17 +1598,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "18a25a7a300b65c86546373150f1beb06e04fce39c474687901d66eb33340104" + "proofAuthorizingKey": "bf897e1bf9893600d9d0b954ce8115e6bdd6f8fcf911a00c466ba892f6df5e0c" }, { "version": 4, - "id": "0a89e19e-0734-49fa-945e-8bd649f573d5", + "id": "d7708791-ae1a-406b-9d79-723d80dce283", "name": "accountB", - "spendingKey": "d41159d19f97680360815da305cc932ffcea1a565cf237a75ae92cc46d5686e7", - "viewKey": "9e3113381afc9a881542c21597f2051137d8a1038795cc6265066924493730401e91816b51472939034b5c2269df466a13b443591fcd7506c28c1b93a8efa860", - "incomingViewKey": "79145e322001b01aef28333146ec02ee2d35140deb00b64be7f81b01719eb403", - "outgoingViewKey": "077a529a9a1f6bb6a67b0191c1359b8bf8c6b34835d6e901bd3f3b01cebe4541", - "publicAddress": "c5b6d3d5edb917064a3e9ed0c034e90498af93342b570cc45a3ddbc456bd0759", + "spendingKey": "a005eb4ccae93f269c3508e5494ce586af94d27ea04d66bf0ed967ab2ac0e0dc", + "viewKey": "b309eb05a20d2bf6df8ab18254814497495451c867feeee988ce10019a4411dc602f76f497f158bf2f2a1044aed65839b53dc6720a65a85391b43aaee51f4ba9", + "incomingViewKey": "eb5a4b0e4436021082b61b638d1c072bdd7ed9bb9e8992d4ad2111a991c7d807", + "outgoingViewKey": "ac93fb42c2948ce8dae2b45d11360d8731a50a4e086ddd034d476fbbfbc3318e", + "publicAddress": "2acf106607b8241bc6e2f698a9a98708ed628ae7c32e12c1a83c3a34f3525f10", "createdAt": { "hash": { "type": "Buffer", @@ -1616,7 +1616,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "7d9d95c2a7b96c573576c4b7759653b1b9041bd9f2889484b85a7c02ca3f0f01" + "proofAuthorizingKey": "b55706f093851f4ed1ec1285c93a5137f9212f7941cce44df76335da5c63d600" }, { "header": { @@ -1624,15 +1624,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:EsplHiZx+JR3D5YBcPGSb395NBHjvB8u9TZNS++E7xE=" + "data": "base64:p9ZJYNeLRjZ8WPvqxjCZiEFXPffovcEGClg6y5QxKhw=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:5HQ1B8gJLmyiY/tGHP7rgRtc5hCNRIBkT1OmrRwPtoE=" + "data": "base64:bCMaY6lt8MvrNaL1F77X+imOcTSq9COQdlJMAm2AM4s=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708551173836, + "timestamp": 1712340032141, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -1640,25 +1640,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAZzHzrV4YH3ca5aCjjkMjrNlzq69oXlrWmlErkb+jFc+HPghImKogBCZ+ZfgCpysofs0ZtNIShu/chyLFwbRo23F5qDhQkAoesgEobkGjE3uBQc71woxOxMpD0ik/xccIOGpkb7oPYhRbumpaCK2cCW7MTV66SWm7RpPtzZ0cdRoJADFVx49vC7Nk2Ja1xWtwxvDwTQqxLes6/9j2ugjrr862HsIKdA5h9ixlhxhjORWXzU2b3VPFGjvPjN7sFK6sqzY0+lqRfnEI1BBGDKKtkv8736ukIFYyVtBBIfFyIGZP+TTAz5H7daq36JRYfqJWQY734v8xCiQ3MOf4iGzQiKxBJl9g+ZP6/l+3l4VHshklG9Y+OGGDMcHe8Ppr7QYK3V6qegfozG+Nt8ytCu4NJXCs/sE+09Fqn91zSBoKBaJ8dqz2v0MCoP4Qu/PTPZ4P4H9RPUTKGa1pjfcPt/1CZQRdstedA5HVi0uQsR1MCDhMBeZoNLgnNzgTLkee0L9M2shKKEN470kBcxzPtTY379tEz6Xfq3KBNvKH7GOTUzt38jXPQPgtClfzj5GxwbN0l+VBmr4SFp08axQiUrfBCzbwV1wCUCp8zzhtx7m22U7xfdKG8L4Iu0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwD4yvO0aKCF3ljTEyrgJJLnZKyC7S1v8yj/ZAdMzhw0RS6Q2G6QZvJ0Llp0cC/goaNndAx/lWzTHLCKrekRt4Bg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA1D12lz4BDavIc6FEwZ/XG6nuTSaIX1bVr7Z/OYi+oY6nQzYz1cQN2gH6bHa1Q3XGZYttuU0tk/CQDIXxYvsY4st26ymITOJfKnX/xAhwzGCAxETDcb3kUnMOJcigNfN1C3OI+0eDh37blvZGF4XRQ478WP8cqg/hzz1xeDF4ka0Xg/EQwCRzTCTUIXHgH4tc2j55566OkJW657ImyqGnr0Uh9+8+iJ9SvZcF1+5oZYm0hdd241QMm69ztanpm+YE2AuCmMo9P71XMYBOao0cagFRm0ukfTJ+bCSpDskRANjQ6krjd+ty1XxSivgq67+485G2hnxwJzFKi8nZaA8cHkkAaaBSGjJCtqaaaUKN39oLMH/HtsmTJ+gTHbGAcmxolFnzfltF58o30auN18F4v7/UszvROSplkn+AxFNQKgOskcSQDwh/3wozcyexSiTNdJ0sCjYeM2EoXjLXTKwHnf54ycV8Q8A7xry4BYQnOB5vkDothK+GBZyluxlM8z+ZfKjg9IPl2cJ5hg58QMCcsPzaOo4SWEpsXZ5sbrFd0eL6g8S0wGAMHQ2+mE1S8ot5RWoJCaBdgywVDfwxB84MS9UYniOBsXUMVpNbVt78k26Q+Bbi6NixGElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbJ26nIdf8009THZNFduKkPqoMfYt3aTnawp9jk/eHGft58HWhj3X8Ear8Erqxi0167wmmyd/+vyuXA1GY5T7Cg==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "E71F9BD0428A0F38805883F7AC070210B0567C715D54DC4C3AFA462D697D55F8", + "previousBlockHash": "1562CFF391CEC0F17D74B0367DB1D7E763F0D1D955DE4D169C857C9CCC410C66", "noteCommitment": { "type": "Buffer", - "data": "base64:ZydSPByP+V8SkGIC2VdGSgzTgVO9Yee/BDepRZjUMjw=" + "data": "base64:Qq1uCzJ36TSXtCfh/DSnG64jBnGhttZA9TppcrnE3V0=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:7NWwKGxOX5OCnSU98ivN8qeXIZeXUl/hSXMKl2x6hVI=" + "data": "base64:qNf54rrPvijXJAVQDPMjKNQPKQS3Z29GZxGBbGZE51E=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551178950, + "timestamp": 1712340033621, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -1666,11 +1666,11 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAef1+eT+nb6Ve5rwn1QUoVTSTAA3MAafXRjl5Ze5HAwePhix43w9unwvnAKm5El632St7A4I1e6WLdA668RbM5GJiXjzPk7JegYbNtzmwSg2BswyVZpXWWc0BYxuLdRf1Vf1N+NXw+WBOC3mvJ1THlmiD9ybhmJIAKsHKupPRA1oJbuYwKawgEL2rsE3BuuUvuVIk8EagRXji4G0ZHPO6mZPxaxPnwfwVDIzU6dj7VC6Qtja9kLfk+BppA2+gpRoIKvcRrgOR9qAVJw92DBx1wjyuB3YyR5goToL16xi+OnWgkR9lk0MBEPNoQ4j1JW3pFQlswWGVlofOMke3eJDyWZ/a8jgfuCb0RZcP+f4FpDjhJ4QYLzisqmgzMnEatmEHXJo4pBQFB5MVENX3a6xVookyFgDnwa2Tmj8k+HDlkkrWkxYglTwFqdr/dHlBi4A/N8uru7yAtici5j0YD0C1fXmDCQ8oiRAuDSNBXxY/yHy2Hfh1DhvV5ftqPPA7b6EISaEWlwKR+6RWwUQlGksnSHGHH206WNFmzic3n+YmgFLx7p4ldLQ2UnF+4hLMk1kfQv5qXmSGFewebHUOjuu8//e+I5SvB3bNLd2kIiZAlUuFz7wn282ZFUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw9HwN8V9YMCWm2AKuKy3yEVGlfgJjGEznHn7b/rPg2sYPjKedA22fFNlDL9GBrqhWg6EinxQU8Ox7wpbCp1KBCw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAASrxkb7BTr5pMXcmeM2frGPLykz+lmHPNk+gyFRF2I2CwUBagiQCwfh54/QHK63qKkK0cX5/YrjcYu9ER58uaa6kGi+Dze8Sxy3usKowWOf2w+8OQKpT64+3hwR5PrOT97vWpRYAQOTEVomVfKovP5lG/HKSurmN9IR3KH3k5FyQUTqG+1IgHB5bteWAbKYisO/ZziubGSWJXZbTrt8lst3mFT81AsmLs3x9JmyONC+qGorDNerkm3pW902AjuW35J3FckQQd+szXmhWjKclecnu/xmHuhgkVWlAA/lrmpnHPrOSnw712ryb/vT0Kc8LgzW61IQUZ3leMQEyUTpkaZmloe4JWbIojFASyNSU5fL+G7/TFtC82gx3uPy7h4EA/0joHnvPZJikEMF7/XqbWKWaCMftKvPgc3f/oqBZFZta4n320HKYSmTueZ51FDMX/XDiGXgRK1FkyTAFScb+7wFpE39m1k4OUhkIOt4YtNZ8qgzzmDJscuNtCGht8KS9H0YoUeOycbzfKq1u5R3NqVeqJVgyamB5X9vypfMmkT7QFZu7i1thiXshqWlFbSG2DevbBm79yjXsrqwoMu59ZCraNYl3zb3GeAYDhlKj+K6/SS85UNpduCklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbSv9uN12TQ0pZLvQQW/T+MDf1ZaWG44bZenGjXZp+1O9r0Nvo9OLDP+kd0ekdYBxnYDbK0Vtvc7URfUb/u3lAQ==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] } @@ -1678,13 +1678,13 @@ "MemPool acceptTransaction with a new hash sets the transaction hash in the mempool map and priority queue": [ { "version": 4, - "id": "e4a3a192-8dcb-48e1-acf3-8af60c054415", + "id": "b1a799f2-0298-4aec-8b25-6de1d715b5eb", "name": "accountA", - "spendingKey": "787e68da82295db8503b1d5da33aa3e12cd15d230271b73e031060814d09b741", - "viewKey": "a9fab6c3c41ed885ac9b39d339f9a195cb6366b224b256b76170750eeb9fb966462ca58d5ce554a0f58ced6e59319923405051592b48b6340d1b12817f5e0a1f", - "incomingViewKey": "0026c7b936056b98a4c1dc4305ba74a672b56d5136dcea485d4711ce783cec01", - "outgoingViewKey": "c9417fca915eee46e83bca8c8189e125fed8bb89c5f7221764eb38cf22d7276b", - "publicAddress": "9bffc9d61af1137f80e88b99c20077ecde1764baa1655160575ef96022f394c1", + "spendingKey": "dbf05ca79de121c5a11dd890ee2ba81203573d5c2d520c5d70ee33fd770c5cf1", + "viewKey": "9d8c50b3211199fce1bdbbd89724aeba447c7b824c8ec9f399a1e65bd939e2b9db3bbbab6f364d9dd27db155345b9d5768fc9139af7a07c907b2a5e1efbd7bc2", + "incomingViewKey": "4a32a11c94ee3abd43a507a12d466efd678f6a0e08e8e58f56bf572a9941f802", + "outgoingViewKey": "f9bf60ba320a34b4055b035cb2d91bc9b708b80be380a8e25860a7b86929e74c", + "publicAddress": "45705d7b8ce3c2a537bdd449b1b070fc687f34afb11b2b164970de8dc08c1eed", "createdAt": { "hash": { "type": "Buffer", @@ -1692,17 +1692,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "ba1caf7c0e1a055830bddf4c39cba64eab22c8369a46a9d677efb3b91e72cb09" + "proofAuthorizingKey": "b06b726fc3a33567ef816494b6bd89606341bcb8243b9e4db0c52bf7944ef206" }, { "version": 4, - "id": "02c567bc-2a6e-4212-b6fc-aeceb661f4cf", + "id": "dd5bd90f-54f6-4ea0-b2a2-9316c7db3b5f", "name": "accountB", - "spendingKey": "5de41b940a77ba88d3002b92ccfafaa3ebc13822043ef55954359fad7b088416", - "viewKey": "532967bad1fffe83457fe30f61d5d419273c53acb71c38dc6a617d14c96e47b89ea5e0cefb537a66f64514ab959c6010c56fd1226677cad7d9aa54d0ad8ee270", - "incomingViewKey": "539538b55888f4ab20f3343ad520cbe3e517a9b2382d05c70767b22c9581a407", - "outgoingViewKey": "930d01dccb9d6715dbcce9f90d788287998901a05eb430f73c5f90978cc2ce65", - "publicAddress": "bec085172cb4a25b0e74f0f36efc8a489b4852c0704982074afed7cde164a6a9", + "spendingKey": "413c2666d31bf3fbdc4eeffe22b8f300ab142a9657c2418146611672ad85aeab", + "viewKey": "fdb85174300b61cfbe49ad399906e64c85f2201647c7a5bc140f455cc93f26207f250c3c34ee6298f04bdb794a7b849f3492d6edef5c7c75f1210691b594d39c", + "incomingViewKey": "277d2f1ee2fc6c9b3003cd26adeb7987afb0843e0aa88db56bcfb350c5dfbe02", + "outgoingViewKey": "58cca6deba540f030a57eafe4062d5638538a9be775c9533f9bad3d47f86b47c", + "publicAddress": "0d84797791fa3b6f2c430744c57e29306429e160a4bba904cf460dc0070e67bd", "createdAt": { "hash": { "type": "Buffer", @@ -1710,7 +1710,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "bfca8a3a95a6251bb56a43ab6c10c6b8eb709dc8b4374077f96678cbc370e506" + "proofAuthorizingKey": "3fdc4b244b533a40f45f117de178e25b46cb0135bf4a44fee2e9d9c4a263ce0c" }, { "header": { @@ -1718,15 +1718,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:cyLcNlOj9Y/fOybrNQbnL1Z/CNJaOJADx1bA4+oQo2w=" + "data": "base64:qcQeh7rXPMCMMtqMAopLzGywhJPophWa62uZ9ULxOGA=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:OqNc0Y/ZCL+Tkv+lWm/Kop5Ox8gsFiGh9bgR6ag0gCg=" + "data": "base64:vT3ilOlV8GGu2R6ubz4SG9M197o+VWb0XqC3jKKGXSY=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708551180470, + "timestamp": 1712340033995, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -1734,25 +1734,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA5CNiHYx5VZBJbrwafN7kU/FmR0/zSjiidGpJPLX/6pegFpmkblwROq8cXCCMgGiF/MSHxqglYSAAWrvWHsvHXdcb9lP+/p2QE9hHsU5eCNqN0LWw4RiYM6f81YmCmkY1ar1OayyQJ0jft8IqYvBt3z3t4MkrYM295M+G/1QDkc4V0TnIzVTxw2ZBBfMofjeh+C+5YfE15Id7Zhxd+4yQqcx5HMOLHFjI2qiWyHMFZ1aCwX3ZlGjEIYf4FoY+M6Z42gfGcAYD1IwS6KdTru5P/iBELssQFLoUXc+Jac8FOXm+NEy0/hunBrjAf3rEI7LcAQO/B7315Bu61dj4dJDtVnySnpUWnZqBwCMplhlRJ6EHnjv7hs5CcKlrw2ysZ/9aOMrks/oNU5DX3Ok52+XqAVS8hPENzpV2qJdAm+2AB7S4j6eL3YaC2bqLdLO9C0y4fPw4ABT115E/JTfkKe1QAJxLSGRbDv0ui7aOi+DJU9Ngj/iIJzz1HL3KgWamVGIv1TdCQlcUCmlLv5C5f1lv/e2EqQlFf4UwPwV/mzKIoUOKDRPaPSZeK7p18xmMJdkA7kxY2UDBDwbsllHrjGXNwD+8HlmISauXF/TViXG4NfjVkDWcJr9Emklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwDJLT6gdUqs9wEfk1hkwJ2ZPK/t9OORVWJlNEmwvZQkBrI6cl7j80AULOsdWni2oueIe1BnOzofvzvP+jKiw1Aw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAgokKi4Ks9Fw1xWrTqeH3SE3f4WkbenldFP2pR872VNSB57klLSg/5JPXWK2OvmF0vP7jAxdZUxiztO1zQF8niu9XgPqZNrkFbC/lQ/hcXU6y0SnYhU74Fm30OvXh0j3/fJngsJtaI4THtMkFUMYEIcsE1YZoR8Yr7b0ta+5ZwvUKh7B2A5y7yEvzEANR9laR3mWxcxrajRcPTXqjZCv4SOy0HD68w9zkxu7Cj8NTZ725pmE8tl3ZzSB6PF9cfM1gvG1uk4wgmH5FDfwI9+aHXxeIeji09SdcWtVt9fW7vNbTAyTbu5VT8pPenoSxsrwVEjZSG7du6Zgd5t5IG5+cV58Z/D1eZUlcXrXq87vHpufXVzJuCeg8hQxVf+J6+LtgzBIFO5LcyFMZJCC7RqxRjrklMBM26Lbgc0XaNroKXGMxo6l1c3+2HjzGs9fcShxqtJsGDhyTKSnfFMKuDVNk2jB8qM9ZsFSwCzJiG49SoE2aJz2fhbmpokB+SzItwOZn4Z+hfC3LKftS8BEduxNuPahuYMQEo7P2toYTyaZVk+36iBgX4DcD6iiFqcNN83BKcCUXR/FgFuw1mN7OTP2sDT1k4wjItZVKXZU5+pbaEJRzbYUnC6X/BUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwxRYlrqJ01VFG9DCuS7rPshUStpn1ueoIRsKwKW+OkUEnfXrJOrTVMNUe4NbazcPZ2yPu3QpnI9cMK/o+AcLFCg==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "239DEEC94E3A670CF81A2F6E48F54761A60602900E459F094B785B3EFA956C79", + "previousBlockHash": "3311C03120C86233FE3FDF2BFFD2C43AED08944E5B1DD512D8EF426BA7414FE3", "noteCommitment": { "type": "Buffer", - "data": "base64:pZmJtd4ktZSOKKn1W4i6RTh32kSfE3lOiOMN85wpkwE=" + "data": "base64:C49C2J6OJDw/5ElptbTN1RjH9NMWx5yDoG42BhD60VY=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:xTuhLc0TC9RY/Q+v+7OYyQ6JYfFqrpI9Bckk2wAr7yQ=" + "data": "base64:e0161S3H4ppzGTB/QwXVyOu0z04DWMGLX/YsYm8GKtM=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551187574, + "timestamp": 1712340035640, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -1760,11 +1760,11 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAA7yeaGs/bon2MPL2dmJ6Po7AaT0jJCWulZgX95bUVory194F7+XKe3BER7KspdmpOoqD0S14zrU30I4yvmXJteJU/7GJkfnXuaRZ6ZCvzTgmD9yItFkNdgLFEhEEiRWN+FvZjosUSv+QH9WyKWP2arySOu2E6zyevQWq2hLzCXMQDScM/40C6C8Bp2e418f/OAb94v+Zz18BPJjsDaTnDU88UaTL8nJ2tVrmz/i7xVMeWKAPSiWo6vJp2Ht5oLFyqtWgv/bj6cVvCnxIsDvZ8BoHeAuBJPvobK3ASJ5rkJ4kfzIHD7uY6SD5blskYvfedFhNJW/YyUDpUC1ObXlp4nX44fb1ejBSs1Ep3Z/dW2rbn8ShuZF1bU2VxcTAOMAlcWXywzFCyRLWWFCbRMDuvGC9J2UY+/ySaa7wLiRiPc5On4cTCN3VxU2v4PKiIVXOQ1G21uOUABs9vBXcOcdUFvEcVnTTiZXOIX6yKLm7lj1s8eIRme46jhaxtxa3GEtpqZn7ORNg131cLkc5EqTjkusKM/rxTUiU6P65ouJ8d4FMPCX6FaQ9PR/vmPOAxbNqKvwg2KhIkVXD5RUt6XUi7hl8PtbGwB/XhM7XMMN+FKZZ++gjoj4s4yklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwP3X4bpycOrCgOziRdiIkrRf2IZikUamBftTrJIdAUCHB0nhATljZq891e1QhQr8wp/+k3iHxcDcitVuR/x9JAg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAyfNYfZHO/q0wgPqPSn3dxIH6pORaHmruvFP6mTJpVzGzEB3Ul5p4QO4T5j2v1z/PKTkhg7QDrxhu2ZMpGBZUSrBfROO/cvfflisgrIqIaiKhxuq4zSSYLuyOLtrvEcK8FjeTyPTxNdptstVTEVdB11WQrHka1VEDvloNMVyzxcMK+tKuBgJHu3Hnc+e4siUc1u2S9/h6EFUyRDNNp7DiBZV/4OUUWimU3A3OSoKLremp5c33RY87SmtklT4L+MKBWKlCtW1dusOls5FHTAK3Rrfg7rAaAHgi80+/H2c17XpO5WfbWI3zg+O2dPvHjqSh80lFXKkgsW+cCAeI2pEJGW3x9FE+kLk+2M2HwKJ2/pWJWCGcc2jFttBU3Eux9N0j5FKmclipMwWNqCtcLmH7tNEnPAsEu1HdO61eQm2CLRpTkrUHg0D55kp3F5NLpxT8OJdRofYFGshfy4A4y++vrEObhSpvjKgp4LSSckeWHV/ZTTp21R7dapz8NmfoDWw78SVOolH/aJnfmFRFcaJqFuP07Hb+E1LTDc/oPChFpJKAnQDbpxNbKSQ5wr0Ge70ix7iGxm5AV2f4rOAmmdfXJkJokjFb8t2hKTM0s7XQMxjv18P3FBRSnUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw+Gy2urQhekTpEm6noBGqUzjquLTHuI2c6KHGzpf9S1M08n7dyhDAX/F7Qtz+ahALTG0p7px/YjzHQAfjY7OiDA==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] } @@ -1772,13 +1772,13 @@ "MemPool acceptTransaction with a new hash adds the transaction to the transaction version priority queue": [ { "version": 4, - "id": "12989483-d364-44db-bc36-bd9129cd097f", + "id": "b5355d37-2c36-488f-af3a-c15e7b9ee128", "name": "test", - "spendingKey": "5ce48f36df55db005be1b63365f80ee50fbe7504db14bab8049de7e2c76b1f38", - "viewKey": "8fed816854eedd1cf0412c31f27f2ac27f9292bf573b96f0dc66dee69f45944a2164e1648c13dd615ac01cf50a1712e11ad53f87756e411c14c5c0d7160b0f97", - "incomingViewKey": "df08ef25ff47aef0f67810085e5d9d91b499be17a1c6177acc2f1ff0f3696a06", - "outgoingViewKey": "57b1b8f3bdc6793e861a1b8c1c6360290c6fbd07f19614ad4e96e5372137135c", - "publicAddress": "602e8a598c0f03e1ea145d4525c3de5651ad1f48a429e55893b4c1cb0080f2ca", + "spendingKey": "eae7cd8a878706cc0870bc9fe45188ed9ded78c85317ab43a6cbbea12f4961da", + "viewKey": "c89a74146c1944ce19b6762e85dfc80fd0e52a059cf7178c13a2f9c4e257283a9b1742e20b9939d3a694c17c8739d7e8bb06afff7427b7a10991a5c0c1fb0488", + "incomingViewKey": "1dae936b952a6d873e78d56be0d4e4ca9241f3712d458b592d8f58862277af07", + "outgoingViewKey": "3efe749f380dcd0ec30002dc91df0e17a235a41cc696e452c7ce46be7b7f344e", + "publicAddress": "8d48d273e769f9e07ebf055218262646a6b7f774cdf63a641be36a638dac7971", "createdAt": { "hash": { "type": "Buffer", @@ -1786,7 +1786,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "68ba755302a9d6b645006073a898fad79cb599b47b8327e12324ebe688f35807" + "proofAuthorizingKey": "a09db12ab3808782d00ff4540d70b616249d38155672b9a064a27a34fa258704" }, { "header": { @@ -1794,15 +1794,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:QGNcrRf6zmrWnlzWDoSlrUh1iwQvXEt/3jaCqxaIWAI=" + "data": "base64:s9mRlUZLVpESI5bO7htMoonpdij2Dq4HWjn/SNc7YFU=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:FdO9xgV/dLXbpqaH7pvuV5ZqMeSGnxoR1kB2ZDzmtLM=" + "data": "base64:txJM+3fRH/BqzGo2W3pTMMxfmEdlQzAmhDfXSCEwRbg=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708551189712, + "timestamp": 1712340036028, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -1810,25 +1810,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAhWWPNPgF+QO2Y8KXf6LQta86OCHjwVaJczLCjH9WooGC1NTUPeghag+//1RarGoXxOrEgUtwCLO7vOQCWz6NqU67cmYaJnlZfUZH9wVS6V2hc1z8u/DSmEQwiLWVpoknsk1n1xSg0NC8onF5NgTGiZV5j0e4O9q7CEs3qRwC8D8NnpXHfk8LYmoy/Js39YBZsegApG2vJ81kA72jkFpy+yke50kDOvJPphwfTKLv8ketuRvOPt0Elp587jJcp9aCl5HmLp9v82d4xMpacnBKqw5i72IAecspD7ZPGJ3fm2Tfi9BBQkL7zw5Vncb7v8o9gbc8HL9226nJSjPF78xNokrX1P+KsrfxtAhZnBtwFRbXB5EDXJkt9C2p6rhUTmdlDx5W4Dmzpsw8hoSDSoGYcPedBwKRWBUYY5aIpoEZmUcAhmkUix84iGRTJ16uLlERwW3s/SVtGwSA7sXZJE7jTK66btQLf7gpe7uWahfphr09chHAbT+9XLGuZ5SEJfaRwGasO+7V4aJ9pw0LKSLtUCfVRACCIJ52DKy91r+OuV7NPMDgqqpjzhCti8mxQLnRpDIxWqo1M1RMMbkbGLzZGCnqmzUFJ4cIavQGgrwg+ZKxO66oR9SER0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwn4+vzM9Bfu90q4yxaQtE/GAHIjqPrv2vzLRtf5Ply1RhUuNRt0hvMkhCodhGkQyZJ3xoPY9E+8T8Ax5buXB6CQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAgw4Hp3/DZcq298gS3izKWFsUHM0bB3aYyM39TYkZd5Kp/iVb4L7EZOSB3qz27URyLSgEOFbT9PatryKNQS8hDZOBBGKvHkB4GihH6kXlkHe0gT+h21ATU4B0rt9WDbYIzZyxk8NLdnzgeE364M5OD/sG3ZwgkdO+Hh8WP5FGPbkFDJfFYVzpCJtmzSuEyZnYUxciempQIR4BA0Dfq+tP6jyOTFJEfwh6kg0y2mKPaH2Cf3ZKTcwklLreEGspOy88httng5DdlVFaJdL3oT6o0j9gxbDewNJNGM+nYM5uo4A4k2TzqugAJWg+3IGRjtWrR2wIvUeFWA5xuuaOtEDq76FadV98lgm86R6fhjdD5t/YytNJtmQw4oQW++DGIAtwQNprlLMezA1LyJW5BhaH6WFJiXIjeTMLimh1uFwJSAZPPSOeCOs3pZUUhSeph1SowxrF8bG/OPhHSvMQlQw1pFYO3qygc1AKF9vgLMX80hYfZ+0zRl3Y7TM/Qts3/u7ZFylauPWNW/+kLYb6J31Z7o2e35H/AifnnbbyD39Cxcunt7p7kQdhuLtJg5bcywMe9FkWCYUmhv3M1TcXett8QVTWTyTQJx+lznB9PQafZIMUEhMs1rlgWElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw470bjEb08umUeSbS0flRWEXfNNsabm4/yHyylw6O3aXHlkWmkW4JLCIHgwNcdmxuxGTM3FKxM0HODLsrQXOzAg==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "DDE8456547526322B909B6A7276329496E47B6D8071F24A11605DA09005B54E6", + "previousBlockHash": "CB4C05F041EF3D16B4AEA3A61FBFF198AC2898A3F918DC87F9886B5A2D438762", "noteCommitment": { "type": "Buffer", - "data": "base64:DKIdE3iiyeG5GIxtQTE2kiB+F2HaEm0GI7FwZ8GALGU=" + "data": "base64:X84qrum89osUZduqCJgTGhPGOKh1EsooHA6HVPwcHWc=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:qW7AFEZj5Vj/D9FHvhEjzeIKfN+AocmitUQEUWjDnvE=" + "data": "base64:c9nKzIhyLN/cEdu/JNxjfpPWlpM4D9+d5UkYj4NNVrQ=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551198332, + "timestamp": 1712340037495, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -1836,11 +1836,11 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAd381je40f7G2E8k71mUO6GyCc5OEHzEK7juJ0Oy/RU6CnEbvhlnF6m8jRAklYevGWoUtbxJ83jCR7T0sojee01b6QgEGxJSSetwlR4vCXsWpIN+qTVXl+JJ8zMCq5A5M37lhuik8HtcBV0AOFpE0Zm4siCpC1MsjwnLVcDTl0IkUXhTzo+ogImbti/ewfTorxxj4HuaIquMxO3PMUjgv7PxcbBOKvTA3BABsXDhOljiSiTU5H/KR+kTc0ZA2uq2zzU7vmPNtkXMFCM68gOb2X5/rD488cMYixechX+q7H1/34dNxmMnAZDHe1JiZxVcKI7+32kBpulU6G6AnAxioWHVgq+lWfXtqdxuiTDX3PTLP3iMJr6I9/dVL+M+i0Ihw80nLpWv1zmZIaVY0meIvEo8GPVj5hCuIt/lQaur6nyeJL3SiHLz5OcuCS+p4sjt1cna0ACVfyGtgEejHmz/4Gi3FvZALIZdm8fXToUcPGXjI7YCEE2dZiM2w57HhSx+BrWEgLgeSp3/5e8ONDUoJ9WNybD4ioEn/wfrtFDeUcbcQDreAfnb9zdzPF50fS9TYjSkYw1xeU6k3zDdsDAoNM3qh6H0HHLRHCptE8XUcXT/9aG9MorUxYElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwmQDCRBTrspkggEfHS/UEAFb4hriVbFgtkyKRBVSBnpSjpTHLmwS6RBq6VduGbHo+/9wAFt03OoCShyg9PeTeAA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAJtLd7t+hYtk14fW+xET9pDwOPD86+l5xcYeRFJdDVoWDcXYWQAcr68NAR9ls1TC4Xrql9Emaz18AkXInWMoJfhZRHbY3wLuaLGLU7E8ye12DSx6I/EmGkg0fmkSLYmm2v5YJEfqqsSSOm/FhKoHjW0th6G34WdTE7sCYtPz5eMYPeuAfaCPJ91grKQBw4zWmFL84wWHtH/62BOkdeudlC2Uyly5y3eSE0JIORTfWj1WnHXYvAUYQbEoQCLcrCtoUCCVo6J3vR9Ze6Wl5sxiHpsCy69Fv5BFxwxjeR25/GtuFIr0Gc13JNwVGvBAVlinevbl3AjUbavSRzwRh7ueMhg7N/Z2D+KZT8PbvwdatYieYnUqvgKYy0JamGfoiOdsH9xN7oOwUFSfbNZQb4wcD0DAh+PCD8N33ehoLDFMQaTeZ1GGoF3FXRrWJGy7drZ7LhUpeWwO2mmWbNmrX73n1ZPHJkglr4afcRujkPtAmp9lH5V7ICvBasqmZw576nKUHHI3QqvWuaWrJ5HhTzweXwvb1K/gEnVEKwOD1b0/v3tfalWqOx4PsXQNbzi8uvQZidsp2fsHsxCwqeDIazBE2ex+QkPUFUKZDZn0op0pbbZrbpckkPf4ZaElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw6f2zRu/mPd+9AefnUeDmPqmHG7L1zTqeUdUXU2kGxjg3M+PUMOS5mY4g2d/uP7g0jCmbswZAEtZRJmGr0RIIDg==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] } @@ -1848,13 +1848,13 @@ "MemPool when a block is connected with a transaction in the mempool removes the block transactions and expired transactions from the mempool": [ { "version": 4, - "id": "ba274548-6f99-4ee2-af97-1e6d83864364", + "id": "0b7caf92-890d-4223-a93f-ff0db208b14f", "name": "accountA", - "spendingKey": "6e85939e2ecac62b66ff61b531e3be3479f5b1d1c503baa0b12957d233719323", - "viewKey": "244e8677278a598cef7e76d8a449688ccac0d26a413f91458f5c70801aeb2146905bbe96912f7b44cd92866d04d4ae6e7a214cdb8bbcce6194ab884e8c377789", - "incomingViewKey": "f7a8e28dfe80d19729ad9e9c0896b15521c5e63dee227410eae72eabcc82b501", - "outgoingViewKey": "f1fa9edbdb9db719079a8a668885421d08ed1b0bb3996448425161ef4e17e1f7", - "publicAddress": "ce612c8ad32df820a552858a1cf7699eef9d3fd142175f4ce3bde49aa5965d06", + "spendingKey": "23877aefe3d3d043dfb4085a89dd8546c6c0b02eac9ef77e55db271a34953a03", + "viewKey": "ecdeb04efe395cb9e5b10145e6b2062e6c0880d182d92333400cd5a1ef6351414c7f7073bf3e4ff3a9425134cf8a9dda5e423a91473054e547bb06617dd762e5", + "incomingViewKey": "8beba287463393948a4d4c5892b6a8b88f18ffe9b553431994981ef927779b00", + "outgoingViewKey": "270d3a12024e75fd204171c1bd5aa35ebe7afdc085779248099f852cc8a71f03", + "publicAddress": "90ae0705b44309bd1a3351b410dd6eebf8f373bcf28967b5656d55a332066e3e", "createdAt": { "hash": { "type": "Buffer", @@ -1862,17 +1862,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "f139a108e68d0aa14d80d8e1f20e0afd011908a772b78c59500cb63efe456d01" + "proofAuthorizingKey": "24fcf34c3e25d4d64160f59e77633e65d6a97391b89e01d6fc2af0eb3c2ef202" }, { "version": 4, - "id": "b419feb5-23f1-4df0-a976-b6d553a6aaf8", + "id": "18be6e10-d3b4-42d3-9365-f9bc57f602c5", "name": "accountB", - "spendingKey": "98d2bb2733d256f3cc6f4aa96c0ae920a86b67ec9083aa507b52d2a19d11bc4e", - "viewKey": "8a09d45d591f1c3f0b3830ffc991f7f027f12571a80b092fe256c418c54003b0fa6657141a504a0566ff3b6592e838b4ff85902d7324210aaef2e83502d6cd66", - "incomingViewKey": "4f9a9aec275df9c28a8ad21740616a029740c7788805efececb16da70080aa01", - "outgoingViewKey": "52908e61080f769e6382e1e9410877f39834f22dfd11c52566a89435bf848f9e", - "publicAddress": "46fe9001872d3a49cfa5d6ab1489b934a350b4923621d3a11b2f69d858d2145f", + "spendingKey": "e81ddadd9d04e6c787f4e9c4a908c8df40e87d4cc9f0de7e379f46806c85e151", + "viewKey": "748d561f93529ac83037caffd4deba137222cac694a66d479ee9f95deb9acb09b64105703429b8368d1af775d993f92511778df2be674b07dbbdd9f833056c9d", + "incomingViewKey": "3a1f667a46311f3276520bd8560d9282de97b61559a194681f183ea2f9e92304", + "outgoingViewKey": "3eb34bf7aa064722ef996508fc297fa000f4d6b17161b13cc1fa91a1d1f3d1d6", + "publicAddress": "d4075eccc23d8163178d73509cdd984c2c43274488592c3071dc13216c114625", "createdAt": { "hash": { "type": "Buffer", @@ -1880,7 +1880,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "6beedeee0987f037eecf58441671829d74b4f3817c511eb83a7d4c2bdfc66f06" + "proofAuthorizingKey": "15b04825faec9573d9798fe42cd986b47a491ce93263052e16b1ce1e93d8f209" }, { "header": { @@ -1888,15 +1888,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:4zOyLl5lb0uTnSwVW+oko15KZxiDhtQg7J12k3HiEU8=" + "data": "base64:V+1koizons0Qu95s5DMhxeLtvew0K5DhPZbONM4/pVQ=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:lDPgVJRlV0z7qKD6SQLoOkYOTpP4/b5U8IaSrXizfKw=" + "data": "base64:YeJ1ehp9xSiWF8UL12pcqk+olw9ZTroiRt7qpeWW2Fw=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708551200185, + "timestamp": 1712340037901, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -1904,25 +1904,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA9ahBKQwqVvQR8Trrp0odd7X+rkSkm6SPqf7wO7Ki/Gm1v26yOZ8/AT5II4DT8MoEvSaWhTUIBwLnFX5wBWREIj9R4/oWtVBAV1rxbxWIllOLQpWuAjuPHauOkkSSCPO7dOklp36No6b36jKK9LiOhXppBHWsfyc7G10DgmnE6j0A6h4JIBqLiBa/4RLJyI2xP5I8OCP65G7pkPBFO0wjWeZT/jcvnYJtfM9BnPxjOf2sCBCXeaVrViNKiDl693LxyHjW35AQjvt2gCIH1vRcDivV2w/ujW4s6q8bwYE4Wt75X9HFgh3OpNi0q3UswpP4cJOVBleG3u+M9nA9j13LtDC+NFNn+HCFOAFP6GwKbNEqRtP0SqOW7giSNEtdhYBjjklLd1MRL3uyBvY2f8qoU/qB+BjGVijXuWrvBeGye2OuGczL2ZqdhsAFdzQolsLjxbfVtke0KAHTmhlsNg4TQViTicx8m4kvI+imMuOrel3hpJV4/dbi8xIRrxBXMo1HQK1U2LDGxCJZCUXYzro5kSdoyJM08eIHqYczkTqRptQEsn+LGWrnkgNOfVtKyN5Mb/Oewy26qfYCYcNORNBAnHWWRLz5rpCAFm8scqwLLP80/Q9EtzF94Ulyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw5agdRLRNd2tOMseEreZ3brVWWS26k3zCedEU0y2sxtnFPH2KPcl0JOLwnfHUQZkI9WYFgfKmOkf2tlVRXn/rAg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAn/wB8fs2llvhuLBPuylfHeeslKrKijJId/TVtRXfOc2Frnhec+M0/+VPE+VLegPIgZ2YE4wMgYq2x2KWl02MOlz3NLo+XGX82EG1u6cD862yZ1B/LwZoRuX4L/OgrTv+CCQYWYH/UQ2PYBQYhaG7JRHE1pk0Z0W/JlDuH+15DSAGLgM1X6PgK/j/TpMkGycmIAmiOrqVK3RE1MMOdGSjTJHdxy93AA/iQvEJHk+YVFiqkTlpZtHFh+/RSkcHW6aOtxCs+YqE9tfibCL4uh26sS8XekiXchzBfa0GSN8kUjZOeXPf1w9iGd7G9p1FrSNjLCQED2YpjBSdQCAVq/3sN9ZnizhPd3sA2iWhs4jXJkToY5PNq8yYcy88mwxc8IM6h9zwwuDGHUeOxlxcBaaAYrDsZTrr+5j1cgbl/dXSXTdgUpxhDl7HqWaHk8WVcHJnCp8js3kRFLzQoXwM7egcuMFWWqm2YlKw2nctUwBDS6JKzvJQcGrCJhq8GsxotEKTw7tI3kz3WU6mUFFh4WHLJkWxiIhqVIJADedvBl4vuv8V5hpuXYxg8eoysuUSdkcmFTJtqaLZUQv6TzHwnbihF9NTDXc3bENboEdOQCyF7DEIcAftuiYzj0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwHBqmUZY1jsD75HVP7/jL63AHBU0lpX7NgYoOLrXjLlQ2adqSfEJOAdzKLamy50L8Y0nrw4m2zuwz3bk8pQffCA==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "A6633BADD5D04435C0FEC76BC6078531B6CBE694D5349C51F521E560BCFACBBC", + "previousBlockHash": "6DC231758E494E0F385DAA5E3690E2DB2FE5E8F04F7E0058E9E44AFFE9F49430", "noteCommitment": { "type": "Buffer", - "data": "base64:DYz6pb0TaIBF07rN+CyviKgli8ws1uhPd7GlXgunyDc=" + "data": "base64:/RG6cSVfwKXSuX1Qt6IesCQHl/Ozh7OCelLisYyANBE=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:h0sfNnQK6Nt++QuoNW0VVuggOsNaEzp49U8mykBFFOw=" + "data": "base64:7JAiyLlDl7y0SXDEIA2Wa8WRd4PJBS4XxwrwughZV10=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551208014, + "timestamp": 1712340039374, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -1930,29 +1930,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAA/KeMx0AnGwKIrbDcQrkEclYFTnpghTzDNWFko82T44mmesYWHt90dzfUCk2qddAI1l14D7nwRfgRsVwo3AifIgnqnRNswJpUgHOX5TNemeqQQ5DHe2eAMFh3CkE5Tzv/Y882MopGvtNC25S/qvISVYPbpP2BBESfKx03w0DQW8gGJuvLxlvt8EpzZ4sy/xPM2/E8pCFXrcLbZOv+bawbCybuoQ8YUSuel3+0I304gqGCOUwpJd6IV2ANxR0n65HwUmH0mK8fxo7DzrHyRyABDgOf/V1oqWK5rNYrI1yjMb/m0EmdyqQQ5RIphQ/lp24N58hcoBIHhigXKnhNvg7yFKhvgEZdPi8tlp6m/t37z0f7BPgudUNoSmN2Kev6l+ZFdnIntYen1mf7KRlzkC/uvKeupS5mKp7dIvhTcO0HCRvrJV+C3G3lPesTOZN/0VoPB54q2m8mKpKuZS5ZOqcfg5ox8fuGfiEPE5FSEW6c4PtQC3bOosW9IINYVU8ZvtU/KqVVqujymFUyB3YQUUw2NfYPpgAe6E1MjLFU6Dr0+qcMlX273JcMia9/EMfkM+XYx2XGKXDQt3a/gOubJ70xhVbzwCU60G0orSRqM79CwaZ6kTDrm8z+hklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwfOcBHYXaXIE2aWutzX9a50p49MPJ93kX2CCFHOazGmEhMV8SjLplR9TH6o2h7wLtrg0NqxcO3zIUdY+RBPShCg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAA4f4FFZaA5BHhXCciP3bLIZ+fxw/PyS3MvObnTZTpcae1b98g6yOxcJ4ZCsh/rLy/O5a+l/Yyu5g1qW/xlBHULJ9Lh8ioUYumwF2X/hAFlfWoFI30su+1Pgfq+bx9tb6gUOuFApXgCknLlGubMqa8unZb/rte5szWsx3r/+A2HAkF3aa6UoFGFrYE3oqFSHBfynPqA0jQHzFt8vR04du3gjjjhEbi/KCpcIAJBmbm2wKHebPsJOJaa/38ZSnQ4dDD97qu83aTxKE8HPGy/Y2hve4QQAAn6xqYRkw8dwCx5wXnvRDi3kaJhYuzW9FLz1ZcgZ++vDf1n+2wdJckK4fI3ajcw5nyNciZPwodmkGYrf2gWgCR+ToIoVXxGV+5QnUsiq2n5FIeYdb3YnyEWtC4eo9HhH/seshUDPkGM5u4cWUcsdkPfp6FMRI8pvBdzLemiaDZGyrPgHONdlkJN2fyS1iWSOr8+zLEFQX+QM0RPOR/FnULwsGA43+dWYz0l5eDParYMkWK9oQOcBXfI7B2vygPvRGO5gjkzHlZPPWvTF1KUvtcYb1rx74z0/CP0N5O5xv9y0A8OiWaetTNrVxHfKQDuZl3syuUxPPWABqcRolxL31hTVdsoklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwwbDHaQeIZiSPxjxeCyyl78Vi2EWcw5jHW4YS2Cfsj8h215Mctzx4bjERkiK5zwWuaodH9KhVBHtJkWElwMbcAw==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "A6633BADD5D04435C0FEC76BC6078531B6CBE694D5349C51F521E560BCFACBBC", + "previousBlockHash": "6DC231758E494E0F385DAA5E3690E2DB2FE5E8F04F7E0058E9E44AFFE9F49430", "noteCommitment": { "type": "Buffer", - "data": "base64:gukSdd0fTz9OX6GjAQWJktz6FdTGUKso+8us/jFzjEw=" + "data": "base64:ZO1DzA9vImA1+kSoeDKtp9FPwTaM101O2ILnaTAdvUQ=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:02Jqdxc3YVPlbSvbz/3kx9NBLUommxkfPCVj5BnKaO0=" + "data": "base64:nVrw2LZvD4xQtwHPy+RrWa+LL92pBMhzyB8qCDtVzo4=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551209724, + "timestamp": 1712340039665, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 5, "work": "0" @@ -1960,25 +1960,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA2C7x5GUHKcfyjM1RRAn9DQJIZljozbm8vjeiffqnwJiYGK47iB1FcTqlnIkuumEUv1kXeeuwA0uu0em6bBZ7Us87Ha2X46WiVYurf1yzb9S5CFYv+n4MrHCXcnd6eC5a6pjdz1SPwv4vW7GRINwVPzJ3wKGopTRMTwzMEl/WxHgHbWrEFGepp/KKxP2cR7+l3dGkiE7JaWkl5htMdu1Wr3HhdAzdXOU+jXurW0KxaiOU+9O8OU9SnnneTxscdcwhYoj9BqpJ0Ol4WPOGgUaz8q8bbrNFv0V5P2sltrqE0J+fZlBRBd/SKu7sZy/CG7+DXq/tWwRDU9cMj3KT+EskpGVV8PyDFt+GupnmPuhvtPvgQCvSCnuLSpugkSirxWgtkUzKc3mMiRCKcpxZo3Y0EVKmtW4PnUr4bJn59N3CXMVUcCE5IPLrRX+p1nJHD7AzIfKbKox1Kx46nMYXZlVb/q3y4SrsymzRTAm2Tl0o3+H7ahEsyeYBTDEta6NGmXhwFKJjzJni4o783XjTT9x3D+QRH7ucq3Vrdy+j9aJSm30laq+hzRgMVREbfqt4qA7hS8yJjrIA5WvnjScoHT6xOrfPVGm/chSWkyAFwH5JotULcAINsHfwDUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwpW5HQujd9rM9U+/JQSfhiE82Mx5D55vk4kvbXAUdmbRlF7dFFrun37ovLU601jUipV9Ch9xLHfkXLx00ZqXoCQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAB92rzrWbAJ1jHeVbe63RgpaBOSQIPNswH8l/bZmnasGJj7MGAOKGN5slWHRqsXU35dbLJ9pBQVtwp4hUtbJhQXkzvB/VRKm8zP4iydUfK7+QZ7cKW8FBln+tCwGd+0dfnk0RieeXrPibBqbHrZ8Xwv6XusUTGaMMTrCTrhU+7PAHCaW+QiI1DKy6DRnufeLRosMpsuQF5T89JL49yI9gyj0b6TEG7ssEwYRhc9Hyc4uRZw4sTb/nlg+ev4xgM8oomXV9fC+J+Y5mN4OZgO4RCo0cjsy8Wg4XNz/Ave8Iu20Ce/Mzi7oKiNcX/8WT/0pZmra29JxLQLw+7urvgolqadg13C3Wke9OTtbDKkQK6hICdUJQbTBQH6DWKFPUwRovz9AqYA00yunIf0p9B0rNHpJkBVZ7W+LchDsBwn+cpJ8m1RZWJ+pfBc9AaYucq7ZSILe9UJ/p3lXwhSXhJ+8bCIZ3O0jzDLlrEslmnbYd58h/YNbUIWhCtuS9Dk/cmTPunzxxa1MJm6B49mMyHs4SLAyx2c68RVD5bo9Nza8NFSlV2wrmzDkpOJJpKSM1scXdFbccZuRVoscOB3zgOgfeL9MKPOtkJfEsH9+dUy2ndGnJUtKncPJX+Elyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwjjIz5CmFF/r0K6788E0Fmf/JlK0j9n2N22gwpbtW+6fThF9QuxDc4SicJkgmtVJUJdmsejb7xYPOFHeT21+QCA==" } ] }, { "header": { "sequence": 4, - "previousBlockHash": "1E66EE0FD8C0E073804601D9C2CF468EF76816EE986B298CE19608D161B01538", + "previousBlockHash": "B36FC8AD049793971E587C4A903B95C9BCD6AE3C101131ABB8318120CB95A4D8", "noteCommitment": { "type": "Buffer", - "data": "base64:m8nBrln4gw02rRu9VUIy0kwcc+ka3CuKLH1OzcgiAHI=" + "data": "base64:6Rs6DMBSY6HfkP5en1Q8gX6dwE/xwxlqAN1JwMBdw1g=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:ggRivICeV2qbra4IQfl+Dyq0YaPlyMBJjGHKgkyLzBI=" + "data": "base64:btK9hHS1VQCkN7O2zxMhyIEidpX4NzTMGj6/4MrqW1k=" }, - "target": "9237815341750015092140817300043113376661752366206318446334046747329935", + "target": "9228823284279306817296266184515742822248210830185427859262273659833347", "randomness": "0", - "timestamp": 1708551215518, + "timestamp": 1712340041230, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 8, "work": "0" @@ -1986,11 +1986,11 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAd4YPgc7siDucK0CsgzIAoBvZSZETkTugfI4xBvWgUdWm1UoeUPzvqSkWxDdMF1beYzM8XofwkKEj45eBAkGmhr4fO81bVby01yUUtUnPFOyThY3VVatoxFUBJ9EO8L0GBU0Ebt6akRUrfa9773FKINCr0LmRrd10GiotpVr6trABmxMrRXThaTM9VmkM0u1PJT+4i4cKU6nKC/MMSNhUEPl6KACuUN7+nRQQ1bt4wea1tdARGWfv5GbpfgmRu9OxUnOab+00R+6t//PBbr7vObiskRbgu+gEDOoGL0uJiv8HeXdL+jgri6tnTnKN1cnA43lh87J2irgL2WutQmgRGIF34EyRRxzVywL9hGS5vUMaiMeNHdEG9Cj0nCk2isou/MSitRwEMswo0Je6DNrs4a2ibp6fvE67fyOHtFaeyDfH2oFsL/Y0qCYWJm493TPI9EY3D5tWB5QTmyR/Y1A9fO12q9O78t4DP4lsX9khrxUh+VJYKhuMa2E69dSkYysJ9OVixfO0OLcrSSI2Wd0VqwcgIdVcU4WXY03aXqktcgPpN5IKWwl0zNltMDBd+pQflFrk0085WM15IYxxsLQCTsU2RTEFR67k1MtTgoq8i6Ou5iURIZq9eklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQu09tzb1R/MTD1tJBg7C3rFpaMc+qQzqwh5V5MeEpwh6Wdt4zouvJ4JlmpWd5Rdpze7A4pq0Sd0okrAg0VF3BA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAzQTZdoNTCs96vV8g88kL505Q/oeswv6GBBHmyIHUzFGV4UQw1ALyph9RPk43zWBzc0SaYv0t+c4nXEAW9TyX54DdBRcZohf93PHH/rtFi2OKfkdXeZkOii7T2Lbr7zK1LzlQL6YbnPzN4zPoXiFN44E0Dl2ByG2jsA5rUTwYgi8XsBFNuZxLbsaycOaBwVE3RVv7w0Hn/Y1LYjSS7kuR6eLMXySMDx1+zauNRJSsI5OqNsrfA1CPa6MdlnwwEf2D5rYXXhRn0f3nkwj5WadnoXtZn2xUVReOeXEVn7z3Rj2NbPml74eXO3pFlOVcEhl5EvrCpW7pisyMabVKi/jf4cSd9y2FLd/X8vgaGS3eTJoFNNO93MRFRG9XPQvjq4U5mlUm0EeyJpy1efnpBeHIuJhPSlPoHGaK1fnwaaFnwtOvJegxeVi7XutXInJVgZPSxNidaDMViEq4GswdMo217lbGxaqB9zwQqtTOq3NWhn38etL5EygIMqspESmosN1xoixYFn18swevGBXOWPikiu1ZHUBPhqqsiMbwAqiRO4BN40iHmcF5xOg1qJUYHSWzmfSaK82eTutR2MGMegtBdxu/vba+pGaaTOPzVtTNG/PiWLOwaMYRL0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbWH2NbC5RRmL6JtfhJX4Tj9P0flWsdI66nuEN0AbxrDsE55XfqE3vbc16NARuk+kCAUhpbMFeheLK/LNiWj5Bg==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64:AQEAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAfPV5A6Kmn8nDpGVXWibrq/Fp/4lKfqZ1x9f0L4el15KrL4/kH4K2LaQTXlKdnWWsXHCrJZPvTV4OgHiquiS1ctOYHF9mDVA96/a4qURuyQCT50iN0LWYJ01eMkQOK9USL90GM0Dguu95EgeivOC660EZiO+ndIlNHzqQ+DxzOHoLAtx1ot95B8gQNKOIK82ttcvKgUY82uhGTj9NjCbRAJnmgfVX3agshZS9kpecK4GyZFxNtPWyqUdw9JA+VVvKU6zPrY4W8HzWcUxN2WgbUQWkSem54M1bGDeC1oRK8Ca8diAzROP+gDi8m6ik3RrHOCuWyRhcvtd9T+gBevaMDWTtQ8wPbyJgNfpEqHgyrafRT8E2jNdNTtiC52kwHb1EBQAAAFz0n+A754i0LIA5d07GSPJRL5gS9c6aEernQG0BUrhLdDQ1Ro9gMhaTfSf+gqEr4fPfP74ez1+r2xB/562hIodx6dJI+VBUhOWIQcMqHLSieqSjrqG/ahQfANsQg9FRDoa64TTghF3WmfpPS61nMVfco9Txv+S/0BKoaRznVLuThTOZJCAnP143q2xSdXotgLPrRGXFzWoPKVu2SxUkuem2Bu5odtWglZyRVC5cl0DYJcznuAbzB7oUphD6CMeIMAy3GsYL0rYS0G3S7Hv3EFn9C09/wVl5tvS5fapindKOdiMZ4hv/yRBpY7AZxgPoeKXkwImVEcEe/pD7VxEaMbPMK0UJ9+6crppwUxlX7HvgAxWpReLOzs5/32u09IMRgVB4nupAf19UpWvqIzjVr26gh8b4wml4icN8TVVO0pBndnt4igeSJFRNHw6zagkuO9liwDIXozjmx/2JmEkj/CN9EmQRTseX5IG8ti0tzgA77thX4mymqekJ6GCRFoQE4XgStUEajLUf3XAKQyGjqavScJLjeAfwKBhTBfmdXCfpTPZWwxZ0Z4+H1NuKXubkI7ZKE7+wTUiPd7fYh7BmHDvZ1ylk158Fkuvu3RqxjcCAQnW2ZFWwTG+0Bqv5CiXq1h3p9cLL2A1y1UIUf5arX9RwNU05gYX0PsLs93J8CDzL0SkHwDeBwdhdbJqMBsQo6bbchyNZ1J55FQ5qq/7aGMcqiXoiNSz+5a3FYnv6upyfzILw3Fs6AGqt7G8nJB+P/0UXpDqwDIQmuqgBI3sZxZburb3DUcyLe9gEdyoXCVN5XWb29NaBQMSyM+kNf0zGTidPcu3ok/dpxvySJdRgkHwLIMqOE7d0YkolmLeWWJbfF2/G21DNhSSBx5a1SdYMCIB6GnVqPBBHfkNfnJz/qRHq41gpQhu4KLc0CGuHfK1FodbfLiMJk08CfwC04AKKN4yxrzY1fg6TshSAaN9Mccpw+ofU1inkgs3wBxsie42hYsKrPfFtSq+vaCciBBSwzhG+XxOGzBGIroEx130FKvcTTPm1nRHmItaamDAjoBl/1uYTEiLdFsMncGmuV0brPDPUwMD7p/NG/9ktVqaXuZi4ay2Z3QGgJQcMFtC1hLt6044Tg+XBWYnnUXC9s+yH/DpTxBSYW79YLOYBetblZiRkB6CTR8Rx8LBifYTaVZsVeUQaIhLnFeE0cYpOHczO1OYEHiGqs+nYK/CvRuLVlLp8U7/skm+VhKv96oACuukI8MEWTg2cDuQUIuv2zNreDYwxZ+3G7IrP6ZGPrvT8G+Z2Z1UQW1fn4Imoh9X6TZcnOAPA+m+y1epcGRzToe2V0pSw+T+J9Jdw7eFvHivtFR7Wel5ePD1egK98U/VC4dwGFbanLEs/+QZUz/Vk2GbyAnq7Z/wgqky2285fmtItf5xHwwF/Q9UD6FR2Ws2L5RuqTw1M7eKwdMPNSA+yr+tEdK3DJGaoM8tiTwKEQFVQqTIroSp+6uYrYN0VsgGm/UbqrMBmMwzHym4pl1JZttkNXcDm7/As/EKxuQDnWc2xLfAaEPfL+4Gqty0JJy5ADVkefakmGmnLa5uyBHWnuE7OCg==" } ] } @@ -1998,13 +1998,13 @@ "MemPool when a block is connected with a transaction in the mempool removes expired transactions from the mempool even if there are 0 expiration transactions": [ { "version": 4, - "id": "8d9baa6e-b633-4396-ab26-157043a3c95f", + "id": "e3db8304-4a79-477f-9360-17e0211a6020", "name": "accountA", - "spendingKey": "8214ba91f11d53983e16d18bdada539512369e5db1c95c86e637e2080dfbee0b", - "viewKey": "c0e1a2d0a486276faad9af0ac2058113b24b2ec205800aa7b962ed7dc89751007e3108ac8403bc3cc0ee5bd7af41a5817a6446a97196fb900c0d4e76ab643037", - "incomingViewKey": "b49fc8a78ac1981a0c47306742b1819ee76f8ff0f20127bfd3fd85a903221807", - "outgoingViewKey": "0764239d4161fa65f573d824418d9547edc94e8bc478d91b1efaadeff922f9e0", - "publicAddress": "d5ce3cd0c87792ab85b043d49b503d698d72f9b9675e6514f1c1cd824ae26133", + "spendingKey": "c6b61b2cc232889a420451ec237bebef7fd628e59a5d65a73093b0b589793c96", + "viewKey": "73b41a07ecdff04d4f4f865f4ccb730e30e75ce706e0fd72f4db12acb2daf5cfd74b6dbfb194963168606f6f7a9b22c8eb8b4efbd71c51d8aac5dc714c0838cd", + "incomingViewKey": "bc9dc394796ec465ad773ac88635ce98369deec30053083ff8f4dac1848a3103", + "outgoingViewKey": "f2a667fbef908da8efd0675f0524dffe05007237d1805d901654081390123756", + "publicAddress": "d1ffb9b1515de062910906ee70d36569a63717b20019541f71f049b36ca837d1", "createdAt": { "hash": { "type": "Buffer", @@ -2012,17 +2012,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "f9ed7f2eddd8819a8b4769518ba8d3172996ee8e352c93573fce94a114038103" + "proofAuthorizingKey": "b04ed8b1aa22983cb4a2104be8cb42121bf10778216e8d53ca53d292ffa2ee02" }, { "version": 4, - "id": "3a7aa898-64c9-4dff-98df-ba6967cdcff8", + "id": "2ae126fc-c8e2-4ae3-bf7c-26ae7b0395e1", "name": "accountB", - "spendingKey": "c905d026d7a6fb7c7abeecc2ce62c2d82b81c446fcdac324772388be0c72614f", - "viewKey": "a680057bf5a0afa63e9ba56ef04e0352ef9c33784549eab567bb082adf9183191f4d3d053fbc9daf0cbe7beeb78421724314b2fdd453c3b6a76a531312d2ab3c", - "incomingViewKey": "444a6445f124c5a81c11f20712e0efc4dad265114496d599510d8c5be6e85201", - "outgoingViewKey": "8f78d682392ab0874033add94692d91160fb756830349d8990b47375e993ee7c", - "publicAddress": "64e215f889fa5df3811866a6a668b5b9f5b390b92597b97d6837db017860f45a", + "spendingKey": "8b8566db8347fca3543fb7e3eca8d48c63db1f10fd2c5d793ff0d183131cc800", + "viewKey": "cdc396b9e23412451d171e5acf3a2796fae8e9835b42cac05414222331fa169229df2953e9e72fc7d56c7f3a181ac9fabef4bb376973f60351e0df89dda07b34", + "incomingViewKey": "cac5982b7ea95cba11f16a85fbf5bb9a8652ce96fd33c9439d903e2a1313ca00", + "outgoingViewKey": "3e867fe35e13fc65016603aff445188a9291430b51011d06f4c63d7b5820b96a", + "publicAddress": "df6cd3bc61ef035ccd6dff5f4b20cf095cc3e690c38901fe2cfa057cde1e1b1b", "createdAt": { "hash": { "type": "Buffer", @@ -2030,7 +2030,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "3719abcc86354460af549ed78aa3dbaed97b572eac688006f235e3ed40506a0a" + "proofAuthorizingKey": "c5de19fda2d1c8c0ce7e95a344e26cb4e3800e96ddb15057146ae99bc3575b0d" }, { "header": { @@ -2038,15 +2038,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:TTt+MKdVyooYKfzHVDmUe1LnsYLM4SRSm5JWGNrr7z0=" + "data": "base64:PT3DpTHlecpkbq3D5+xAn9ibUZiveKg6gC5wMUk6ESw=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:thwbJlOdujBN+/G9fZN3dH2KiJP8/KUfYkiQo+o9VP4=" + "data": "base64:hjQn80RwAG2w6kSJcaPE9nSLZmaOjXH9L5Bf2u/+tZ8=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708551217602, + "timestamp": 1712340041624, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -2054,25 +2054,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAxuJe9XoqFYNk1Qg2rIbvNmEvsKte1ixZtbv9sBWoZA+XUHcVtFMww2SWfCs3Na5S2XTkhb0glIfelvLIcAYEuawuRg8xBym48lqmOKXzGae1yFXY8MllXHp6euzCVmYx2BBpcvbTUryBNuqScl1Ubt8EZbnAR7ie+SV2wpEKil8EISqf0b6ukAhGwMQtIe0Cq7eGHrjYY1gifYYOica+75/P3b1da9Zkh0Zzfgk/zRWP30gUlYXa4I/5FaIpblQ+KkUTizudciqMwVsNqUo1/jjIgDyfttArxTKH78PbAeU74i2DrtmH1q0FiDQ4RgAzMRtQNvQkzgoi/v1estmbpguwmjpYg/VC8gpAOPBzE5iHsARBuOH0iw3MFTe5aqUNDIJ3ZDx/ajFshqWkSj1zH2AiP9Pg8fj+5fL78zmmXz8m1QVzGe+YQDDl0Z9SHW3XbcQEbUevFszOL5S8aE9EaUiDh7dMtPvjZ3WT8D+s/ZMMpQ6aY94Glx5doUweB/lq6FPv64qe0zqE6FjdneHQXofnJAWS/T6sSwKW32P5KgXeYxhzawQf09vDp8dpErKcgxiJmqTLRbaMaGZXMzopYGN/E1aLliHv1lGuFuLFrzvWnp+LfI6F00lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw8O0yehynMajHMgACZCq42UfxA3Hm91ddXNjBPoZHbLtHV2Mmbvtb13ilIreWEJpcrSCyZkTLSqnFtif8GFiQAw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAArHK2R6GfpBZGhTuwdKScqHI4obyZoIS/356reSU7RLujEj7EpaDjFc5cWVrC4m9Xky0N/eazi5gfidG9LVky9nYwRRalHCvf3D68yvB8d2eT1J4xLF/Z+mYlmjWCw6XKaBb6XeXK0od3XPT+agH3gS5oUE00H3mCikgs7zmMkZoDggNpm+vJFZ32lFDcv8pjKDekqD59HxiPNYO5JNW/qFpGJrxT6m+aOa1Zj27Oo06tJjv/dYl2N1dr8GsogC1xbR/iRf1wMBXhr+bG4Fr56skjxjIEUoszemLtceXEkkqyO5idIKAjTb+05420AwRjm1bpFw4CnKSr1Ud63gO+KpyDNC0Ks14kEvCrExyXvVsPJ1wJVByJ6TInE1A/tdpd/rSw/7mLvWwulSMDablMRCqyyieGIzYcKUWWIxEDjQn68jcVZqzqfbz+HB37O+23RmP9ubI0o2VlyctnkMn93n2ZTdFgakPvDOjId8Iy2HgGmZdphdmw7eGf4+ylR2+MIjQWjiNrnY2UGfVVdV3OB1wCRUJHPyJJl0Fe3c+aZcwWYHwubEVPZFkdd15ghAZj7siUrP3qdOoeXOEPPypXjZ33bH9LmoMujNcu3iSEdZSxesujbIUNk0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ03qi90esXXkwMtCl5oAAm4O6Kx5uGEz4/sXidWlHc6KHuj/QJL6PE+xbz63z0yI4N5bS3BBUGyAeFbRlKDkAQ==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "C15F12314F8212CF60E00056A373376829A05BFA08F35513A480B4B8ADCDDD79", + "previousBlockHash": "9279A2CDDD4ECAFEF43BF07A39D61C23BF6775030ADB0D9E719B4268DBE92B51", "noteCommitment": { "type": "Buffer", - "data": "base64:cxW/dsgdfVFAltqD7nWF8X8L5pBdZEi5BduQqMfS4Gg=" + "data": "base64:8ugSNjqW+Y27UqCNO+qg2Or+f7hd0s19BgJF1vDlflw=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:kAm5Q0Q/Ye9CjZggWfF0GkYrJwVRmStgyUYxEMemDYg=" + "data": "base64:QkOZDLJeYluxBB5qggs1xZl5UthmuSFlltkgDe6jE7E=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551223762, + "timestamp": 1712340043194, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -2080,29 +2080,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAq+N2XoA0Xd1p4QmDol+MFTAqd/rHX2Cu7gKBtHOq1+KzaW7CwN1og2rdTnBms5gyYuuxBoG4WGO24X/utLovJqv/Rj/TAi+8agKxLsUaj7K05nnNlOMNMyL06+VlmcjgttQeNmYB52y8nkhTLIy8kZj4X6Txo/fKM1qa4eAicjsLvY2klVkog+eyYuJQ2rD58G09pYL6bpiLgtV3xL6MoTMe0AxD/aklGCK38txDPYymqqiHL0xkai4EELRAVWgj24NvETYOUQTAvLiCaOAN2GHir8pON4vLHKxI5NXmaKVvHy8sECK1MPtHEA2yUx8Qlel6v62gKgJ/UXLfZ5nIhWz43oOTQywT/XmDIiYTcx5IyTE3UhhuM+yH4BLxJA5p1s/IiD4Odn5NngKd7jkP05EA/+swErk01JzlH2G/2uapolAno9HJStXqY+wVQ8bq6lC1yESjy64Dob3dqLtXwtr8S0oESQkpXvhN1OHUbncVew66B0vSwrld4ZzTbst63LWV/wiAK0NOm8S0lVXJYu7o8CweIwkwqOmiOtp208OjACXSteLiy5Q5Ju5YAhSsYLMchwQ0fKUmJGczq9P9DMPMU+L7GhH33wepqbFnDQkHuf8ztojRhUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZwDk6Zdut7R0jhEj/yhNElS6VNDIvNGwZZfI/17S4sm8/bvOuEKzZ6OlogwBDQyvOQX3vZUiev0swpvZmkeSBA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAcZ/gjUSsnahggEPo7cH8gKSA4VjvY/B9/wzV6vIUqJqmgdrfj1jnyriRyszT2/5VXx3Eftujw9kicXcA/lhkmrf/Is7p8S0JiNmM4ObbFWiNLMON2c7mANoUvbKMOf8XPQbHdx2dw4FXIONRhJ6NiMkYSyk8NdbeRYKRSHPN3/gBKa1xZ2C//D5/UdnoQTSeUZID0NKSoX5rrEhCjoL9j9b9WbF2BLSNigHQYweR+pyOc6fNMgMnrZntrVu6hfPhHu3tv6xt/Mfob7Efb4PTGYr66sVT7v05ClUSeXyu2cC6q59dUbzDiJCYxHC5nBuEiXah85QwiRLf3JtBuPzyCv4CroquNp3nuhpKnqtxkbXHN5MaFFhYklqjy0RuhS8FtGG6UqNGMrRYgLiGMpujp3UzBHE5DFDGNYfszcARgB6PTclE7Y1Me4Jjp6Ufi8kDyOojaGou6s4R5Jxb1TUJPh59C91XIropXE7kZzffN05dwKdY7trJ1wTbmRtT1jY/0Yk87RkrZbLaTkhnfMq1ohvsdKHIyEkfFq/g9FJeyouI0t5NvXZEeSUW0g0VXHyfq35KGXUYEOqj1vEzFum4EHMeHx0aTRfNh/1NtZEwWtK4mD/e9k39yUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwG9OAO8mJdi0aFwuYUdAm5oZA2hMlHqKnr/oJOFzq2F4hE3Y9TtUnLJejIluqsNJ8qGlTH70AQowXNG42KRQfCw==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "C15F12314F8212CF60E00056A373376829A05BFA08F35513A480B4B8ADCDDD79", + "previousBlockHash": "9279A2CDDD4ECAFEF43BF07A39D61C23BF6775030ADB0D9E719B4268DBE92B51", "noteCommitment": { "type": "Buffer", - "data": "base64:57PvM0CSwKQyKxVzgqUeK0jcalCn6tC6HVMCw4CzQhk=" + "data": "base64:2O8I0w+DND5c3guu9atueX8kw0a8W+qUFzAmptjpyh0=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:0u1r6DNwvWee16XpGAaeeeOjcfSrMMEEPnjnposjiVY=" + "data": "base64:Suds66GrxQK7B2k/fzuzbrbvJfdLs+JxJGDEIowV/Ms=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551225290, + "timestamp": 1712340043543, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 5, "work": "0" @@ -2110,25 +2110,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAxMRtfpZOEGYUes6l/MPFwW4UMbDsF7lJdPn1iq3/bnOMmLtsuLUl1ezKA2G8tHYQU2gJgz34IdfATp1QIxNpc733M5XorXx6qgQJIRiyjTyUwXMzgRPUx34AdV0gLvh/s7WiTxKQxC417MfVAZP2UO8EG72174mxb1RAEaVVIukCK3P/fl57hf/Cj6ZyHI2sXW77mA8yrKYTF231U1lZzV4STwJrUL9b/8Bbhn5gCL+U8K2XoV0mlWIQ8A9k/+46OsFWF0CKLuTqyUUyyg/T6GMBmFpUgovep8Ma5zFO1O/rBnyUww40zo5DVoAn4kuIYWLdtHGov5zr8lrJzDziq7yJKAYw99m+mneIWbBY1mLgGvlJq4gRg0THq4eyoDlcoCkEX3/RrCsKWdFZ5pJj5ivJdhjvicmb2XZPjuH6O3EXHqITzw6sIQ+XcVj2m4dUCfLcdRcIqFfsUJ2V72XPyIDFeRpcUkGa9oYlELezsoHemlKovLkWD/tlPTxqAUcPq6FkIGBQMyBdqdxelHDINr220QK7+TVYmwomVkKuZZSbUO9AnwItKMeNsfW/io7y3rDOw9dgM9vZkQDhS0cUJXuuSTTaXYiojpU/DL5meFBQ78piHYrRc0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw1CX3t5sr5zh7EKQAtcFSnVZaGGN8BSzQN/6ViqNOD8bvz7FlBLFGreP+vLw/PNgE9kl7tWYuP52Uy/fyMEZfAw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAASjbV94k4KPaqP6mQsLJkGAhZnf4OGUtkJjz1DOzOEi61kMkZ058PpV5sOmz0win7veFjRm9gasnINOZoJwOzQ5isW5wekTGmEON6BaAR4piZs7ETVDLB/Byy7pTutuaj2S8Od0HKcHTkwrCdszfaHkBF24dNmp7OyExlgJjn9ZYXJaC0V1joW9HWmhfV3j5a57T8uIYrPnruFcdmBVjZrXQTeYVQnJiWM6AduAe4FButz9F35m8lLqK3Ga5EfFWMFbsl5Ag6NYFsyMwGLnLliAADJ/9kg1G7Vh3k3xwrahl0XtKN9Fyl0b8EnB7hzZOO5FwNcBgGHd5vhy/vk12kRgWJXydvyk48l64u0I/OycGja6Odl71axs8X2Da2dyFWW6WKquQ2rTGMyc5FMdXRSh29liltnClfluhrVGQI6DQtmt1rZgcVrnlIqjWBoTRs1m0uhEDOcr2l9H/egAoFDHi8y15sxAu4gXh7ariJ6N7Yx4N+d7IykkUGPZtn7he9ejpBJfWKZxKmPyfZ0Lc/M0bJagXtMtoNnPvXnXe9H/40FaQZcxpEPBZq0ppdhEBZR8+DGoNZohuNo0brWkBb39HoKmRg/MEMoE1julbjPfi8+fzUrODqEklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwUDNJ8FItrXVfHj31WOx29p3449Oi9KtgiWL0e1GaR8nJg8Fraud/RGpXuIpb9Y/kGRoEt7bvBfjciBXhH1swCg==" } ] }, { "header": { "sequence": 4, - "previousBlockHash": "B63FA002C363A03B81207A4E43FD4BA1A6EE77F16972CCBB0D452DB847619FA6", + "previousBlockHash": "0DF0792B1B0A9C8585F1F51FB87EB078680BFC83F8F602E09C07CC2C4001723D", "noteCommitment": { "type": "Buffer", - "data": "base64:kNdq7L6MUjZPePJjTlpNqRvJ4K/Zn5IOqcth/IZNEmY=" + "data": "base64:kTrcSgC8tPM0k7yVhDXDgDGxMUvrL7RaOWrVEqv2BjA=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:0AfV00fDlSqZO1OmXLiapAhf623P1DiOxGy3aP8vH4g=" + "data": "base64:/av7/KLiTIeoiZUM89CYQdfc/8pX8CZwH/uI+g97/XQ=" }, - "target": "9237815341750015092140817300043113376661752366206318446334046747329935", + "target": "9228823284279306817296266184515742822248210830185427859262273659833347", "randomness": "0", - "timestamp": 1708551231666, + "timestamp": 1712340045050, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 8, "work": "0" @@ -2136,29 +2136,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAXb+sdBJoi/hVVSOdqsSnuuZ2cdGOBH+hgtJCSIFYnkGWTgBAlBt9fqmvgT2Sfmj5RPN3CmgfV2P1rECvOrx2mKy9dAOLvAOria71JtjrDbKtHycpLRNyieMPKhorc3qf/7w6W7q4lj53ux3YCVHpRUocKzGe2efCNRXQl4HoCIMNp6wOkC0Nf8DGaBpvPpiakvkziiGFSUfFwiABH5QAC7EM3B6p+hL9vns6U6A8ilChxk3BCnqtttBbjCFOLIpBH/17mKRXLLpZtfrmtbEBjpQ07iK1ZDxlrznGmIPdIRcvtUP3kKQRTDxnUwcX2R76I0pyDgiTGtY3HAH2w/U9jdaQ9KelpQkqPq8myxX9/0be9TBXq8qIvhiqwWCh5fgL4Sp6Z+DTH9CBgRuGIFQGwvIohiyLhjVa17ULKK2c9g9JLUVKrqpv0n6EbQVOiM61MO/xWUPL9VjlVhEY84sWTl1HCYIt+K19jq6ZgqFAUMyz/7MjTgcv4WsEL8upKy7TupPiZN3stTHRQhPxUE1fRWeicbVmHMVvflTqCUtbRMN18IjTPqlXU6pT7rnT17sqYkd83vhnomLWjK6uEJSLBcq+MnwDu3Ql3HVhLfyow+j7Iwp0UzUcnElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwcthGXhhpjDl0LyrEY2IuyxTpbK8P1D1d4zP/40Rf/usTVm3tUXbotFZgD+2rqMoD/Fi9UBqGzKs1ETo6Y+mICQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAGIHJ3HZueZ3RUH2TSOFEwHGj7WDcPlWb6B80qJYoIs2uY/D+1qS/J0Zf30ae5G66mJow0tePTtyi2cYKNuQlCNZxq+g0dJCO2Z6TCLenXy6xQJQTOStlB5h1TPxNsSx2A71fHzNj0yIginPvM11Pbuxts2Bp716dbb8LcsSoPIwMZBlRCyi47jXEonzZmJ+n1U5JtCsBB35hv1HkqzpKz91OGrMr2LZ2fhKnNyQFy+qyRHQPy8mSKpP+rVZxdXTvoaw8bcp1qoQyEBCEvAV/+Jle5VhMsGgdUjsIQP5sM4ZvQrz8sZzonLItG7WR1vJs/ql++6sVN1eGDaiTgzHNsinisqd7sMx23OsjuRViednnihdIiwG6q1lsEa67sNtmCf5jPDbN1sckgznBTPfy13Wk+NNde33mP1JeyB7aiddGcxcEx64X+CClnpm8PcEi6HiQmQ/hkShhJ4hqD5YAX3rJrqUjjMMA2TVloeFCvNArjrQsrIBtWJ0+PyHFm2JT/GN3ZHZem/u+n2f+Ybjd1GnMNnXSFGS0p5LQwMc5erCaodVXjSQDkGxKpHW+CHkmtXAVERxrG1deDKKcVrehjOEw/TwbbSG1TekYao/DkTYtNY1rrQrm40lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwFYRBDRAT3eda4tDsC3RZlltBwcA7EB5wEux6xDyc9p4JisvtB0cWOEjoKcJLqeC8bGe1Nlz/76I8t1+FI3FJDQ==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 4, - "previousBlockHash": "B63FA002C363A03B81207A4E43FD4BA1A6EE77F16972CCBB0D452DB847619FA6", + "previousBlockHash": "0DF0792B1B0A9C8585F1F51FB87EB078680BFC83F8F602E09C07CC2C4001723D", "noteCommitment": { "type": "Buffer", - "data": "base64:/oYSUkm14C34eBLDY52pk5LzCAgKp2nlGN8TTYJ+008=" + "data": "base64:D5n5OpIEIngwZCU9mgPzjtNMGyP6VI4yDzpSBi93bmk=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:gGcam3JuG8bduDTroZx8oh9aktlM7CkBxg/vdwkNlYE=" + "data": "base64:HwDFpVjIhKeEExYVKOb7HgXhlcin4chb/nPkYZ5K3MY=" }, - "target": "9237815341750015092140817300043113376661752366206318446334046747329935", + "target": "9228823284279306817296266184515742822248210830185427859262273659833347", "randomness": "0", - "timestamp": 1708551232643, + "timestamp": 1712340045349, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 6, "work": "0" @@ -2166,7 +2166,7 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA6b3d8ZYlVyigsBL2lKeGIlT4Cn4U+STo8fd3l0IFyxigO8bVqlQY8EauQF8wbzbpUFXpyeujICOsfJJaX9OYg2MYyumxve8rWSTTA0dlCeiS7g803BdX+oSYJn5jcUqsDc0h3HafsV+tes1HzvhVk9PxgievM8ilWRQY32I3vsANukvNkF25B+3prGZl7Cvf0LKmlIbIhTVVF2hknfpep3L0m6rHYV1nFpamv45nUfCIg6ux+8OSLxTU6jezJcGDBdJXo8STuc/XGBXgUHkZhhHvGKSsrI4EUT00+wAgoHJ81bHNh6AikF45zzA62yKIE5ATgVc4i4QgGVqCrNNMLQzdcMFZZqE0lg7TwTtS2noucwNSmNFpUivbU0Fb1ZVGO5mkEsOameKazsv1KMIxfspfv5JhqpWbi6QFHyKCBqxjA7/lMO/c4vW9OB448lIJg6yCp+Z3sz3U+Sne9XxiTnxIWRGQc3e5aXnimmAMXjGwk2e7PqVrO4gA+5XVsDp0V1YwuN9GPWlAZpYAeAA/opRmBdX0i94+fbZo5jDy4v7bwrpCIZ1Knw4gjKL9LtSzJiYuJ5OXUBzpNSXHOmAIBO2nxq7BJHpnDdS5mczxz6YFCTG/Yn4O40lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw7vOEkypr29eDX+yNts0rxpchC/N40Rbs4gTYZal2XNoU9VYeKYjVtjDHED7v0cZvrYoRO+ux4TLOEAXpo2kZDQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAARZDLIQ/s00hvYnSno+HE5QcfAA6359u9DUg+hcTcbL+tBYPYmFkjmIQl9CBDZfawp2osigY78GjDYfyV5YkLHbM9nm6uF2WZh51WbbxaGMSYhmZ7koFN1RwDvflgQwf78rPvEGGhqAyq/ScoyvuOTvDCj9KkPOeVEzGcOY+DXKsXSPswOnaOvSfsv4WUphs+nk67apQXZmOphd5K6q2t4FNQNp/g7eRdjk8wZc+ZHLiL5pH+xDUjNjNp7f4ZrpJJdb4UTuSrmc6J/LXgDgDQ0ILfo6+WM8e4MaK446p/1o9MpB6s4H4D/5yIDMKt+Vws9bE3FMsKqUz54tFhRO9Yt/roHh1XIH0p2TgfBxAnTAUsoLO/Ylny0QgkA3Rs/eRvp2t9hBDS2sqiflYfz8s2ttjwFoCLBk4GXcWfmA0elVtxrEXI612jix3WRrd6PHvRdyERMTeEoP8/h+gP6o9n4F0O6fp9nIgkraU9bNwmhWju2SVvsheyHVgVlEU50rZuOhWcJG3qzt84Mj1cVAycGjRw8WleYUgHRGTbjmn1AP5wBGlwX5WHoiosME4ln5gqZdnvEZ0bSgZdr9OnHY+xy5uZcMjoluBvDoD2n+lSVEd5RPeaiPDjFklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwekB8komLRYJOHWvMQ4kIxbB+KLiF5FJg2gG1OIp+9+v9mKS7mKJoaSW1IldgebJfgBK5qP0FfWj/jJxqPtGNBA==" } ] } @@ -2174,13 +2174,13 @@ "MemPool when a block is connected with a transaction in the mempool removes transactions with an expired version from the mempool": [ { "version": 4, - "id": "f8a971d8-2d67-4eb7-b49d-74cd8bd3467a", + "id": "bd167ba9-7e1e-4a86-ac21-5c4c49a1617c", "name": "test", - "spendingKey": "96fa8afa58bed0fa4a448df76c5f68487abaf8b69af977e8b1007ba19de99405", - "viewKey": "17f60c284b6bc5b360e62ea4f90525c78d595295f6a41c64e732960637a658355254fd405f7860a5215783548717a98c5e4a105f447decc4eeb51b86be238483", - "incomingViewKey": "2ab189e1fb74508e018e0eec2744d0182570b81dc21f727fa28e145be4983c01", - "outgoingViewKey": "a65777a349913143e3422f7aff15e6d75b951b54e34c2e097ff148e020433039", - "publicAddress": "dcd22279b3c3c5d22ca1385de17a1c796ec34b30015a4e67ab515ee1065b3e27", + "spendingKey": "b350ffecb1b9ffe6440fb6fc3d0079af30a5fd10002924b77284f30083291750", + "viewKey": "626d78b9f848f58cfc9b1bc6477be03b0b60f57fb39d472953d95a25634cbb0d4c8ee1f03c570ce620b81ec0aad4e8bd6999c17e6596f2651c9aa794f2c75694", + "incomingViewKey": "6cf78a69b4d6ab5d8fe9d2fd586f7ad6a4db3badc2118178fc6f1a789d1d5204", + "outgoingViewKey": "9c7e1a6dd35a36a54421aca5feeaaff37cec991e6e34a1f006440058b6c63222", + "publicAddress": "579be71a80b4aeaabed81b55495f9214c77afe64ba6167b554311fc8a29dc3b9", "createdAt": { "hash": { "type": "Buffer", @@ -2188,7 +2188,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "013ca4e6fa5d423d6c44578d99ed011c8ddaacd47953b21685eb7b37f9a21909" + "proofAuthorizingKey": "374a8d3cc6b2da7fbb7748ab06e7ab5b6b2b4fdcba25a36baddbae3f10e5970c" }, { "header": { @@ -2196,15 +2196,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:4EQ1ycNCiBx0mYaLfhoyG2pIc5nkqEsi34AsqcsmGmQ=" + "data": "base64:e8HhxccLk2D0NlkgE3w5QiWP8jQcDbo9EU42NWzKtCg=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:BFvHoTDUkgSn30OyrGbTsV7cp8X60P2uGFDeaWhL3M4=" + "data": "base64:higzKIvA7wnJ3Ci925ugUF03QTVAK8PfwxB5LdkWoV0=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708551234136, + "timestamp": 1712340045746, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -2212,25 +2212,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAURILn+dfaMuoOCXAl82ekxJEXe6lwS3Zh9zUgnbXTBKXcXEiPyUss3uJ6EkcZdFpqP2ncPvSY/6+M5oqE+3Mrr8W3NaRlZrcJ61X2a8ttESP0c4tpkDNZKSNHz9CSgXRI2EDIGjUc5mBtv5qM8aPp77UqEslDK2aQfvC/1NwfGYPJtSRoiVHgTA9EswBJkV82HZL9eMp5zmnMF0Jo35Yr9Iq/4hx56+o1VAiWckIr7Suk/Am3/RfvDPhQUvh6YGOLwwt3zQWHPQjQ3UsSSTi0JaOEAjThMNTiL2KDI+xqQSWc74w2IbhrTrdPUqXsjL/E845bDFIIqkO4YlLE9erHkhgO/vFkRKa7ApP1zuc9Tbvn/Rrli18PmIgMrXsJa4qIZZtLXnOUMwE/HXqxlroE04M5jpdAsJPDfajzG20CVTcXGHmeVLraykQFuEwQ3l8Wswydx9V5C9LXrmhJgOY/r1r/RAQfngHJmH27vFxDRTqK1Q4swGraGfe2pO2FVxHb3X2EwWwLVk+m/27J2L9/UiEkgPPXwzT2ia+vYeXXifPeyWWmmQkgiuL2l3WEx2M+a/iov/ezJn3l7HyB1H72mO1oOcqJaVE5qX09WJo4WBKJ3j15swgAUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwDrihbNSz2J6OK4XBK84CvgHsSrNgEaeuoTouUMvhuPCaZplxLImhpZ2XxA9L1qXe2QeKZX15JyxdEh7cghS7CA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAPR+W9xNqJpHb8Qw+5AX75P9vEj2lPBsAU63WHliOuT6nk1zpqCJ5esiRdpd0aucQ+GsuRY9tNgE+EFQHIzNzmHXxEAATV9nCfhX+jKVCOo+YE5Mn5Az1UPQVQ5Qk5u8/cguHnv7h68aPcTXBw7boqb7UeXigH/BuOR41elzmSuYTfoJH0Xnsrgn5IE6MY9Av7IeHOvZ1g9xMEMa+JO2P/yBx+25x/L7qUNjBRER4q0mOEFHJeoBQFOgoSaniE/dcJu/zzWSUXP+8XuwkgPw14BOc4x/ZvfBj2vfOqhDBz860O+gthYOAFT6Cp6aZNDDmcWtpGT4NbACVfT1LBA3kp0ii7I/fX+cn1LaPfvhQn9hDCucyV78GpCqozJk6Gtpt8FZ0BFbuLY0GejupBbSBa54jGTiL2nMy4ewBk32kH2uF4E4wDv8Dt1FopJ+ubsq6bRFxQw2D+T9Slzja5/3F/H7w3b2/mAh98fzsRUCxD7khyv6CRdrxDIB2dTAjsOSlSZgkEoTPXF1BpTL+Cb5tzqSW7yWVdSVS7l6SolcdQhHXfVNm5bM6++l4u+UyBEIlnDfI4y81BQFMdaeHyhcvwdUC5feBWzhchnwJ9Zy6HZ0n5UJQL4yqtUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwWaTwcEe1pL8hV5A5YfcetfhLPXO1n8MDFAHh8z5jzdFGEC3Nti4njCDHigFAZNGQlSGEaAwtFUAa51C/4L2wAA==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "1306998A2222D9B689B6DAD20A262E5B8F8E594EFB9FA72BC2850C0FB9FA649E", + "previousBlockHash": "9D59658D5B354F78C02F7D7C721E4277D70A753EC0E778E64542F02589FF120F", "noteCommitment": { "type": "Buffer", - "data": "base64:463Dbc/ElwFPC06Xf9m+kazg0XP4PDKwneWzLkyKATs=" + "data": "base64:/vzgDwQPmW0fWFkFnESox1UqxTzMW4BTSi88drOt5yA=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:sj7cMtJj0KM7fXPNHLJPkUr01YDYD60kSZK6jIXQOmk=" + "data": "base64:x1Ab85QyeZhn7A78iedhWs3F8p8PNcSWYCFcJ8ghE7k=" }, "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551235731, + "timestamp": 1712340046041, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 5, "work": "0" @@ -2238,33 +2238,33 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAvgNOIQB8G7NnEyoYqW+ZimLcW7PMXPCMHxWGSJamTsOrd3yddGA331M3sa3gGp7nc67oigh17ZYYK6oZmZEYtBTiUA3/+kpntfQfrth1KHqN0n9w8nZBc9zZ/iyy9plwM14w8MldGY6MkAspoXOar2NVzWQCjXkuw6n80iCw3ZMTD+kWv0sd3Z6uv6PgXJT8GWptWWIVY4l/1574QXKXC1oj7z//KeKHOMd/WFav0e+K9+Q6aPH7NFW86S9v9TzwNxQF9zV3VQ58MbBOMeKjI9484jOUPzbwFQNZRgJcYvCW4RlugSOaZY+bCp/9IxcFpsnnKx77/Sg3CVYCda8IRP7Bx9p4MXckjrquXFBqt7m1uqxbRCXJs3p3hJGV1jRYV4GSrUMguAeVhZ1+DqoEg1YMZvG9gSZUXikKU6F4Bp64QPIHbLiQfxuKObuG+CtKxp7fugiW7y5knh4mdKQUDoIjA3v+9J728DGZC7BW/NlonvQzsF2Q3WZF8ylu7Q7lKioe7GbGFNVnZa2OlIxQwwqpXS+2bHgzeZSfIb3SOMK0mzhyySAQ5UV84r2zdQ5u5xIU5po19D4pG9NxcTft60NJKYgb4V4cFzGI1toebvZNUdmBk3j73Ulyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw6N3kjCyeSbD89WK0jGDA3dEzdoF/OOclNOFrcqSbH7XrtjCbpPRQ6yr6SS+22YqZ97N545ftxnVb6Qp5qmkeAQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAuzUGssp3xKmJADl+LTOBMUM400RlwcuNjT8Y4v/sMzyNAGKDscj7GvnnOTzki+zMXTWxrRnh8tJAGJCGz6pD4uSRutpgNEOA9Kx8rxpql/uS/skiLjhpxvKX6HoauHMlgg8j8ljPagcoZDoT1gXzwV6SlodfIueF39d36fI/8T4A38Y+peY8PHyFAhhLvhbaeubreOebCtIvr2ZI15DBIZEnQWBFPWOjZcq5IFEyugaQdKVnz8kRdec/F8kXgb08Q5Mci3qMM68lEdoahnfX4QyFGz0EWQnGV0QbB9rBUcufjiyKC+s0wmb4C9oLWiYsATd4CEfmUn5hec69WUHYObGNoabFC8NF2NdPiOsP7JoZypenMwxRYo5+y4XWyWdr5u2OTWIJbaI+WKU7769T6C8FfP5jkasl3ItvpF4nO2tzADLj0piA2TsVN0z/34RTWmVuGwL2L1cliDtwXVzrndB8jG69lqSgpFEoVUKGjo9oX9TpnAsDd0eaIbOVuRcH+TYBUv60GGtoR4U5QERxby6PhQ+RHskL02+J4C1ALYumBKOrsOpVrnQTXeKrakc01AcAi/V3X46mfhLtSxdX/137+xuWdo0bgU1fUSFkg+BQ1TGmHMVgTklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwuwoBe8/8WSG0oxuo4p6vkYhdCZLBh+IvltzVfUNAuER4Egg/kwOoMfYyySKrDRY9uhQRVWAgchEPRg4imp2GDA==" } ] }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" }, { "header": { "sequence": 4, - "previousBlockHash": "F43215D8A9FB9F87135E5A4DDCC64E4E000FF359CE5151E1738180077CDE3561", + "previousBlockHash": "B2D068F4D1AA8163E6EC3DD120DA2BDDE9081FAF0363068AF1FCD0B9B68E2C05", "noteCommitment": { "type": "Buffer", - "data": "base64:EN0CBakoK3MbDdRDO9/z8EIAHMsi8oCZ5C4DNvnacGo=" + "data": "base64:aUZ/WttKS25g0xRsOiiRM3nlaWvv/QBgHiAV+CFBaR8=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:avzRWe+XHZgrbjyd1dBxAAAIqXYF4X3Ny3RfJ/TRz0Y=" + "data": "base64:oKFQULDsRq50LebJQZJ8qwYv5nulyDXH1xhsoDhvkwI=" }, - "target": "9233318228143625020618577701423519925017621426082203201059080050516648", + "target": "9228823284279306817296266184515742822248210830185427859262273659833347", "randomness": "0", - "timestamp": 1708551247722, + "timestamp": 1712340048661, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 6, "work": "0" @@ -2272,7 +2272,7 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AgAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA7tOwVAupl6o4XvVAoZHhEaajdqaM88NUS6spIInlVPOr0TdgpXuXpZT+0da62Kqi36qoRFwq5n3SB/A+eVZxmmyFtioQC9sRGxCFOS7/3/qj5bw8YTD90YqbRxnit9DBKZHKqtydNZOl2VxpogloZ6Ha3KROcEK1uKCj9BMwgMICaY9GdVZMsp++O66u16pIsqd+Rp2oVo/2GSMd772ksOs/6b1LDzYKXqylu6KbV56SLoDH76JteG7r1qE0tAGdGLrBl6DVydfZPEihUTDZUGQ6o/J3Xff8Hjtv8Pv8bYV4vz6oScVbwMFM/2+TZPND8yGKlhwly3CnSqo0ANG2vzzzdi36hZ9Y/RrK77BoJi8bMnTuR/QVE4IeyNoo0SUhK242FOTeiFgJg52i+BVDmfHbVkeUQ1vh8AO4n0gCtW3joGoWzbGpqd2GEWM2+pVA0eETQY0c+4B3M2mJSmwLrDvlf/vDF9JYKA+4dka9bniTt77kAoDxp/06JzD3+j9aZA03pog9j0/ftry4Mi33ZHwBY+PAdlJLdKDrz6IwtB2X0Oq5pav/tGHGq5HZSRyh2NgIW/ZaLuoXdJ4VM8FtUxGpzCxOqabNDKEbTLZJy4CHAuRAS+I0IElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBPD5I3PeylQbOcXYjjLpqH4QmMAshYNPL5S0vJ+oOT3l75Qbcf7FSPzBVHDHDCqodKB2vd2xh3X0Wz1TzLArDA==" + "data": "base64:AgAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA9hz5uTGuSzVdZWHuYO0KO+u6ly93aKbmlM6BjoJ0RvKlflodZ/Cv8r0oqeFmRdiqqxWNihOzbYoBaA3VfIVV34gSsVa76e8rkgWqZrOiJmaMyChIVEiIh3ggw10YjNiqVCTYm/5c6bLGHtZy5Jk0u9NfOfkg9vMUAzl+iuQvincFqOSP4XB2gSL6Ut89vYw26ILDT9cYGcreevxepx5rmzs2sPZZs7W0wT9yzAiT2daTsUXztGCKydX5HcxFhBaQnTE6A/9KQjBbcz/zmAPmplV9ovR+LHC5eE7UJs0pzQ/L/XEBd69Csxmj4l4/bmI1p1O6etO9d2Lztgt9WK73I4yVlVQx0HZMUVaw/v4iMElHo8FDKUCBu9r7AwHA5aZECZ69nwzv4bmaqJNC7EPk1AXWQhXIgJaMofLipSjn9my9RblVEFm78m/llblX6X02E3M208HWc8FiQPlzpLWvlhN4hY2jmct3Rz1r6X/sw7AHwordU8MuiNmKi8pFsRBkvAbKC6HCZQUwfaoTLTlcp+5vKt+Qq2V1RFgEociMbLk4FXcd1a80wbXB00nekOMl6Ag0W91rmZEe+ztyTP65rBPIKJNNXcCuQu3+Aa0GPx2pV6YAAUCf4Ulyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJq9kL/7VBd/F/Sv2Clk9cKBDd2fud9LLnzOEIkgK4S88er4VCSjvOx8zZ0q7NQa/9h81JChJHfe3LK6GxeLdAw==" } ] } @@ -2280,13 +2280,13 @@ "MemPool when a block is disconnected adds the block transactions to the mempool": [ { "version": 4, - "id": "45c1478a-3368-44e2-8be8-b04b67ac398d", + "id": "8585ea5d-da4d-4960-8256-e30c49f95837", "name": "accountA", - "spendingKey": "48c65a3ec00b5484ba078fb84c47f524db0345c50c31ab409a20e6067b84e6ca", - "viewKey": "967b50b5f6c618ca460358b7b556366f695ed74ff79b23895c95fd83183fd3aac1ad1d20fdeeeb2903681081c49c3f85ad829d8c9bb7eeb1ca7338d9d46b6d35", - "incomingViewKey": "c05e1c580273379724014e23b6f4cb370bfdc26e3b70d3c8b62fe0752b50e603", - "outgoingViewKey": "ec3899251319ef48df691103274531ecf175acc1e6d9c65d7d449909fad3a717", - "publicAddress": "a73f23497dcf153805f7dce5466c07dfb16d12c16a67fdaba89ddde1e672495b", + "spendingKey": "4cf19f04fabf7a250347c0ffc3ac5d14c88514725774b09f85c3f5b799c03eb0", + "viewKey": "923d44aeb90d968c7e1aebee17c774546b54e0ba2f32f787bee1d642c7b98e594e91a1715a691cc615b5d24d344fedd089d5f87cf605dc75bca6b581843fde06", + "incomingViewKey": "764309b18d43e45d01f876b7cd7b0644facdf25f5c51c3ec3e998326e0ace903", + "outgoingViewKey": "45dd9e7c7908a338999b23aa99628899e5881bfc18af33a157224dcb04ef5ac9", + "publicAddress": "47592da79381de73fa45d440ac2a07e3a2450f77f3cb1ec347c8d5b9f8fffa25", "createdAt": { "hash": { "type": "Buffer", @@ -2294,17 +2294,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "6972f748bf9ea099cdd3bf2718d7becf12cd1e63449a84311ca76ec17a488a0a" + "proofAuthorizingKey": "28e4c339f3dd07f6617beee2099bb4c999db03c26f729c1e3a34f1cb0dfe6203" }, { "version": 4, - "id": "1f871306-59ac-4d38-a007-e97160513614", + "id": "c952455e-7581-4bdb-a681-3aaab439e796", "name": "accountB", - "spendingKey": "313fe01f1f9ec94b3d172ac299f2db4183565a872d51dbd483fe1a144fa2953e", - "viewKey": "11df9fbc18d4761ee807a3c2377a02df28c612164d126e02a609b792f9b5c70e82bded626c3d0648d5d9aefd0fe88bfe70af43064852c0e69eee00488c3a51c3", - "incomingViewKey": "3eda7dbf2fe9e6c42f9959f239c5a69324c476e3df10aed7b2e9f24116811607", - "outgoingViewKey": "0c02e1fa839dd41ee57d278c2c4e0a76b0214ea405894b501f216e26aaa87ce5", - "publicAddress": "7150b0ad7b865eb8904d5ad57be19f785bdaa3ee1c242f239506164cec8b5d05", + "spendingKey": "0be33309701f81a33f571d4cd7ac74233848053a9bba38d4a7a386eb3d097a20", + "viewKey": "d9dc2a67fad6f3ba4ea4b36ec2308fe51d7730ed4b97ae42cbd8ea3c2178fc6512bb542b914135a4f980894b34a2d9e00de3aaf03b57ebc3a2e1eef8f9a4619b", + "incomingViewKey": "b6302d0c681cb77fa72216267e72ad0e6cc5c4710b92451c70d8c095d7a5d800", + "outgoingViewKey": "17db2829645a202262327b975def18a715803fa17769da1dc30b16b73dd0e44c", + "publicAddress": "95d3ef5689867a67ce60d83dad2290a25eb4eb73334f7ec4c92802a0fd28b2c8", "createdAt": { "hash": { "type": "Buffer", @@ -2312,7 +2312,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "15fd055249badeab6bc2ed78f17eb85e5a58af8de53156fe139d2b9bee52ec05" + "proofAuthorizingKey": "4fedcf27c6333f00ecd738fb50bac2100a9141d2023379447a8dc3cc36b1870b" }, { "header": { @@ -2320,15 +2320,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:zfkAUF2F60NCgcoZMCDFR1DMbC+VSI8ge1+71kRkJUg=" + "data": "base64:0KtSWkh3tc4OiyE5428S6XtN/KEfVmm8+41Ian2VGiY=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:XAmErIY+IszGgYpRzBGGSx2iI1wh7JAdS6zEfY5PX+Y=" + "data": "base64:jLkUwJe9KMi7CEAD6XWq8PqxL7UAgl8rCrnlMvY5HEA=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708551249206, + "timestamp": 1712340049058, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -2336,25 +2336,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAASdT3HGYd9P0TpKzl2yDlqQ9KaVkhhvE23VUlFCLl/SW5KV5CFxpHlQZlYyJnDdEqkh2QNt8b6mKWC6iNBHGKpzdJJgqHmxcXX1Ax5CHgspqH+l+nf4bEAPB9LzGo5g+V7CW1TiSMYLxEhunUT/Fwna8BuWfwvnKQAJZsNryQC3YWwoBBoQVf5uBXRhR+IeiBnGHIwFZYFmnIrke0f4CQuhfBbpBl8/CU41cPFfbb2dKNzgxmzAJBYU7YhTLXF/1vMMCRb/5fqJp33avPt9BsTumMVkU2nX5UnuCRjjVKZEzEppdxJ6+qLgXD9Z6jhpG66UcFF2AOFxwTTRP8Hnj3Tj2zwlCgJLDbdS7v7la/eJj/u8K4LRWJ2dodlePNnSUjsHwylc1FwdsVJ9rohgToC99DUJGvQ7/zHDUUuY6UxIyoRVWjZCE2maj8B2N/Z7ZFsySLpGVnUrQ6lGC2kSwLqir2zjlS2GGEbW3qo2bkW6qPdj2H80ebvc6x1djs27ShHF1AOJ6Z2qFzX+FImP5RS/A7PgnnRAdIIePkiphsKyJpU8To67fOf/uJQKwLTpoYTkfbBbeG3veD9FIMsyuJmUy2PB6Dmi3Q6/+NzF29Z7Y/80qAQjrBZklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBjKxbpu/M3uExHrHajVwM/zKG8DhOJ43tB0pG/d5NC2inQkx6LSY7lxV4A+bzLYLa+Q75F8RrqhMWZHe+Fq2Bg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAOZqDv1ArEe1/g5kKUbiNspto2nyDkRcfrIf21cG6UaCSmAgvkax6/bsDo8tR/V3gt+xROZvViI0YyIimX/ZwUUnnin9LS+2GPh+YOZrCvpGzfFj2IOIE9HNRh5Hk8/7PCiu0QAmoW76nvNujUPK0jKtDtXFZek6qlZN9wAkxTFkDTU+akmbVvJsUCsjEAw+qvdkd4OCku0NYTIvkTcXxDcg3WfBlizAwZPjlnqrmyjmuH7Q2HDYHdRQqvdT6xfgzVfP/HyWp/UMXl7rcW4TOGHBH3UpRzuJEbHl62UG4DahMLc0mvnG1IUoKW9GikIpkLaqWC/9I/oU/pS3Hhq/jt+ikZNWj6zGfFGrriQQbLmmeFAHCYvs8zHVKokXAR9AjGpRIQQKJGwGGwed1UaCRV6YkFy50g358J+1/HCA5bxKS5DNZTz04oeJ9jNqmcOXNspceA6A5KmyDA0Jk5jA834mCNxbtHfR8usf9yWDQY4hnTFqU6ReOGDV7MkN5eQ0jTJamEQAC4hfTN+8vDHo91DMtrTBufJbmPiC6d1PBue22HGFlS39dnlbWfZoAAfRg/OmIsKFq4aFS8J0bpdQZXZnfFVLClxhK9VT7eIaUePfrRduv8paZIklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwyZZZQNa7fTWpP7HuKk/ZUlHCSu0Cp2gxehqjtA3wcqfglQQr3xEhdYWMkxzovc1psqOSXZ62QRuN1zEv3DOcAg==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "50C56378B1FC8282DE9DD00F29D2BCEC86EFDFE9F8AA353BA35CC95BCD0DC9E4", + "previousBlockHash": "F4D6BE07CD741A5365D37328A6552F7A30A036A0B46F44FF2D73252020C92C26", "noteCommitment": { "type": "Buffer", - "data": "base64:rPt06GM3yeC6o1Van1WjeW9ShTwUG0RNHzdwVYQuhEs=" + "data": "base64:lqNc9twPr1u2t2TP0mXLftk+4VFf+bkQH91x27gNbR4=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:YmUKvHjQcbqsoPZdYpwkjs/SNC8n6eK3by9DnA73p3Y=" + "data": "base64:eBxoeTHwo5h6Rv2BiadzxGOWwOtlyC0Nuc2ENIDRcYY=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551255306, + "timestamp": 1712340050528, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -2362,11 +2362,11 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAkFFmI4Fjae526a1WWCNc4XPBM/WQGb+GwWiV0oaHtMali9UPOatjshkG5kPjE37uRg4cd2nWHpkOVzCvknG1+Ij/9tAuI6plHiJetPmbl6SCLHZRsmvYFUIo3mQP561S/QOMJZPqgHIAunCyvWAD8ikWf0KRyttErfhg9ioWDIIHekuXRIJI0b9AydpYVsx7l811BY8rzw0R+qCATm1DJATpxQd+TOhg4zr8apxOkdaHlHM52+7Ws1lJdBqx4lVpOLfLaD9CIMbcdPiy6qELKVWZzfp7AhRi2n92thJvYNFwGMZTyUbAv7YanqjGu4i+8aOqM35UqmwVDwmjYN/YEc/7VZQ0qLq9KWk7JfbAcFIjkfjkTrngu66W5GNyAUwtFDP2ekBgfp+zcjNlmYSs+Gbp3QislW1bTgvjgC1OIkNSdlhtQ3fmwzFKW/nCEMG4seJkXETwQSy9vYVceOGxRNlSu1HC1MKs/NCkOXxomuIDWKzMoNcXXN/O1PQXn1M/1G5ZwwfBy9QAt8zOaraacxPqDEPPkIUExQC6LzIP3mQLROhZdQAbBbfyHehIeHj4/LZHWkBRKKPAX5sdR2kYR1DiykzAnExM6wgbx27XlVZCkSjrWbSztUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQn4a1LOSrsGNLDqsebTxUsgoCvSzcN07xbqylTLfFd6y4HwYo5/PuL2y4zxOwS1m+OrZyjgsYJqTDhrAwiLiBA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAAS7p4KvMFOV6smFOWHM7YrUGX6ZwsF4w2mUIEatIbH5uLlKuFdqljlcxeL4WVAKYFF939LRCGOJ3P1BgWBWF7xWtbSP+JMYmfanvRpG4UFuu3wAjn0eFbWUlyOjaJf4yW1WaFCE7JHYDR7sxJgv3AS8ZdfdJxLBtjPqZB7A8dwg4MRPN6LUFbK5RBiCZ9DpJCB7kR/IV5Pt2qvmDzpwK/6F4X20dFYUiImkmg/9WpnymjKzvlXqVsIiSEszQxyXja5E78XfrIm+hhfZquU+aoNu+vEpvXoiCavYdaMqWYETfS95UglpPkltXMOf86mDE4a7fodvwEPosVBA+O4OttbkPOzS35INjXDCI0ZtMFkEs5JTCjS7ZytBUFK/BtNmoGROA5WQk1AsRLGUsRVIJXbhj/oeBiT5DFU8j6omDn1VAZGGjX9jVujkYePbUAkBEjdKyd2IPHV78DqAwLHvUMWcewiWwmHoJRf9Lg2qZATR/584yUHzpbwfvhFNHm4nLN+yzes0oLjBNz0NgLASY8z7uLjUozyRUqBnaKIn89JUQ6j1z91i54yYxTePUNCFP5xznIkAQK5qzMtdbR9NTanqd5zkgbC6MfOtM2I4F7PUxWRjk4CY90/klyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw1HPdet5ina3KWjZ365WexrUhZuR+CSRnoxeRUhUE46xe+KNnKNAHn/m8btd/cUJrCTc9mwLzzpBWGRsAEE2BAg==" }, { "type": "Buffer", - "data": "base64:AQEAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAbyY9e+sbcvrTBUXxHwdqRg4GuJWVmsl7v0y1UAFpi1+FyaWjw2R5Nrocm9s/MvzJqBSaHZLAZYGEYEV0hqyonvkYYWPhiWXr5S3+dqDP5KCFzcN4E34eZ48bWMae6LzwGNpGr05AobMSOQiD6n8csemaDDWV9cLUsxMY+xX6q7cR7s6olSgMdGj7WI14k2yFWQtItW88aMeitDzFoWIYpD2msr1eCx70XaZvUQqtd1Ci1MntiVNMlJuJMei8+sQQIf7WpEyoVVwaqiI3TamqPceCqseELrvWvSeiKu6Ay3cFSeJaWYROUeogXBq6VE6Bkwh9dzKaEmDJSZHWlVqZhc35AFBdhetDQoHKGTAgxUdQzGwvlUiPIHtfu9ZEZCVIBAAAADZdo6H+h27M91uDyJladaIiK0eDH+iO0Wj11tGH5ap8gnxEaUvvWrOvzohz6JaqGd+8ebk4Ekc+aIo2gCrv6ANQrfPadkx9o7HY4lpFULLNpwZeEhWMLN6xpk1yK6osALCth01uAHXwg955yr6izoeaNW5zhBqTY2dAm2vv7XFhH76MO9wLXgNTa0IgJg6/s7d6ZgaDoIwsyVl8Z8IY1GZ2gAw9mU8DFlanrmKA7wlPuKzktG9lwZct+LToOzxlwA0Si1CkhRer9Gue0Fo3Z77jDg4T+ay8QEZ4s/Q8BZRTVlMi1gZs39If3m18PJJea7Q5gKuSrJbJI46Z/4UZ+TATN4HGsptUmsB3Sf4fUjnOC6GztL3ZXXTUg/AQ7ZsZXJnTJ8hflPptrheb6AQVZzgbwBzsOUYVeAg8oWJ34wPK3Ycw3TxJ9v7mtzHTwG5cQEDdbtNJg2yJBmhJy4wlknMQOTO24TDPbBJ8kzLBUK2OKwOIjVu9bK0aocvu2z3hspCQjqaoaNaBh8zQeJoJik1+0/Ld/xu+mRAo89SBuzqXIsZYkfktI8Pm2uoymdfvId6NPt2K3q7bl8sdVe29QP3q4g2yWaUrOWlfiok8F2HVwr5fQiKpnhhDIc1uYuKy7T2gb7X3ZxJaH/6c0rSXS49P/TCPUWVJn1v90iGb5mvocL8RCJV/7eO04Z63RfH3bxjo8UeUYFdA6sDoZZ5WVeBOmwY8tkQAkjruS3o+oTDRiFrPUdgkIQLoTftNc2L/OHOOV9zo4WGdAxdZliYV8qjWupD0AgHeVk+5VWG2/tsvki+DM0iYHzqiOIkVMyPkSWdjhKygW1k7JPS1JvBj/1yghWJrKKFlYdU0G0aSZyJoZAecYvUXtbWRpvoENyOjaklH08chfwNahsfLzhhqLsj6UlwKvWu6C/P1oV0ZXHwHSzcbug5kAg0GxvkMWd8XdVBry5SyOzQmXlRnygWU/888q5Zb0TeOSNFp4FOFkcwXCulQB2hkXsOFqC6FspZVe0665DXJxNWAJA35r+IgOpLHr6CdFbGwOqJ4y9Og/fH6xTXB/W5oe9lN6Y4gqimui2BbDGVEqFCkJ8f4TUUxxVrd3uEkR2OTtu/3w5RXb/5ynekI9e+BHPoX8TejgA309leutoQgWVtWVrW1VXwLVfNF8/xseOZPd2IdOsdrwEKYv2LQski42xikA3MAYUMJVbLegQZ+bmuHl+utXgjW39OPSEkfKnji800ltml8pGmM7fUDTVyrli8lSOOL4t1O1jnHL2dU5gfCBZ4iYyVJH4476BxqYbAov6pByTa0tGvM359bNI5fhEci4+/HBl2IuH8cWevIJ4zspf/lDzz1zmimez9fsVZ6TnyEth78wKCjs7Z7K54rMvqh4yTXND0EbEEHja2nkkjugDRXkr17L/MGSNEH9DA7z99COnTwRsdwWnMX3cBj6AryQyGYXHBb3ApRkKTK+nh1L9LZ7oqXtowiybve0dbRTYn6Oo08i33J3ZsqlfNzBeoUEVPBaj1dJ+yIEiDmHLta4EPMmDoTY05UH88ktZXb2mk/AYw0d/zKdUv8oYM2V2aEhkemnJYFDA==" + "data": "base64:AQEAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAMvSnDs8FnxlLf/lC9ez2EvQH2Uxx6IMuvK1lZkH4BImoJBem/17eTrDuZ/yI3rjb6FkFR/sA3mNbVcghG+vdgoI61R4oM/b6R4bsnAumMoan6OTibpl43kD7FeT/ybgZJ3NP3p/Df2vFeypgIcsTHEN3qM/FmwJsKK4Dzu6jK9wC5F6bOIMPVBxfBMr39USeSvtRX4E1n+S8/NtwYC632+LTs98sUj3ThVn37w9UlK2T2xgJqSwOJbdyJc0b1tOXUFjRATmaNdzX2VpnQFRjIEm+jCkv5Xeamj+2xGrv9xhTm+LmBNd4wDxSAyjERY2DBP6V1l4RjoajGGRK2AJSVtCrUlpId7XODoshOeNvEul7TfyhH1ZpvPuNSGp9lRomBAAAAAcODD/KCiEP86Z080hE631GFLfjgB2EK/EDaIPt3GWTV+ywEb87F5yvQSKjq/XDiGXSdAVuTEeGVK+BN5lJ8rSERuPgOVXaAzZgP4SBPEwdg0RuM9MWvdFImwa+gR8qCqhRA1Nx3ugi2wVoyICLuZevezpLE6deGQV2lzXgn1U3GPknuBSEyrRXlAP1SLQg567VfkQG1OoCW+RQzvJL7QpEt/6P8dKFCYGK3SZEEp/SCrgR1/LhtXxD/wm2Nlvk5A8b89Ghd+UMhA3gji4Rf96kLz4v44+BTg1WLY6iPkt9dBvjhptGsHLrBYgrCIdSg6qkjRScnrRK6kfi/6k+UpSOjHsPVJp3iJc5Mmha9yRQX9+c08eJMEy6QNs5DKADjEGX/HxQHZ1u6lJUs6iQKHhsMaz428CD1n9v8D/KiQdO6qrgzaL9tqt1iBhMW+jj0nWVoW+LzWCxVs5A/fzruzu+s7eKm+tgNNpAyiDxiL9m6MVCKELNhhoFrEtegbwDipekuPa2phKfJvWdArdDUVbLYXubijMMFyvQYw7FdJai3KndJdTi56FbvDk4iPalmNO10fsvC80unzepIDBoZn81xq7r1VgROXPa7P+tHXndx/Ap0ps1OrNTyZfQddnKWIygTKxLVY6kwGhNnOkyX6Npz3pWXdYPJH7RYCijv4+hbM/M2kjR9BZ4khOEStPrTJFgvHxjyE+hYj6SuFTh61Rw3TBOZpyPKz/+YFNjnF+AlCQmWiLQE0ROvG8ik9vUXT1qNIWlLAz+Hz2CAidbndavlbujmCTnjGB3axs8eQVOnNb2X4FfH8aKnmbCml96pb5LGKQfa0Sk4uFfBLdpfM6h7ztlqBCyTo750Lh7L3DtZ1Qx7g+g1LiCJNiCZZtMO8QQSvDlUKGM0d+8MvTNah0yRwzCT8/lo6eBpgc7wbvlTWxp+i8thfUMBL09Z6HvfyvCcmErG/eRMqwQK36UxBzZNYnVXSmFxY93MwK2RvFEnYm9c0SecaW2qZ6sF8Xp1cYPoxv3HwaQVaVvJ2VCHxbK+ZggL3QXQ1A9Yd8MvpxSLK7A6SFwKTGrxZfl93DIuhBKKRX33nboytB8fn9j4smjOoW9uDMBvN7TZenh1YICUaZVgvaE7oCKbv0inhlliXchkxtiuRMituUz3Uit2aou8gPfJrolxnRS1prhAoX4MRSUzGdMRiSdfdDxgrgtibsvgD9ger6HbOigxqiyD1mvfjIw1ojZy3qxhdS6VbCtmifVVHAijaFE0Eq8mqF7/VSUuL/1oWzia8kZUDyjpt5LlH1D1/GxLC0qjkwU6Y+btLXaniUBymb67YoXooZaN1y1GeDvjyYQDpwVbl4wX3RYLPie+/A4R7L3nlNvVL7kcBSFHCfMsqdeUbuBmMKQj6SLok3GehvnZuHDBscd9SpQSzAj08JjFfVMqA6r47QqTNdbSYSm75qohMthS7MGUVp7v9SV+/48BsJOAin96GG7D11PKryXr0RP3W5J4Wg+btTsP9wLIYdCkL2cqxabyVpoiFSiCpgJCYUsqu5tZGWDiBL6ukqS+k/HkemjntO7aF6W1WpQa5/+VSSYBn0aCA==" } ] } @@ -2374,13 +2374,13 @@ "MemPool when a block is disconnected does not add back in transactions with overlapping nullifiers if fee is smaller": [ { "version": 4, - "id": "45ec8323-a8ab-492d-b003-34b5e515a5e0", + "id": "ba6449a5-264e-4200-8751-6301094a8394", "name": "accountA", - "spendingKey": "82590327478e32facb836b59f96b267db73b8db885ecc04d0dc51f5b68b12d87", - "viewKey": "a1a0f178a228f28ea176ca685683cf4406d7bfc107e17adf26359aee9219c969f1ff92179c8c610802cf62c2049d8da87853aef8364659b17139bb15ac3c4a12", - "incomingViewKey": "bd9db6a40603072935fa554f72f3de5675c39ffab113c6b51c9efc75804f3104", - "outgoingViewKey": "a4929811ec9da3de152e325a01aa81facf1e3e5e380dda01e02fc9d2deb01a6d", - "publicAddress": "0b22442934a9e4f6cf9ebe79a88739e8550fa24ed09f72fc6a4373225b345eb2", + "spendingKey": "4e35e2a8d0482700babc44ac219abf0f9dd8b51d323dd9d3bf4b27088a50724c", + "viewKey": "6b6f52f5b99754002353ecf569f1a0fa7834d4ecd60cd34ace64798e2360f50616a4f5de74073dd04433497ce625c3535b1dc0ba936fa5e0e5a3937ddbd45ed3", + "incomingViewKey": "827815476e455ab7cdfd3e074337bfa855e08aabbbf23deee0a6d70d47fdfc04", + "outgoingViewKey": "2ed1dccec83dae020aeb5810b3ceb4928ba11617ef17ca9259339cf281308c4b", + "publicAddress": "cb7c3f447423846edf53327b51dc324e0cdd1352abbe236c7ce77e8b59947c11", "createdAt": { "hash": { "type": "Buffer", @@ -2388,17 +2388,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "29eb5d85310f7ffea0ad1b2e5b9ad8ed763d698df377b41766237bd29ce31501" + "proofAuthorizingKey": "b509d231d703ce0d356517c80b3ec630c9e88642e0f2d0d44760abb9b9328502" }, { "version": 4, - "id": "aa0ea870-d2ce-405b-a7b0-2ad9792f3916", + "id": "fbc2523a-fbb2-419c-b826-628a492f056a", "name": "accountB", - "spendingKey": "43bf8f4c83d41169eac8683dd5b8ccee954fa364fd2fe5265ed71174c0dff53b", - "viewKey": "54468627980d0da566b735a80d5c3af10696f3fbad8633335a8a8632dbb13c61a351a751cd7610f54c0ba63d1ca46d5e0a0d73af8d7d7e9d07b6b9d461b33fd9", - "incomingViewKey": "8f0addf83be3730e885ad3f712b8cefdc79e1ce948047b0069f3457add378d05", - "outgoingViewKey": "719d6c2936e9007a53f38640b04faf6ac20527d3ca865cbaeefe2205dc1e0804", - "publicAddress": "31b1c52178ffd8b5e27e9373e19437891101f2005cf989fea5fad3ac38fa258d", + "spendingKey": "3a9f4779a79609c2d36d344a40b47e59650ca1f055eebce388dc6b46fd96bcaa", + "viewKey": "a07d3fef5109021ca031fcc2dbc8484912479ac014001367f187c9cab8bc98a90848f95e6a9c74aeaede7d74c2ba4b5b9561ee060f1bfd66236cdc9e9fe76bdc", + "incomingViewKey": "37fc16a65bb79dbb2dceb3cd1768be68790679632f878be41f5e26d57d441c04", + "outgoingViewKey": "d4898dc6f8160e7e58359b597eafe7d18394b3edc7c4919a8b37cdcee032ad0c", + "publicAddress": "9faf2c41216de9143b76ac576f9b0172ae307668279e11eaa4b7210cd9007c4e", "createdAt": { "hash": { "type": "Buffer", @@ -2406,7 +2406,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "e24deb8ded0f90dcbee3c71d2c210665c4caf82a96162bda08b9e7ccee771600" + "proofAuthorizingKey": "64a3cccfceb362318260aaeb6e835e2127b0fb8a0b512d99dfe19679b62dcc09" }, { "header": { @@ -2414,15 +2414,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:ZvTn7ljng78YF0nmyrDbYiQo18nKtNMLWpe1oXGsTXA=" + "data": "base64:Rf4J0bNJD5iTiGApGPIYbwf0d+GrX4eIJ7x5BJgisk4=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:nW0jpPckpp3kNrMo2ozQv3afoEBTtuM2MlzC1CpxkQA=" + "data": "base64:/8U2X9Hu6s3paK9xDuI2fyQHGmcM0ipcYQCoRIoy8SA=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708551257293, + "timestamp": 1712340050926, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -2430,33 +2430,33 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA2sb4B8iitEn2NueLUWPoTYkwnSxBOgqmffYgfKuN8mmXW81F9CA+sz5RRPretZHXh5oSvoJ6C4GRjeejh9dHAnbrjxgBmF+Fw14oN9txcrWzM2N8gNT5Wssatg/YCag3jWgnJB0MtCp+Zfe1eHG1lWlw5fY9xbxNicnOGorQs4wZvFQm1B6BXI9wkB8eZSpioB+DuBhSk6J8lIBKmet4G3OCg7qY9qXMWFgyO/P1xfKiQMArOx9BIPSAbaHMLrWfGW8OwVpFiI+CMTssaInRxun2bbyqLq4jmlaODfL+uzin5X3Cvk5IrFIb6r2aBXjRT07IEx6oQqcpLhWoSYBVTO64W2wHyrVn52QHvIhnqNN9J6KeCs73/mKQlKCOY/pJbhji6eePt2W2r+U8JHWT9xxT5+TlEiOgQesq0dpAXywOSDrnw/5iIbMm5DlvCKv27JcreZyT5p/AWG7bQ1anTwg8etIUpxf1UUyL6ubi2OrR0TW+unAF6Kg203BZN3yrqxUwHpz8HGXmVcY/cAtcGbVkJ5x9+Gl9tgLmwbNOGjTbzQwtgJxASDhrrFo/l5ifXChj49qLtemHvLgn4WrAUpuoyHmsda+xuGkcSFJsJnYYC/17TORMc0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwi4+KY8ZoUFZI0oW/38QQ2JwAt3wHjpIi0Xipob4m3C3Fwzt/t8XAfIWmDCUY7rcTZKxAxpNv9d+IN3ddJfZ/CA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAoaYZvxDwwOygq1KUrxwsyoLwsWU1Sr8HyOCFlNrMMbaFdL/Waxk1y9tKJ60VHcoeQhSIV18KSwSyVr9BGZtYdwdojAzNYGHrLkN7bBJNzkWr4vI5h7IAARRBP/GyEfhRpdPg+m8zZMwLvY7/asE85Y2WQAo81/WTIlZg8WeObzsZGD3EGIW30/VM7W6BnJg/x0yygULzJxGcxgqmFwdVCwq1sjin2oO+u6lrTeWfl2+02CgMXQzGu7byW4bKj7KHQXo2BJRfkidYPIiPTpp9prMCNanUDxDgqVtjiAxx+kJrBDto6rL6S6uU10yTE5l902j+2Wi3TqnsaT5AZXDDO0XBfV03saMVWwadBbeKLh28RHZ/4hOpZ2BE0gCk3DBzilbMxfQCHj20EZ7z7PeNcpAviPJCOBqomaVQ9lFkELt8kI1vc2rUpxfa/V2D+Mlax6bWalQ74TvTJCrOpZ7kmOXPinKthh0vwfn6zi22zy+HM9XiZSSjI4Cv5WigwhAiJOFhjb60cAiaD07DE7O9+s9EDie6ASH24poq72MQ1mjsOtXU2RvOwc7/Vh6GD8BDKl5K2UR6l6HsLwFEfe5WtCx7BqIqqLDdNbM4hquNMK4gdEeyAaTh0Elyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwkXyYnKi1k0n8rskdTs2XVlJ86RaD2ifiXz/hQxZsnSd/WrQ6TyXPlVWcErJvLeDGDg6Xpt6sUUU3heH3UpPfAQ==" } ] }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" }, { "header": { "sequence": 3, - "previousBlockHash": "FBA42E930C7AE598414E4BD48E5CF13D4519A3446AB942E9F0886A1FE487933D", + "previousBlockHash": "B7EE0EA7AF21E1D7E2BD8AE6B9B5F1F99C10F4E032747FDB7C198C4C40F42346", "noteCommitment": { "type": "Buffer", - "data": "base64:poFm68zZwtMfccoD2Klh1FbXOYBZut0xRpvyVoHbrkQ=" + "data": "base64:dgWjGJkFIO7GygM6QjNCyp/SrU8L6nrEpoMzA88ShgE=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:ySP3gO4yTFqrKukyfJVHCIsnWkgIfN7UlJ9HAelAqEw=" + "data": "base64:GpVR0J560klrJx109cEKRGTSK5VJ0/R56Uq0+2Xj35w=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551269784, + "timestamp": 1712340053676, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -2464,11 +2464,11 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAA2uVP+8VMEUsWq1WwGXTogd9OPGfkvCn6wGaQuUjz3riTWGy+nqvN77thil/O+80eSBtd6JfeD93N3coWcwQ2ArrRPRLM54oynE9KieYay7OwGVW4S+aQ59iNxhcNJzN4VDxQSH9NaHNyAUjVA7yCavRGJ6UwTqClER+NRWHaBGcZe3AtZNqnhIDxZ9OgfHJcnF5F9QY1jv7tdTPz+fltOckwU36of0EYE20mWlSpjWaTJoVrts40LliG0fDXP4+K0jF+VSutU7enHtDIuw3jXv9hH5qYLFdDZKK81YmeqI4BN4Sh3CdIVU6SWn9tERw1GxsfXDHwxrr8BxwfLsAa0SOyc4BVJMsIjy/tK9hTcRDVPK5KkSuXBxlRDe/4j5BoowxGy5XGp/NV6N3lo/PCLS5B5BjS/vH+Di3d73thrMmd26hPRP1vL1vudy3ePdG2ybqKirNnzrFIXIICWzXbEGUCuHy8e8PgiuPucTAEN/RpBWgxNLGj1hw2jQbzCoiUGBi0GX5t2j0t29vS3Hk8BsTPq5Q/LF2yYEk6ke7Q7LbCoAOHFWBd7g+uIDadxlBp9CZtrIZ2mE1cSPbPmVykzoNm2ioaHC5YW3aGg0e4oebJ8h5s+2Bzgklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCOagGbY5XuWZfMpejA91FYDrahTs+1wLSZdNdoTiJC9uvIp37wJnYrWd5tgpfrDeiiZFeYEbvnMlXr0MwLTMCw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2vKiP////8AAAAALdFvaDrczHVBZszQLhI4T28W/EB/XSwVg4KX4RtSiK+SE/Xh6xnq0R98+4NxrNVPHVnTSDMh3PCPLG6Ec8ZKbfnBHgyEQkzsVsWsfcVqzEWFsXE5ivtdQoEMS66zq+Xt02c9WGAynCKBI3e6AxvUialp+lTOchiewupPle8Q094YAbz+rDSiAT3GA+2hN3MhmCWJAwVuuuIfQpXvR5NUGi8gVTr6W/Fz+j05Tx4pfg6FCbQjmpRzSYabAhAMy4iJI56Wbx79MB241UKCx602XQhgH37b065H159Xv9MHH8N7uvvea1CrpoeHPOeKwl2PoXuNW2goKwrsu7F0o19AiGWzPN5T9/MF5sWnFqYYshtynLF6VURxctVBtcQr8YlgOVRnNgTL4NNlBZBluT5CIRYTcJ0UWHC7p8TVJ/mGqwQMtXiH72i1H/dSaB1p23Qa7bIVTLP0yWLVcpa3uohpOBZtoeBEA0dqnmO+bkXXyecKCwWzQJIZYL7zmbH8rcwqfHBwHBmFTxmYFeYNddjHsqgBy49I2Tc7JEhBlcynQuMjZ2MI7Wlt5UMThpPK+LZYiOmDaBX9haOSGzbojbssUZnTPi7OZ8PqvsDm+AS+1uBxPFD/8HMCHklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwVK6W3DFZIpDcrL4natD9HKdCavCHi4u0Zl7YbnOu+M5qntU/0oowxU+FOPq27Xh1xN021Y4dBViRI7YcdelxCw==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] } @@ -2476,13 +2476,13 @@ "MemPool when a block is disconnected adds back in transactions with overlapping nullifiers if fee is greater": [ { "version": 4, - "id": "563afc49-97a4-4c07-99bf-f2c69ad71588", + "id": "5141c17d-01d8-4619-ae46-c00bb54cff51", "name": "accountA", - "spendingKey": "a7532efdd8b79bb1183282342068bea4579a895d278a5589cfdc405def0c53d5", - "viewKey": "f81fe051ae649c72c432713dabac7212f01eaa1ceaf1e8c6858c8896f031b00d382a78e600e60dea7c4b124103eae37adf520c813757a768bf631da8633dcc90", - "incomingViewKey": "db3963b38ff663b944a7ae557155242d007198141dfa523c0feaa780310c3b06", - "outgoingViewKey": "39b86218ff60f97b37d3f4796b94bdb71ffc3d90b9ed5017bc8af17bee416f45", - "publicAddress": "3e793c4eaec5cbf91fd5186a960d32a2ad194563f6e522a9d33a1753e4ca3a11", + "spendingKey": "125bb94a7aebbeeed61e9e2c245590de07ad0d4cf0eea9ca713d74cdbdc35b45", + "viewKey": "4e887140a58c3e349c94a52ae1e41950dd280d92edd536e31365fdc30f1058b424b61ac9ebb67466f50e5f25cbb1c910c17b56356b673d503a3fde473680eda9", + "incomingViewKey": "b0bd012489a5017ded909f5a59646abc5c631e9fffa07a1d52cb19295d0e5c07", + "outgoingViewKey": "e4dbe6c55147133077082e7584b0b34b0b352ee335bde1f9be9867159a252437", + "publicAddress": "49702872a5f917185257cf49d09194be7c340ba21b75978fc73fee2a35f5e009", "createdAt": { "hash": { "type": "Buffer", @@ -2490,17 +2490,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "18d960ff3e85f41ea71197d22c46569156c70d0b467f70f0ff28f1c030fa2000" + "proofAuthorizingKey": "7517b83b5507bf7da1bd8ce3451cc009aa57b55440ed1a685cc0ef2f568ca406" }, { "version": 4, - "id": "8af044b7-dd1b-4a05-b2a2-50fd5707a9bd", + "id": "0a11488d-1a4d-4815-a247-b0dd262527a5", "name": "accountB", - "spendingKey": "eef56d2241b75ac5ed38c08d2ffea7198c87682a28d24b7520f038c19eee5799", - "viewKey": "feafe59cfdcd770530e5885e7d507747159afbb9c6677d30e213cc0f23b152506f75afe357ee1152e3789b3fb6bd470f171a325ff176ac675718cddb67a8bb46", - "incomingViewKey": "abdf011869fed37754050207aec4c549f159d47476cd9c8f79430b7c994a9505", - "outgoingViewKey": "b32a902b75d3fdeaa73c1ec5c92c716a07644a4bcd21364488563c815982a71c", - "publicAddress": "05fd63b4071231476348d96389c9fa972d17e055da925148caf5b8594a615857", + "spendingKey": "5072af1756cafa94b74f8ee7e65942d2495cea7e79992ea3ee31431794d35657", + "viewKey": "009df3e662767fe2c65636806de3b93654e9a4ffe71e32e5c520a3911b5a5e5f441a2f7e52cfdc5b93b446264d4af9d5ef909a9ec36a60633717c90f96698fd7", + "incomingViewKey": "2da63b68caf29c455ffe59b0ba867a3219fc8fed88653353ed711ddefd6b1b07", + "outgoingViewKey": "80624315400d8025735f79916b795f952cee39c4039a9b54b1e6a74ee52c77f6", + "publicAddress": "62ae1a06952ba4a273ae7323e9c77587d46aa9148b6ad08cc06c49035f2461e7", "createdAt": { "hash": { "type": "Buffer", @@ -2508,7 +2508,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "3e3d80eb1a7a5c47f4133224f331e93e7e52fd2c44739bab48b81a4566084c00" + "proofAuthorizingKey": "eb5bdfbcc84dcd05ae5416176a7b3d038024002682751547ffc08cd689f01005" }, { "header": { @@ -2516,15 +2516,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:79NdXFsbDgt+FapCp5repNx4KaSCXmsTAKU1B+2koAU=" + "data": "base64:ScpMDUeXPGrnICvFCti4A5M5kmiNJ6EbzLYdC3GExQc=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:+RDMXUlOIaCPs1ez78BWcn/mMtATbMy//c78i7lBLZY=" + "data": "base64:WFwZ2aEpEyFTxSyVkefkZkMMvs6Oytmuv1fsdmO2m2U=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708551271949, + "timestamp": 1712340054078, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -2532,33 +2532,33 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA0O37lb19lXqS8Hfn7tUPAwjbOjVhYDpCf/htIgvsMlm4Oo8pcrmyEVsvQ3XD554hERjmCie1WaGjJnA98MzcsfGsaj2FiDXFK6pZllh2046TuNqwqNqPIIqEOfCF6XDT6KwpGyWlTnlGor2Zrk3xMmzwWyJ2JNPjS0V3jR+3Yz0EBuwmH8ZHFVWmlOdEhNM3IdyamH2Dw3cFy4JnrQRVecSPLprG5bPo58S/e2tkaNqurn7wQihsrT7F3+6SrsEkevAb6VVmEzuUJvjhdaL2u9fslDuvksKpu/QT9hfeZ3I7lgbv6FXBtVrqeDqobLEmXNpUJxXSnQgVxl54MwsV3QwagX04Zr3AamzzMH6YCTsD0E7dmeLvrC60as4IB2QZeczVdQZZIeB9hrzJDYCsaXcHZYFMfpsAFDpaVF/4jB24V01QSnoB4SAwfTarCqLYxHI+IssYd8kU0AZbm2Bz6TLet4ZaVELXP7YDg7146E/Is+Kdb9aqVSm3t5ERpNTCarZrvEQzfRAOFQU32VNN0I++4tAiQ9CWEfQtN0aJZG4Kd4Ift1EpIY1J5vXONdqfVoshtEO7vTfUpEBxilD7LAcG8STj72mHXHc1Rg/KXInpzuG7u4WkC0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwhg+xfefkvoRNTlrv16ct0/3/i+bI/a6XenrepVvWEs6RUOIZkJeVJPmEhltCWv9oX1H+vbsfVR5hcw3kLeNEAQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAmj+oU3WqYgvFMR2JbX5dvxV/hSHJ3AUThWqIDtgIAgyBLI6fYKGz88r/7flc+dY8rx8tNXu+e232o6BRiVdgeTu7vVA+mNoJMpCk36wQRbC2Pl8rFpRPIHWX8YdNIkTYCTTKTd5zdiZGmJFAVwt5x38cYfiVV2NSkNHKBg1VWUkNuOGTvJNi3W9WBkRgD5qEyNd7HIVLolQ9ezXZbldDv0Ua3Np6fZHkFQfaKuJIE0+Bz9dh5lPiaIGPiy95QzLfQZgi/AaCeeaFHofiwZ5qlM7wzMWW3TJvi+GCUcYzjETjRYYTB+cOUow+N5QvmwUO+t4nD/MvZ4sZULTR/fbMDCHNeBl+BF6rag2ch4L1+SwvYEAVno0Q+RXV9gVKO7IScsF7suAQd1OQVjRxb+VGy81kupv33b3bqYdWg+BOLW2iu8FAG3pbAMiY31YF9xxS+i/xi5MFrijBCbvPHHNjx9Va/vW/pq+QCyhfCkSmgpW+v+8NPSVqhS0PGlm/80WbWemp+V1YP99YExSniM7uHQc3PoGNSpPMiaAtoAs8A63GBJ5L6ndT+oCkYF/NMIeDQmZkgb/1q9HB3MWZQkwcspA8NUG/xLnkrQRg4qEhhAtI4uqfQXwtwUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwaSIjaxzhnwD2PX/WaYbNpqs8gsw603QUR2vqnyRq7pcVisel5PPguU/W7NAtIoYspTrNthziJVBd92NGQxHhBQ==" } ] }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" }, { "header": { "sequence": 3, - "previousBlockHash": "6AD8D31EEB72ECB15703130E62ADAE8779D4D7EE9D934ABB71F313909348A74D", + "previousBlockHash": "4DEF53F06BCCAED0AF484FB3197ED6B2598551A43202A614C0042BAC2B7E5C25", "noteCommitment": { "type": "Buffer", - "data": "base64:uIuw13hLmVA+o3pivJfbWneR1I4FkRM2Fe4VqvC3QUw=" + "data": "base64:siZBIF2wx76ZvUzNXHZEzHH/OsPNqMQ4lbKj7j/5lFE=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:QQPzl/1gRaEgqmpYZ7hJc9PO0lMQAM+CiXYwFfCqES4=" + "data": "base64:Qgrf6nd11xm80boY5L9g0GeAlg3/DVaooue5k58X7To=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551286514, + "timestamp": 1712340056800, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -2566,11 +2566,11 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/mvKiP////8AAAAA1QVDUFdS8JZBEZhUGXydUSq2EJ3g1PGMycXkp09/URSMLIf0QvGVuDrQCABEUFD/gIP7f/oOV312P7BGzOnk8d0G5Z92xIHvrI0/RqemEKC2kAlDunWlsaXG3HEDEtI5UOi2xRGgOaOMD5sSRYqTrtrQQcUdS2IK8UPLG/QlhK4KxcLvPQCGMzxsQnNY8JRr5VZnRfkg+WgaCWTGRytxyCKSIyjxevR9FM2ZUOPdmbKqDpqiyWna9lPDUvHOzMFEoM1vtB1QarItfc1EbHBe83e89uyQJLOjmk5bw5BU2TC/uQQPaN2XAfmdgB2MVZHLG1XSXu3727hQ0eEA2DVG3ifeu597MfyFPvbz0zppPbgZ8K5+UUii5qYlhnfh3Q8ZLcIwIbQYz0QosOhPJD08ib5MLz6cGzwBxrtroAj0G9r/sk8gdIK5K0e2kAJs8FVgf5zk8UR2ayEuv5OvWfFg/5n9jliAXv94FM5vTcs90h/xP6doyXmnthmX/rV0u87uJVtunyJl2DZrml9zyGOgUHea2CGTsuWnyvRZ3t0+4VNg5mF9jUmlWSFJ6kw1tVBHcINgW37qa2wGjMlzWLZRHUTKSXQds72WnD+sOmUNEg1k7/jZv7WwZElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwFH+yNRuiO0/IFRJZXq9ajkx4IfU/Phjl3jQV8kt4cuKkLtLkYzt10XJUTsOBU0iW1b+JMbRTpcpmmjd5dGWRCg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/mvKiP////8AAAAAH2cAWT3moMHDo2bGmQ5XHIrwovEUjpNpf4KyQbABR6yFyd9nCp/cPYJ87eyWEgDi7+DVTbd6yWSykzsBpPx7yQl3/vY7agEyesO4YOiGyVGNeBMK4xWz06q1VyICCU9zlIp1lC/tkCj7bp5fmSP+0ZQ0EQYtogqL231PIqtl+B4VwUJAnh/rvVUPOAj2y7kh7Z0ahYoHmmoyOIvO8aeHa5SBOKcryDhM8kkSgYHxMByO9wgea2TupGg33SBQOu1ude4ZSl4JDz6KfM/KJ/kQpmNp2KIR3ac9qbUrJN7G8m/42HRRQOQaYMxzsIh37QVJXWGmaLtHeU3AhK1Sl1C9BxjI+Wiy+P7VbfMUO2B5ytVeeDcJP1ozj2T6cVTExbhSV+f2EJnymy0Gd9cUo90ZdgD99YMtSSWJ6leEh9dgt3DXIIIzlKGrtHu0hYZDd2vaT29HovQe6XCJE4lowWEiPkryP9DONTcgMyudqGzr1AXuRBU2u3Rce4h4a8L5Zxc58wLleh+WD+ki5LsL3RBPFtC7b6jGzy4SiINhV4SPj0pP0YYOc7T33e12A0H4AQltn+oWDLg6E3deOwa1pAXKooEBFjemK5kolTDkovvj8LEnrX7sVsduxUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwALULEAWuboUGaN1pOexLketgo05a8zoBSsFJcZ++l6JLFM7AESC5GREQa2sy7p+UgXOmGaoFDNo3ywoqLMOCBQ==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] } @@ -2578,13 +2578,13 @@ "MemPool when the mempool reaches capacity adds low fee transactions to the recently evicted cache and flushes cache": [ { "version": 4, - "id": "232c488e-f6b2-4e36-88b2-ccc883915c49", + "id": "764fad00-7485-4f90-9a8e-b06a6806216e", "name": "accountA", - "spendingKey": "685dd5e038a3cf885c3ac0f2bf368e87df74947a2f7ff97a2a635d788d921aab", - "viewKey": "aeb95356d035f6eea35b1f240847a131ae19d854ae944afea4aa0de623f94da652e7bcd7f7583f82d10661bfae022fb44b077bfd2466557b97b396ebba5def60", - "incomingViewKey": "e33407115217366554cbdab65385c6735b73b7288626906631aedaf003d86d05", - "outgoingViewKey": "3783ceca1e4eb4e88055deea09d31865a8f03c61a51730e818e945443f765d70", - "publicAddress": "40364673846725d02541ecb76f72b4e0d76292e39fce0c280cf7bad079ebb5ba", + "spendingKey": "3937baf401375c70be579ae9bd30017dd97a083c3bd26da536bae1bd9ee47cf9", + "viewKey": "e0b10e291a7e6a5fc97cd84c474c38c58086b2fce4519bdb8b9038617e1b0c71fc4799db51d8e7530d7249768aedc5b7cecfe12969d1e9e47e0599e2a15d9bea", + "incomingViewKey": "0af9fad0c91a5e6fabd6f678e2e6f06a7dd2337c173e7b439b7b318d55bb0204", + "outgoingViewKey": "195a1460fe1018e6477adc1a604fa695514c0ba3811ae2030658d2a76e195189", + "publicAddress": "8ffb983bc6fa4748f5b284fc68f827825516db6fdb2f405f7cf94260d15f77da", "createdAt": { "hash": { "type": "Buffer", @@ -2592,17 +2592,17 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "24ad552f6ca78bed82ea02b674ca7449b83030df561340bea176d6582664ef0c" + "proofAuthorizingKey": "56e7eb8727d7e275a52faba4f014bbb9c612c0afad48889cb9670cf2ec25af05" }, { "version": 4, - "id": "69f7ab2d-7552-4fbb-8daa-fcde2556a8f8", + "id": "0927213c-7dd7-42e5-8df9-9f6fce1721ed", "name": "accountB", - "spendingKey": "6bd2c000ccc82a580d72d503de58cd4088154fda926bdb0fe05ffc40ba8aa0b0", - "viewKey": "1819c3aa7b97b52f41bb61564ac9fb4320c8a2091369c151f0f6880997b2928ca4a7923cebee9838da998bc7cabb7f5c3d3c8e857dfbed6ce8a77e8c0b1845b7", - "incomingViewKey": "d44ec1a1754fb5b98efd5aac4ce598c85151b7af55c287443fc0d3b835b71407", - "outgoingViewKey": "d619d0b0f3de4ba0184a6b711281bc3b8fb45f8813c8ba4b086a2ceb0eeba3ff", - "publicAddress": "490d72e2563b69e08b1f2f017c2db7d7e3fab8060a2ab0f3a49d503d7d24c3bc", + "spendingKey": "b5a309c95b33a6e7e70b45148de1f08f6d7a82f8581a8d38cf9a47b0fb14d52b", + "viewKey": "e4d732a56d2295bb695a1fbee03dc9c00f7e5f97da4c80470b782d63bb4fb72495264732d7a49d663a1580d089f88a38f8e438dab9e5df660b437062e8509a03", + "incomingViewKey": "bf86e6536c7d09de0d0efe2de54b2de6379039fa059dd26d0f82e7228f971904", + "outgoingViewKey": "e78ac2bd18007971b56fbc5e1c02b16205ae3a35e76d4f4c171eeb8bfd18765c", + "publicAddress": "803aac75dd6803eec65642c95cf06a9b3d239c35a0bb1d19e664935e8bd1ae3e", "createdAt": { "hash": { "type": "Buffer", @@ -2610,7 +2610,7 @@ }, "sequence": 1 }, - "proofAuthorizingKey": "719e6e9c9eec3ce6b91f680b96b97ad842de42700574f2e89be8c133c62e1304" + "proofAuthorizingKey": "29ee399917718f4f68cdb33dfb374b9819634ce3e7ee2e4b6ebac5eb75e3940a" }, { "header": { @@ -2618,15 +2618,15 @@ "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", "noteCommitment": { "type": "Buffer", - "data": "base64:amyuTC8gK68VhfANS6Cj58mwXs/IZH83zD559UCPOCc=" + "data": "base64:yQE0m7LWIPqCM3EKxH55HOVo5D0QnkRhsmfc5uEW9gk=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:nFUqVKqzrQNgbzNNkV2Sddw1pqBk1EX1vUa9vHbIL1w=" + "data": "base64:6lhwFlVLMR+rKpXdGEspYB4/cmMx1uIySHqDZf6yTAo=" }, "target": "9282972777491357380673661573939192202192629606981189395159182914949423", "randomness": "0", - "timestamp": 1708551287785, + "timestamp": 1712340057207, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 4, "work": "0" @@ -2634,25 +2634,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAEivS79CDQjlb4mdtiBmlpaSfTQx/fvt5kLy40dHQ8zOx8cvgDRwLJruiEFnjj+QZJIheQ6CP9gIpWTsjE1vYX7ZkRx/of0BK/9gemg8Os0GZIu01tBVqWd/kGyzhKw02FiY70nwuauy+4cAZ3Cuv1UlEXFsrMo0tcTiLel2seEIX40dpHL/G3i+++3kZKMRiKOwZDfc6bhYxFHTnFsZX8rgiiIJnStPRWYZO9BFva52AvmCR4Ftl3f/s2S6fupxZgliHf5BElVdSGYbL4Aep2/NjKIGZYOEwD3zmdKT0Nxv5eBec4nIx8PmUyvCZrsQLY+2IEGEMIlzkP86TQVOKvewrefLuYZm0Z8bWpDAVLdq8Y/WyjUByEZbI7jYK7rdpglFIOC6MiVpAHTbvZwzf+XmDzqgYWlKMEOj5Kppq+Nm+/GllA7ZgBtAXaC8j6+IFOdue9584/pg16ilao1PtEFm2XVEsMMMysdrtknVtHdgjgkc6/DVGVyb9W6RH125UfZcC6HN0YdGxIkkSED94iQh7K0qUmc5bMSPDQdOi3WlVxdHGMCLA0Zh9eS4+/TIZMZ27E/GVdbPEJ/Shk7bM93QcWapqZALQqtMDe+Jyx8Fa8MrLNSmMHElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw41WE8sJr83PGzVlG6TvqiFArKq8hXK53nBiqR46r45P0rDuzgZZ2YQgriL9BmY47bVkN63dmvoRqAVTW5GddAw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAqWYEE6Ojr9+BVCQS+QCZPpBzmWkSE+IKLcJgSGtZAD2zy6nRC74y2fBWQJr1taHce82+J1LtJwo88XCQ3CIozTJ0B1T/pZtCCfRQIMODTxmq9Rq4F+2+GvGlfsVVyjlMIivjfmASgvMyGPI7gANZXDQak3MzD0/xHhY513dLOhIOA0P8z5D5qvVmqVx14zUadbydEeWh7Q7GMUGtBaGhB3hf+UFgcRQB1RWX7xli8+6IoJvzK6AYqOTwguoQfLtgm/aPoWEDNGm2xiAD0wiNnjJZbTG1r/YpWlGssK6fjHTJjfoPgMNzK0iJm2dhzflBNkL6UYOxNZA7fXD/sy5QRkpBCX7obYvivVlQoamzRY+amvTpF++w/K3QlJcPfONO5QjqKSUt1xzb8UO1AfPm9ADXS3pKKoLy6yXp779ZFzHMcGWfi+oWCsw4MSUTETb4RVg+IqAJKb/FBDj3Oy0HyLCfufqarY8cSw20b0nYEOt/3vJ7uFCWzNirw+YBEVQz0Nk66q76JU56Jk5RZCL5ozfQh+8mN2y3irNSCzXXCU73376o5uPDydkaNwduUgfmcG0sCJSMoqkw5uHbfC8UCiTraxSwSZzOeg7H/D8rQJiFkDZ6TSOUkElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwUu6vWNcHFWoIZ+6lFiYwsm7BiGvH5x1eDscQnivLLwtBTIopSOwtIip2gMgWPE0GZ8GH2c5bHH79ML/+xDzCCQ==" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "08EA0D91FA0757AA8833ABEBB7D1B666219A7BAFC24ED48BA92699375D84BF35", + "previousBlockHash": "C3892FE5A5CEBEE2A6977D1EEC7CC177FFA34BF65C568A7563016640B2F92451", "noteCommitment": { "type": "Buffer", - "data": "base64:8IaBOim7nuE7YTRtqS9wh2UVd2RZimz0Jgz8agsruzs=" + "data": "base64:DF6YUmJqLlUgFid0v+rrytJ3APar2flnS8lrCwgP8jU=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:TzPl503KGM5gEbwKsVx1nzRV4VZJyqGlxP9oRX7XAMw=" + "data": "base64:qmLp8U+Q/z60ZR/tcSrq7cnzFByNsDyEB0sZREFFpCs=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551293077, + "timestamp": 1712340058656, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -2660,29 +2660,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz2vKiP////8AAAAAXp3BaZ6rMe/+dOLocWSvntNQ453FrkkqsVLvI4lp8u2VOOcngoWLadHaeGEQhD9Mvj+wiWw6GCqToT9hEdeBo+MmSqNpEA/ntl3kHLXxxk6kopKGVJpaErJWCki0zszbk8tRAWvTZQE0JsO9/IPOwebt1iZilcH5c1l1f+lDV94NmeFHw306N311appicnHDw8vWk8jt3OxwYmsIwTidPquJfsIq0JuPB+/MXu/CHNinNtAuDP5rCwvNpKLjc2vyTOIrnjVFGTfG8dT85vnLLM1Jh8Sw0T60M1PV/qBQaf5AeguHzYYK2M05RJOf+XXqqSEqENeeSBif8DD3OPvUsGcmYJFQNB4ryYEYfSeWLCfEVBEQrTzZyav5vQSUr2xEloY3CD1Z4Tj3wgASprfJTbaaowVdfCUPHd+QPIILlqJZLIKFOi5ElncAIlPycFdJebvEXoqd/z4MNBK+M89kwhAEV7mQJAIYulfsCCP9HdcUQiA3EgIWhK/uVoHOcnKALztO6dOjM/XHCJ4rry/cKQnCUzFPJWB0bN5zdUHpQzJhrDJLOKybls7AXKaWFRGkGnYUyL8hot0hjs8jPT0ZORhn5etlhqjWMmXCByQvpReRWqVUCbO6P0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXuZKqj7ztFQAWygKQvM5f7bqOUaRSyylZyyHSaYCnysGLgzkmldCAEx9xF68UT0jVPCr2X+XdWzmbHJnE6H9AA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz2vKiP////8AAAAAdPFXnoGptMfLZ0EHJsrX+q11/0zvNRPqko9ecvkHfZSL9aFI9HK6NOxUZ1o7OMrBvWsK49qCMROIHV62HosuXTtwq87mgs2wLf+VNVPZT8uQWZcdMOAHCmiAkhHihjOlrKNf27H/ztSH79XfMVciSFoq90oIzlWeCUJ3B5AUUG8I9s5IC2z7IxlDBSVf6XaFNkL8rn/YN9yE/Ps3GTy36OKZxJxV/fyIqo7NxoI3/M+i9b41kluynifwZYTUz5YFhdw6FuJoJARZZVsC3HDlhjAw9eqPIp6CO0lsuFnzV60eEOlrshLRRH22VQ9iKkEwTSxvBi61ugtJW815mocGuPTV/AV+eAcBoh5jlUzBLzLGg8G2AluN7L7ilkE3F6BJTXy5hnh5dDJxluPDYtVlsGL79h8FVaoSG0uR/MWf+jqwoOsUSV2dno+On8o8viZmKC1EGglGKV9DJE0Y+FoCesjC9a1KrSC5nZO+vOnwTMUdpxzLQHcHVBS9u2uqKVrclRAGo+GRm6T3rB1iRTBHc/Ifo9iJ5kwLbGgSDnKhe6qUDY6xTAP5ttGQX2gadGqdJK9DoLNZGFRKUrzqGatfuC5HXvRMeQi2K6E0SaNq33C48CXUFT98lElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwp3CoxK4pYFGuil3vm6yZQFUJTJ1+RDW5eRD1pqzPDBjfBtC5fzGwAIGBvF8tSE53Hg0GLaQqZwn/EWwIT5WDAg==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 3, - "previousBlockHash": "08EA0D91FA0757AA8833ABEBB7D1B666219A7BAFC24ED48BA92699375D84BF35", + "previousBlockHash": "C3892FE5A5CEBEE2A6977D1EEC7CC177FFA34BF65C568A7563016640B2F92451", "noteCommitment": { "type": "Buffer", - "data": "base64:BSrMjuZoCH1o6daeDYX8d5rKGnbMkZxowEPF4fPcCzQ=" + "data": "base64:qypN1X2KHOxQpu9tqBHFW1VlIFR2ukPIYIf2kLJLYgE=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:wQfgFrlhJ7HXWLgOOY8h3h9qC79JsrcW1BizFvQotpg=" + "data": "base64:98i0nrgGzvhv35M9lwHe96rm6qheWoOI3eiXaQixLAo=" }, - "target": "9260366780148527510972123832573278885902566341756516011968728852484845", + "target": "9255858786337818395603165512831024101510453493377417362192396248796027", "randomness": "0", - "timestamp": 1708551294354, + "timestamp": 1712340058958, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 5, "work": "0" @@ -2690,25 +2690,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAanSgBVVgapC8d+HqeRpqxaaso6XrfEt/AdotjnDErjqPIiDVxayrN5g1tOadI1XHO1hevBwIpozzR1jRmHCPbOKFy0PN2v1Osn6xMJFteUqDE9VHOaQwQtnSx2sZ9wi33RpdnegrBk5nIW9eP5YQ6NZUWPvL7YBs0GlEYQfbpesDN1+RY+lcZtovMbc7AQh1QpHOV/kXH+zyhEJQTbJAf9ADpPx2C0+IBGkvcyY15VKh+TV7wtUeqVy0ASyQ07Vxe+bhXBrh+kY0uhzN9Q3GmyPdHXHUPtO2J36egMJBciDwFA+rIC8ENdV7Ig1NPYQGGRWcyYX4UFJxCtpQzau4EgS07NW1D626h54bqoM4RBKFgXDcE62JF2YjPy5nFl8RO8atq0wZOOM1+H6DCDlkqxgvV+xjquNrTxElmheLwx5wGNZ7YSNLVDm4XMVNSo+54yh9hPelpkhupJT/6Cr3I12KB4kwlLxXQab7Bt/PesBJ6e4moEqWBdCR6izktzAgA6UneBekGpw7jCMeQU9fG7dt2tCW+GpjTniABcJDfROUiDoeeXzzS+W2UoAlLSl4rDY0bd1Zgq0/snLzxNHTdSnrLlYDZdjirn2q5zBfpQ17hw8+7Zic1klyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw8NthbD2P9caSBIWnivEG3ZDSqO9Rhlcq7CrHeFYV0jkJZyUgwm6N9bNEdQprWcgAzdYOyTf9t4q4iZnAxQ19AA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAmahIcrSxgrvyN3m3LHIuSEq4ljoVKnpFqHiYfperLiegaEpWN1V6O0bzlZ9RHVBPyUDJwEP3XubGUfFaFJ29L5X27bQ9Iq4Sfuw8V5IoHlCivVXJQwn2n6oymNPRCFvNOWJKo2Wk0D48fKoebuYccaYQ8a4A3p+aeOGyXTN94ZcXKXJyeRGps2UpcssUUmd99ly3SXk6sg6JXDIdhZJK2SvIpybsLAT7thCRYKSajr6FqK2veoo+s5WS81FKv6YtIeRmGBYbgpQITF3xY150lBQCx7kvMGHOYVaYOjhGRhsNfbfI9u6L/MVUCssmFWzZvBRM6fhxXQGy/Z2wuQMkS2Y6eEPHEuhU24HLrx7AlK53xL7myH8bEK1xh9O8UZBGrZ5QrVF1G4q6RcUfu/JwCKinimjKGTTYpQZ53eu1KgBczzOmyynAzpKyRJST5xTvFf9KuQ+sn7dQ5BAiAt4pjxnPnN2SP3ubgpzHzjwwXFfIDrnLCPb5ffGGBM+2bweZ7ONK+ZgHmC5kvc0W7OhRxmWOzMlaS/k5+lVbesbNPT45FwRaqN5XTJGKKuIjb3DYHGTFpZRWqAOFHhJUJe2w3NHu01GUPfQQ92ruWoUMh+pIylZr9XuTt0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw0k9tFg6WfuFFqbq1fjSyAwYIKcP33jfvZWzfqDEoNQgSvlP9YrLngs5WWXOjDR4N0WfOzKqAP+Xld/v9WhqOAw==" } ] }, { "header": { "sequence": 4, - "previousBlockHash": "7A23EB83A1C0715CF818441601833F0DF11C623E4ED3C366339A07CD321E32CC", + "previousBlockHash": "35ED04AFCDAEBCBA4A7035403E2745BB6BDDC0F3C96C5568067EABBE80CCDD9C", "noteCommitment": { "type": "Buffer", - "data": "base64:FrTxjF1yc4pW2ROuqeRXNKukIrp1jZ+xRBMt5llDRg8=" + "data": "base64:+PFXqT3ZnV2nQo6q9357ML/ZajLO5kMseqY8qhx1fzg=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:iVtWaE6LOXsNcXaIP8e1+G32pL7fJdxxZSfk4Ryb0tE=" + "data": "base64:qsOo+KwYcvKWdmutdWqylCzQ2h5a/j3EOhM9NkmgJuc=" }, - "target": "9233318228143625020618577701423519925017621426082203201059080050516648", + "target": "9228823284279306817296266184515742822248210830185427859262273659833347", "randomness": "0", - "timestamp": 1708551299309, + "timestamp": 1712340060433, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 8, "work": "0" @@ -2716,29 +2716,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1GvKiP////8AAAAAf6s1/a5wNPTEipyGutzfgXAHM1McpvP41UZJjuNFMkW4Qh1YejAgH4eo2b4uR2ordVTgsVOOWAm0Rwqog6LHd2TCmSdikRHkdMR9MPgJFGis1Jtib2h/3iPOwd/DZvC8SPkR3Wjy7V8MMR1FvvNUtcAZgVv+/Q4rtI1VhlfQ4L4ZaMhLxFDDpvQEgeIbjhucxQN1sCf5IDQDuvJ+TNKxboJxSm74/d24zjEiRaIOfbKxLrkAySNz9c5nGH5P0rNngyhH2PoAY92dxB1E89dNbM1ZTQc0QIv6dLLWJewpcWz2srdRXg1dkFwIGErd9hnarD8VHgvF5wttYLs0biGhZyYROzXU6hJecJHmmowcNJw0cxSE5CQtZZLxdYjdwhlT8n/GKaf87VpmmdSKNLVXwZjJ528OedfNVxTi1umdqZXtj1Hm86Fy/i733FB03kVU5lb/TtwZQLtCvM+O6uWEV2ahWUQaW21IkmPdMWvbBpC0Vd45pkkNEK3aCOajfiYT8IUf28MzBGcshnVRSWutSldiFDNPuLPb/bSB+QkFH+WCOijpQvaIEUXJukskEgUmZFmugXINj+Yr49abQm46ksC2xj5XV8jf/mL4Wg7yARlHLDRhX+h85Ulyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwGsEY2pSEoVGhXTnwdUV1tGwz1mrIujqzwueh+oaGBE3ouXTIMKLx87SVCarq1htw87yGvtUqQqQ6BFhES607CA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1GvKiP////8AAAAA9jdgfDbCPhCXNSr7AAwZaPO14n41GfxhXLslUgkEgo+PSQgtAI1VNyy7yzGV0QlZgAz76ormoL3d5mTHNGpc+v8jUMDcha6mFWLppO5zSPu1KVUGUGOs6jLDrdtnWCzdR+jCAcgf0WDCO/X3owwm7B55pYDg8nr1XJcsHG8vqfkLRfZBnNvT4c+JnMscJmKzWWWfhtokxfUufWjj9hNKxjnI6UIRZAPpmJ9vP4IgddWklnXcwFXa9XilVBXn0cs8pVWMAdvbtgneT6kRNxgyWj/+8CF2CcUNQZcPoBCaH9U/4wbuQILCgikS9tMhyGxzVywoWQkLwOwIp981A+C+UbloKcZ+fOl8ASqKACI9UcX43BLneDsk0bH5+DR6/JVKqpXb6uHXfBzsMzwZbDemYttozX3lM03xyse57pK091poQyn0EsJJc/Un+gVBwHxYkQeh24c7wxu2zttUHmEiFcM3yQz3JOIJZpfp0CTDchq8CISn+8m7ORtjo/etFvXebGVce/1vIqr65SmO8R8/ZFS4Eka+bV4j2wPuVwmqkrEtT5Wdj+lmQR/e0KBCgBHagvVDHlLOVpWGrsyCtuKIMiB+Lr7Ne253TamDfvgrKc0H9W4ujWdSNUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYu2fWibkQ5Qr5FukAzbSJLC/dVdZDmuBA5QvqNVPz6PD+0Pe5x2goHSioDMu/yJXpX+inFfNj1M4fI/4Y2R8CA==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64:AQEAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAzfA3pxLF4wCDkDzTYS7CumX7W6c2wi1IVDNMIXscUWuJtezS6dbNK8DyPWhUpS73ofIS1BiJc2pliUOqTlikQSuq5ZmZbFp+5sJw0IH3l3CFd82+XGygNxyapjkIi8Yj25vZguzOE3SqNJTluK0jIFOoP2ZyZxAIdVKAIuUI0DwBHkgD4EYNTVuCUJoEZ0SAcG7ZlabA/UXR/fY6ddCRiHDq3GmV71tn83Ly5AsD4M6U+B6OPWb2ocASiuJmdIT1TN3IrSZE0+U1JRQgTEbDJBvI0MgVBO3FS0HLG12sNFWWrcgcxcvUNukqpelVnSCMwrnAVL+8hxLQ2KgyTUXvMqsqTdV9ihzsUKbvbagRxVtVZSBUdrpDyGCH9pCyS2IBBQAAAL6+48C5qTG0j0+Se+tD4Ey6UVNgGpGUbZ1JE6dN1P2mppsyi4GMyYtckWzDkGF5vbLw9l3f/YrJ+xHyzTZX6uwn+taOe3Y8OmcihtpbPLQE8tM48VN63QBcGZBR29tmCbODi9j6lKQhM3GFrlxs67VaUlCzWAIWYRiNLWhnuyRBHFft5SL5NzUaLPTY57hoM4ys63XmqLCHRN4tErAVxD7b/OTph7y0v3cfMR6UVvcFiS/0GCxkxblp3mTaQPVZbhZWGTGKizoIEVRuQZ5QG6vi8eS6NS2UpDUGZcyqQEpd5KZOyW1Zy5c4jrJ31PQ38azvjgPF22HBc2DAYf84dYSJuv4w6F8auOQ8VUFK2O38tp+fgQoJ/yAa/p4B2Uv1SB/GLSpJvLCVpSJGTwtIzrpOhvRk14Y/MERHlYR/jqS9LEs7MqTYmaYfHl3V2XAyCCMIcHZ3V1ACqE6Tkpc7Yh/oSejEckL2jS95no4+WibHHpowfCllAvB+UQetajmE73vwS1HAI5c424dtDNeGFUW6LjhIXq/THTbuM9qMhV1szaHxyjHdFVi+HFF3qrDX34/dDL/2/+jRASW5AoBQ1xTz5X78KOJeeyxmCGMlKWVHD3g/+ehRxvhlID/TUgR3t9egYlJCbgc2rkWiKAn/AFIViriDiStYJbnBl2Ymw4FcbPh1eqtsVeWQmKYc8K3xa44aYkrVjuZGRg5DaJ6n2J5nS4V3YYeZi0vvzUPZe+v6xGDf93vnZLAyeOFw3Th7RiEJUBV4J47Hk90ow4NS/BipFJOmQ2R8rgiG+ZhZbvZGv2MJBDkDyNe2g2KFXW10ThoIvLw8m0Ld0wmtZOR3u26waCwdsk+wWMoNZk3kzx/w/mWT+E5EBtqgROafHxH4seVAjtFOYZL5Oh1uM/jNZYlwJ70qU+We+gsGNQFX0/lwhbOBetWB4b4YUOSykJHi59TA6DVgZoTwpkOKGxCWg/Xye2iwJ605yJr9TwIDZgOCmE6nhhK1NaC2ZwfkG4H2KOQNd8kj+R+n9H94NjPWUoNIK+cxW3jwcp/Dl5bLizSNfm8NLEt8RcZGNeOOcXxsB97Z03Wkws1K9VrSk+eHmbmzN2iECAS/7we8/fF/cH9xAk/oMCRP2pWzwAEiwJkU16P7gPa31NVxZJhj/71BcmHBAcFH44q+9SvuiqLmd3oUskA7WY1u2k/CZk8/vA9Ppbg85nxh2B/httzHw05nwD4IpehEiMjoDo7BUFslN6mLatY4TIpCxV7VkuJj2HM6G8TrYMrsn6CCCtnbIfgmw0uctUpKSDsgi81ThH+Ne76tEtMSuNRpZzyUGmlHC9BOMONTj6DtOS8apgq+XInIWC6zlS2QEDCA0S5hpRm4yf5ZUwRlHzpF87K67+6GfjFczeB14tSjSl5elH32ZwsdrUz098JJKeg6BolS6KvL+WC8VihEPIEVclGVZDRzPUloeENZt3mElHsAIDBo4pTRf5vrE6V8h449TTHGmnJ0RNhjdvVG/14gpcsCweIG0ZCl4kyCYh55yE6dgvdD5OO8wi51meh5EWKx4wRvlOXcI88hMHxQ+XvDS1tT/5XkaNCLAQ==" } ] }, { "header": { "sequence": 4, - "previousBlockHash": "7A23EB83A1C0715CF818441601833F0DF11C623E4ED3C366339A07CD321E32CC", + "previousBlockHash": "35ED04AFCDAEBCBA4A7035403E2745BB6BDDC0F3C96C5568067EABBE80CCDD9C", "noteCommitment": { "type": "Buffer", - "data": "base64:4DF6LYddlGpP+zSY6Ywx/BcGTQ8vQvI2ZpB7CA/B+RA=" + "data": "base64:iAVfvHgpQhJnr2nrAs2FiTgUxyRS88ZLDuubyAmLEFo=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:0LWq0WIFpZ0oxC0CTa98Acr0qgoFeDg62vgrGgBM19I=" + "data": "base64:8S2zSHAJp7axkM5lwb0ox9cZB1Sup77GcMRxeXCXd3M=" }, - "target": "9237815341750015092140817300043113376661752366206318446334046747329935", + "target": "9228823284279306817296266184515742822248210830185427859262273659833347", "randomness": "0", - "timestamp": 1708551300565, + "timestamp": 1712340060755, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 6, "work": "0" @@ -2746,25 +2746,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAHfhL2O/kF3XR7Nk0r/xwUsuqh9BvBa1d+k9Zi+qq5haYWXAmi2kZVuMXnAZ5qWCnTFM9EXl4I9X0juHBoUsOj2yEjyQdg3MDXYYsMsgj9M+B2Net7utsvFecv1yk0Y/7/+CFiiOTthexvqohY3ZV7HfEzB7QeSVyWljPS5SVagYMXNbr0Ud50Gn0TZs71ydjQ23pJT0ho93xMEZXPvfHZqsjV94zdYlkp3/ILsNEnvW0O/iDVaB3+gjV/twd6DtKWysuVAEwebrkKhfbZ1sd8tCA6IgyOB+9yfvpsx/Hk/eNJgQ35GJbo8xiwtBxy9OIExrfV1ytcRUqB6jwvFsio4o9kNf6ZFdR/JeTq1PBjceyF9jQ4vDOK5ivSrBSGpE1CMEe6raNYMuGRD3jVlPAa+zEA5/N+eoBME16Euk6fhfc77wJIRApGD0a7PvdecYQwHgTztoa774DpNR1xVuCulM+HYEAvXXejvlRSYIYvFabN7D5MAodx53Bh8ZH3VG/JAls4VqpmG4u0VZZVc+5FnKJpNNa9P5UKPosuDp9lBn/kUmfNtqfp0Qeva+j8+s6znB+Jb0F5Z3TZqim6ykLy/hK327xD/LA4MH4ajcMm2mW+Y19eZjlaElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwSBmq+5zm/0TwrQNCMhSkjgi9HHgsQ1uYiEXNLL1qFuce38EgBbLSAKPosSPQPhd4qDgMjJunsCSm3pUrs0e2BA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA4uAah0uk6fjT72B5TyqYD7cYwMATITvYr41xV+FBJAWJHG252ZhG9Kor3FgK8MQywkWLZC0MRcp6SoQwDI/UrfqiHzEIWOwNDir+MdkGqm+JLhqBECZSjnYC5zkUW7bUlwe5uERZJjYzd5i7McfYwDrOhxmLPe3G8Tig14DJro0LYY5cFf7GM3h7+TxQde1ZL/BN0zIGIHOZOzv+8PxdxiFi1m+/ITVBvpX2C3/Tc9qyK81qWzkweyCK9TKfwgQEXc6YZWhBo/KkG7yadxpyoyx8TZC9K6LnFYWleaFsjzZNkAhc5x/HtgJnHQjVozfIVx65Yl6mfB8aiS9AVcoGglOEA+7550nZM5xu/KO9nbOro38NR7V8dmbBgQsX7lNa3OFWqvFENHkDyRXxE+OEtGPFvLc/x3D6bUctQ9AiBGaLzN/Ckee8O4046LXJaDAx7ck/D+ytuj7ZjKR//lqHICguSo3P3wvPY96RnV3q40dVa8703p4MtyY7Zb0joclgAE796ANgFoqFMOqYzqM6nxBlAF264HZXPMNuu3PWBdA6U2PJpUUYQ6EbEjvxyNOPu1uLVAFycJLFKr0G5iVxqKb8756+M+AaihzHGPsmDcgEnFiT3Lfm+Ulyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw5J4NS8X/5qhKg/G7c5w7//NiK2RBwjb+7uFpJTs7greNJG/ybZMdIlQGU/RpaKGXTbe4hZMpX5pL6aDoULkrCQ==" } ] }, { "header": { "sequence": 5, - "previousBlockHash": "E1FFC56EF7379685F604BB37420C3DD869910B104626BF9A7C1209191BB00914", + "previousBlockHash": "7280A40386E4D7C16785BC189255CC9E8859327A23DC43ECF409764F8AA46905", "noteCommitment": { "type": "Buffer", - "data": "base64:3ldqAmsN51eSdfzH0KKiACMl6eIcZYImabXILssn2gE=" + "data": "base64:7u2A+nLVcoq4Xdqln/knTtXii/Akb8GjUVMR7eGNvCc=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:BDwrZBkmFogMyjbBT6OWBQEvexGWQFVsE5Sr3qJRfjk=" + "data": "base64:k4VBnvI/WaaDlSKX3qomWZhGpvF1LcGj95ZmX0FqfMQ=" }, - "target": "9215318468490585719941901725100359354586783285202200847935471173932168", + "target": "9201866281654531936596795386791503876274441021197252859723586932895305", "randomness": "0", - "timestamp": 1708551305881, + "timestamp": 1712340062341, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 9, "work": "0" @@ -2772,29 +2772,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqGvKiP////8AAAAABTAD+LTuhnHxh+ykfHF2iyWb3RKZPut55dzxFiBSAtyOYOqlVpz8Se0ONKSl+Gs6/ya7KN/t8vatfg5pFNQWwtP8ZtLgaxNiPvgfjE7WE+SM/JoW/WeyqHzUEA6+kbd2vx9EHsTzk9WXHCfhH2sgVTC89H9laAchk/ozQE0I0y0Eo3tyotEv7J6MAeO9Zb4YGldIKrqBfDosAFXVNTh9IJnj9xhneiyQeRT9RU3E8624fecGMVSdqWDshZpzMxvZ4HQpvz8eUethk4uLwj8kweva0Qn9rrihAfjBf6WTZtsS+3S/LM8egtMvTOkTuddrRMAPnwzoAep9xUnOfLZ+jZGoWFz0dkBcj9eT07YoNr3aXgD8SFLhbxMxbXzuisIYcnMpaerAnahHJVqPQmeyPjFEabfMDfH8MeAItMdNG8X/BSju18m+4bJWhZn0/XS1Az4H6ms5TAkkvYnvKiA/pvpKs9/DMsofzCgKIc5yknzUW4EQr6PVT4I6JmeZVx/+cdFfbc4z9e298coTSBEMAacJESl4gtrGS4Ey0STxCLVWW0uHvDsnHZLyzmBLF6JzJoE7/pSruNiIJl7cJ14qHx62Z2uMNRVZZfKzSeVSmUCILNCNKOxcMElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw6E6Wtd0VgBYKtQWdelTQBfDxgjuMwg2CtknLFIDfFkNmNCxsFfivsN9nEtdJsdmfqwJpxIHemTrn9DzdeqeMCA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqGvKiP////8AAAAAWimzy7Kk7sP/0whznOj6Rr7pWJBBZDNcUESrjz0sjRO4LL7WZ2oJ1v+VhmFIZgy7C4xNQMqEVo2xRC7KbWSKBLtQIcsTfDcToSDEBso0PVmtLkXqNzunxfB0e6o6DsMAGdlA0a7RwSf6WN8EVxQm0qa4xU8c/IXN5gpKDKqHu4YSxkbOvOorZn+SVxpoCw5ZECDsnkhnuK1JSjMoso3bdDW1TeJp5deA8ZS7QqyqaEmzUHoLjdg+nyv+tl93hzsyvgadrFPEV3dTvasZlK4TrS3ohxuiR8gYQqFbupLfXhDeGldXp9Mw0Ux7m4GIODdNQ1aUIJqaJ3uDtiQiA/6VcGNuD/LdcxLJQzDT814l4dg7IilSeZrGAuKKcyK6udxJu6paBqpo3jrzqBgrpstJKD4AZuKeRmnavOK4u8OU/2JSzd7DU6S4nZDbEesqXLeY4QBGcF+qYTXZ5ffCYsStQN4EFyOw8K6rZvLccLwnXF6MAOPFaH3IucSaTDWtxP52Z87RuuExDUpXAGH1IS3tXAM1sFNe9mA47ewKoqzm2r1iPFaa+qN7vJWGxIEFArnH/LPb2pgVLb/noKwCKdpQaHIAK0PnRaEsTT8fycf7uhc1HwYM/Y9abklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwvACwYvyTYybCJ09KQU8ho9TuSo8pC7ukTpMEe0kR7jJ31Y5f5/ZXPQGZTspSbmf1pKxCNoRKuZYU+5FYjRBJAQ==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 5, - "previousBlockHash": "E1FFC56EF7379685F604BB37420C3DD869910B104626BF9A7C1209191BB00914", + "previousBlockHash": "7280A40386E4D7C16785BC189255CC9E8859327A23DC43ECF409764F8AA46905", "noteCommitment": { "type": "Buffer", - "data": "base64:Rl/qTNsmffTDM8xpowk4TrLUJZWuO5IbDmNSUZGdqQE=" + "data": "base64:BsFeIMmiO7zoIEuE6Y1nwieLuWTE9vm/DQohawBgsmU=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:8avLun4wu2gt5sH/sgvgO4xVJL5T7HIBijNtve2ayUE=" + "data": "base64:sDpXjFoAacXG2Y2g6eundqHYgVF5U1hU6THZ/pHDN1c=" }, - "target": "9215318468490585719941901725100359354586783285202200847935471173932168", + "target": "9201866281654531936596795386791503876274441021197252859723586932895305", "randomness": "0", - "timestamp": 1708551306627, + "timestamp": 1712340062638, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 7, "work": "0" @@ -2802,25 +2802,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAu7g3OKozTCDvCPHUombLzmGf1LlPjBs+iRS5azZn2MiVFl+s4g+mU4AiUTXiqz4NSzUFu54By/GTLi7Qcb76RGoEOX7eSWiXP0UOG3cXDsyHwy15O3EWPCYGu6TxpozcExmCOwonShncI+4Jk+HvU8rn64bF+gK9JAYQo/MbwlMFUedN9U0bCx3NKgT2MzM2UpxLFjYuZRkFSiH4ZyobNDqJ/8SfMqoIjN3OW6moc76rppytNDmEH05ZSj4qMOdqDP2guQ0XdZw7MGgoPK9hzzeN7RwJqbOVGfnktArgtWUQQrI+VLnRnaibmqDPma0ECzjP35z2yHOeoeov3H0FgrtFblVs681Ix55YS5ZqS65zJsr46uVWSo43uqElmN5J07AfF8ebpA87dysN1A12BbspdjXvVIMZjMmk94KebbbNS3IRu2l3OKcadHr4ItC0qjHvy4ERzTncod7vaO0AHU6HwLrUTRys1a6KeFRWBPSEvAa+YTSq5ofR7d9nL69QpXDEuv4HsUnAftYKI46NabijyTV0KlMR+obLSDvUqJKwMkWHAgibd9pch6DmgRWRsXpJjXMELvIIaiIoB1xrhKMKyMab1Ga/3ZCDXU0hmV7T8v1Or6fmaklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCbIgjvB5mDa6myAav+XDpXJc3XkmvpGwaLOzebfh4w1xlZmYAmf7vm2F0+OT8oQUNDXF+F/Vkh0cBkkA110BQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAARY1a/+Xg5b7505H/OaRWoMslBHIOd9dSloCkOEhskZSJYJ4tUzzuLdHl7Ues9XJw563FyL/0c3i/PfWfN0Oyuc3W//HP54dCjDs5paQ19v6vwM6ebvpR2T2V3vxmYx9hpUy59q3qZzXfSS43uTmYKfUDYjntCU5zHSYRRLLH+9ERVWVj2NmI/gqNxxEA+7968QNJFDdoXvg44Yb31zvgLInZ+AMNz1Dx5JQ1M0iyxKWWXMX1U3zN4j+OwHbKBSLCRGOoliNfoUD2Whf6UScdy2EkoNrQ5f4n0o11eglv1oUl4V66Y6zmkuhN5ro9Ly2Uh4Sno++0kRfHzw+wnfvBFelYuskskbFLZJVFIr0UtlbTS2pdzVWwuSXG02Dn6N1itKEHqCqOlc9WM9pEWGxcTChKMPBdIFBFDNUNpINQXVw9ssCx5h664oASFawJdlaWFGxohCAWVni53EVasFrhVVTW9LxfjYPuV95IJQL/8SQkeJkkjT9u3fNTX4VQ9Iy4CRC0ivVY1R+jmWIIEyTVVYETNknmk1FlYTeMaYy6x0csT+iddcI+1BkLvPMPlC2MmNKg6NsFLgttWagWN5W73s/z6hDIC+r5U5MF5xgJtFjQScE3gDC8XElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwteaIiBGtfwPn7U1MQVzz+xysIxK9vubKpDXtoNXfXIeVrnaqxWRq9/5TCvoTXzLlYA39ZWDFFnbTxxGtDgOtAA==" } ] }, { "header": { "sequence": 6, - "previousBlockHash": "AC21BA833AC274993CBFC46A75BB6CD648DC046D31F4A05A66840D9756DC67D9", + "previousBlockHash": "B1AB5B8E01E0391778649A16DD2AED528FD04A4ADB312A3E383BA040539A7253", "noteCommitment": { "type": "Buffer", - "data": "base64:ig6AdYshbxKAt5/1+x54JDD6cV7cXsjOBGaTu6XCoyY=" + "data": "base64:28x7d027i8V3/OpqwXkm395krpieSC4FRBPgoxY5QjA=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:SL0r+rSK0RWBxxr3PtVrBtECUhzB08zn+tY9xR32pis=" + "data": "base64:ZoJavk8p3hnUSfpayWAtSKcFAdL3Lj+i68vXMQIyxbA=" }, - "target": "9192876164555484181184357150068308836106335393454238025973442364581439", + "target": "9174987784651351638043000274530578397566067964335270621952759689537226", "randomness": "0", - "timestamp": 1708551312465, + "timestamp": 1712340064096, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 10, "work": "0" @@ -2828,29 +2828,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuGvKiP////8AAAAA87D3Xyq0NCxHDv8OAegs0CxqzEnhWCiUQqdjjVEQ8yKPnnGgC9abTRNCloucdXmhjIwt1MZOKojsmPMDijH6wwFmLVEvGF9VJSQRsHl8agiF6IoBmhXzIedCxooJchiXbSqLxK3vNhfUYh9uKYk4KuR3PiZ4OCBXraG4wuGS2QMPFwp6vAFaKy/YRfppgOXISrvFa7Seh7wELoXTL8CDqwmDlG4vz23xQaUZIelm2zKH8w/4Fg75+Eot6xNcMcgMR14Q2fVaDVVt92Ps32XVtkXbLlWiFFVhLgIY8Y5KJrqWEA5ncMsFQCmMG+78sqibRgWgjs+hi72IfHHSMGsdPX7CGjrb7FEHkrAg095vL15wIwOQAR01d1AZERejICIVCwBvUvYMrCldclEPyQ5zhvRE2hzo7ICY8MtBmtCMIYtzB6aVMh9owV0Wbh3UVV8iYwGNxSpf0bofsjOZQtNO4xe9GL8b99WHKSor1CWQvRBRO8AQhZw/45sPSTJBt0Z28xX7z8Sb1ukba/6V6B8NT9K0+QGA9kMf3f6JFfpwFk1jZ89X2oF5ntKjbZMSuqArh7cPRivirjoh533kqqtth92JGRRCMwO6NQLexu42ls4TzCbDePjwB0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQLnYYVzQzVHE+afHqRFgta600RiagPVJmU7fk8U/2s2a0jvuwn8hy2m9KoWmo3eUwBx3D3+p4oiinCKFG8guCA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuGvKiP////8AAAAAefsYylEwBvaUrmssWszcYg7fVzs2yLuHymMjQxeM1uSoIbtU0BleF8l9eRjFjBecU3iNYm06VprPa0MsR+ZDqbBy3XbJKf9VX/rUsFe6l9eXDHxX0Kxk6KEwnHBEPjm/sc8/rE68wgXLnhoblCDNtQyVZwBz0XI/mGc6UqRPn9kMCI6liWkF1k+PhgTdNmg2xmMqbnW34/ziB4YqNDBzQ8egtyx9PLdQ5fiouYJ/Q9yVbB5bK/xcmA94b0MoPj0QGvc0tGaFX10ERbERvt0xVoyKW3lLhRjIgUBHkrubM4WwWcsT0zpEexhT5rJsrg0tNTfCocH55BC7zBx4UQ3twuAU/zfs/ll4I92Z/2jjBvtXo+Yt5J1k5Z0hZiOJdP5EBdKRN/Jkqn5hbNKRsr6FzlofC0uHrTydrh9N1+DtMQEWQ7pGNmIWBLngzB4HqD+TPVwGfYpa1mxSCeIFTYxfR/5k184QUUVMOsTbAyRwgrzUW74sveVU7qmUDjJ6T3T6qEzSs93s7TedoIid9LJXjtcgyrrAbD643cn0EYm50nYInoeux6O2N5QwSI0+m28mlqNdDZQ15nga8nq9AoaZz5rOS/gQFnCexazpwPYxVV18JQeKdxpjMUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwKrP0DGOLAtDbZ15vQR/+te0zWIqM/uQk8TFTyozb2UmhBrGyPyV/7YqhKhhPr96SdFnW5FM1IeB64QJe5KWUAw==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 6, - "previousBlockHash": "AC21BA833AC274993CBFC46A75BB6CD648DC046D31F4A05A66840D9756DC67D9", + "previousBlockHash": "B1AB5B8E01E0391778649A16DD2AED528FD04A4ADB312A3E383BA040539A7253", "noteCommitment": { "type": "Buffer", - "data": "base64:ZbFpbylbADxKlNe52q3BnkLfpdbUO9YjW4VP9rP3Sx8=" + "data": "base64:1X8Tym82VGk7phKWguzzd+OHwGS1YcTGxHoMMPEBgkA=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:PGoiLpCEk35y6w0MxqL7o5u3kD4MLnfIPhepWD8Y0kc=" + "data": "base64:OEGDy0mAU3H3uAjrBIqNI++pXdD8aoo0ZVMAeu5CLN8=" }, - "target": "9192876164555484181184357150068308836106335393454238025973442364581439", + "target": "9174987784651351638043000274530578397566067964335270621952759689537226", "randomness": "0", - "timestamp": 1708551313612, + "timestamp": 1712340064396, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 8, "work": "0" @@ -2858,25 +2858,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAahXBvGTwM1o8V2K1lig+0J4tQHJNUlwXmJbylwvLR92XvQvuTrLhDl36jH118jl23XapW0RU0/+JQLhwawq/KbbMRfSL2S6g72GuwvJR3IWkVNKx0MdHnBKBaBVSU0g5rTSb9v60M8U5eHS00df1m2nikOVL+6yVLSFtkkG5xaAFsBIEttbYODZmmfpE+g0cNx0CgSk14ssETcHLz8jLim/FJdcyni26andA8rxYMjmxl6mIi0ebWiECcSmY2CGJSsaehUORU0HPDJrXtm6wL01tBQbkmpRH6WJ+BCCbGVqbZati/meJxL2IVZgJwCofMNyhH6TcunolJBOy6+tip5ie43Svn+sMxcOvxjENGDw7NVzJgZcS8FTzrIo4yqpTuQXSimuxxO/G5aoi2x6PiwBNrpPaz5F/uT80L1Bb+DRFCmJCFBlmCVrJ1vdVca32Nv09EXDhdkj0ezAt8sDeZNhZ/igoAx17mGwTACQC0snXKRMbHOKQNP1WkVfOygJjoq8UVF7KFBzrjN4XPIJrtevLeD4JF0MM+anY5P1s2QiCmYxUt9RN/x5HT24KTWHFYOsjw/7GGOuZk/QPfNpJYjm7HKIIWCnKg4Vn0kIipesCrOer7DovCklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw1EqlP7LL0ZN/KT3wg2hahnr6jfRSSkpDajb2C723AHCCLfOUIWLnGjYtku1n80zb//cCHjltHiuCQmT72pc7Ag==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAKtpKyQGq7g54W39b5MP3kxgcq39++9mpRsX+VyhFdlGHFnpAUp2tAD2p7G3qRtQ0GOCYFOF61dGQd5mY7qz2Aq6JOg7hhCjP8srztgfD1Muroe15MUEuLAUFcZS57gLte+ruR7gPVM7VKQlS/GI3Sste2rCr7sPfGqlnh2aRIBoKnZK2hE2XRYWSavKODdG56xTBeWx3T8SQix2e3MJM5iRyTkA31JqYHF0wfsRcHlaYz0BOMRnfbwF5rzR1+IT8HGbroDUD7Zb1uqZwr/npxKyylreIS5v2lrEaQle8X2Upoq+yLcw2Wu8ZPyO0qzyuJNtYJSeA891C2LVqE3/T66JsZ3xNUq7UuzgDnvjYYEUKv3FdHI/6nej2zEvFz84c7eHBiICA8SCico3gcA5P6g4Knv3JsQc3ipEBXMo7wfHVP55r7/Ot6iOw2L76PEQzt6Q60QV+3RuJdkFF1INn5Km7fHojeeMVu5fOWfSIAeSSCNPahJUFCbWpKODBT2QNMz4V90XnXlZJo3ZZ/C2b3fjJB7N5uCON+gjwuXRa2NdS9aFLRE4TIXmqpS8FLfFiaQikcYt7w/YMbiX3D2CjwPQMC/sqmEeQFc3FBTsByExw0j+oZLZubUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw3iELrdv0XtJaPE1El5o/vIX4u8wDmfqGu6NDnXlEySwILkG+O6vvi4ZPdyrvhJK+rqUZhlZ0wBc+pDg4duMFAA==" } ] }, { "header": { "sequence": 7, - "previousBlockHash": "F3474DD4FB8A7B2C896EE2016EC472D3C2BEDC262BC63543A6138B5B1CC1660E", + "previousBlockHash": "E2051F999F52193BEA486A4D51A27FAC805B97E84C48388F96BD2162FB578FC5", "noteCommitment": { "type": "Buffer", - "data": "base64:uL6NjltALxR0+zaIoyMkEPOW6T+Usmy7NTD+KP+eeGo=" + "data": "base64:5/O+RVezoXFCkg6fevjPI/8rrU09nfomYjGy06IBLQs=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:qm9pGODbNwDtMIQA0NwmqOX5DemG6nKEWQyyk/B44QM=" + "data": "base64:00TZqdM4VEDMh+jGMhj947WF1YPnbVJY35XbxV1qqmQ=" }, - "target": "9166023964482491573376421207471683351073201374652436250179698324427628", + "target": "9148187795366513087508709149025146424715856256637674150531751753357577", "randomness": "0", - "timestamp": 1708551317923, + "timestamp": 1712340065996, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 11, "work": "0" @@ -2884,29 +2884,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwWvKiP////8AAAAAlAkjfD2Rw1oA9lxjog3hWBcg8mzxglJ+6/8ZNPxwLQaNg+pq739HD8kYYUsk6jREQl+pBig1evqe+WghOT7vuqk48Jpd9Ba+5fyA7lkyHVmP0MR90DP8XinxBasq0F7ugWZn7sdbs81suA9qMy4SvJqgEpzQtMRabi/iu7EDlHkRNSIiQwSEsp6AwqmXxMCysvKdwnrEuzULMx9/soAY8h65D737zwo0Zu+Vj2SFeGGj30uU/CNkoowdrutCZh1Q/hpF2nWufTosM5xMirLBVJ70qxWBHgra4pv9cXcnWqCQ1ZBCw3QgPsyw1n584mljCmBhbOwCk3KBUwNoMBIqu2Y8wcbqo4e9Jl6wH9MZNFL6EzSpxtc2kU9qXXQu2XsZ82+Wkna4BaqoSffH0pb4n+IeCxQwBQMpWHTmDO3dhDjV3tn7UBxx2827bYa3f9+TYkmY4NbAMIUYn+85FrTe6kKXSCLDGFYo7mTqu5jHfZVStdkuYvJer6y5IV/WeD7F7iAj8gXgAfcsOQl6W+0JGUmFNjYr9XE1kPaPJLKQicUj2T4M+21KZSpBQIDOVy4lTUORXDpopVj6eYdfEh0jASJMFX2NOX9j5B3MY7Q0AT/2nf4G3izReklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwxszzH5Apqn68DAMAi2G43Z7drh+dHaMqe5CikuG086ZjzQlEeWFZhEPuWIiDiuF9LPZSvsHUgK+AHL93trBsAA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwWvKiP////8AAAAA+vgqyhKQX54dJwCgpAtGKMqyzMepOUYNME439e2TKyuXVSEwCdMhr7QaFt3cxw/IipcoGCSkNLnsRGA2U1gOJup+uo1qfMDfXmJk56bBUcW0VfEW2FRyNJsfV+0iMktv6TTsZs4VyKfvHxEPgPEVccIw5SQsbduJkbUkExbW2DwQ0n2rAYtJ3cm0zfQOFRqX4IA8nBMB4xl2UWhngshOfzKofHQmFxuhjyjRQvXTWcagC369s1OHweb3Smcy8z4yR13h0Lz/YiJSnX76vM2WZWb54C4cAeIBjeZEN6t/GvBtXd5IXIeOfwa694e2Lxauw7CEHGwsNPLi143NuD3GT8F3HsoTWy7A/3Y2lyrfMC9e9K60DtowVFft47/SGekEBrqtFCT5e6d8T++kbG9Ws1y407/3fWhMgk46/TYtTaxIunqZJQEdtjMOXxDVG4V2toy34ufH0+nj/lw2dovYd5nVL7jyGQLS8FACMPPwy1oVH6138nUJbL8lhksEq1YvNT8zX0FLxT3kdSlb5HGBx98S2y20Y6MimlAiBJs+G2pBA76NePgsD3zLQ9Hf369HKJpZ9uiU40VKjO3mjegJXuNGndaC+pNvZdEIZkg33J//7g4a7Oobnklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwuGdyU0XfEn3sVq34N+m66ns8BR/xGyWBEbO+3hGakunOwTKJk2x5qEn4lNkTjGh10I6QDVtl9rGvegijgwfyBw==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 7, - "previousBlockHash": "F3474DD4FB8A7B2C896EE2016EC472D3C2BEDC262BC63543A6138B5B1CC1660E", + "previousBlockHash": "E2051F999F52193BEA486A4D51A27FAC805B97E84C48388F96BD2162FB578FC5", "noteCommitment": { "type": "Buffer", - "data": "base64:vxqCZWcJrZkXcPhWubITFfIzey2OBrJPJ6woLn1sdzg=" + "data": "base64:TrT/sEKkDwZiWrOrxHtQSwhEXXdrCvI3ciK8NSpbhCM=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:MS7mDdnfJGuZTFGN+SoLWBuZrVMIkCEFssAn47fGj3g=" + "data": "base64:o846PLlKNMJdulxjk9T/ZLHIdNnqnXSFdBpabTvi3+A=" }, - "target": "9170488432144535775550899292658982453967812765561636864988008173848314", + "target": "9148187795366513087508709149025146424715856256637674150531751753357577", "randomness": "0", - "timestamp": 1708551319257, + "timestamp": 1712340066291, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 9, "work": "0" @@ -2914,25 +2914,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA0bZClUzRLIyZEd/f41Nxh7BnungR+w9yLsvHa9AwIJOSYI2jYHRRe9ffQHb6UxRB8sCqHHFFx+NAQ8u/ZsQXpVRI1XDZj/p+EGMdqV/NUzGBjy/z8221QVkwzHlRCFXa16BNd+7bnLIjo/8wnFwjr9OULVosKFkUHYh4SYIL760TsTUKeCrgAWQBvLRThd8ymVoerYz+cG/QfqCz6DHiZGpjHxaS463bSgGuoT8a42CCvPVBXAsVfNzGhrHJZ0U+TS9N25uwTK7+usTBVA7mICTkJNBWlaKYRwE2EC6u2PJGZb/sAr7ro/J1zKmGVcwQxNnyCE4fd/PBzh8EZPVvnic8CzVyTZusMLIpWSLbuTkUG03Ke/Bau4bg9RyrQaYXWbQQK6+TGX7RlWZJ+0XN6PTOsELs8b26rBDVG7D/zzOpP257x6k7rOC8FkbxX1NuIUaqhVRvhavNGVdNAwmwO9I1NxV0xgR0s5H2parOjlWsTfnHUfKEjkhYudBNK6mIRLQpMSPqLOEqU64dB2SzLN433LsMYQVQdejLaD+VQxKCtdqooMCAjcWRweE9peDeXGufjapWcTRLLOwV8LLtEOjMbumOUzMdjE7M+K3wv7YCVzxTvRAOCElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwGjk7diFoR18iRrz76FniV02dL30nmBmZOP6VrXpPrMiuNmbdWNn2eZMUWf+aOQmXlS6JqsWTNuRsv5lbJ0mXBQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAcFDdwM1ojNN9jxr5ZH8n3+z2t7O+hBPKBaOB95ix8BiQWv5VPB51j071BZU071Rsq6DSDvRRtcSldOYrhcdloSs78P5RDUUT4GxBQkPUpOiBHd7wSMXegQ25d0qPvgjj4HWo/HpR4GblfuS28qORyUfJTtNhj4Yd6OC8jm23XWYE1pAWJ2+FT2xm2IPx4bCle9I0hVzjlES1v1TmY6Il0HkBQylx7EFyrI4O23csu6eKtUNJetBYP6s7rhtUJko5BReloQDCcEL1+mK8fZ2jR9caRrMouowHZc1h8RcQW+96O02u6Cr2oTj57OR5muXz1ewXEHQZkX5mDQ0xBRZpcsN1l78jsMFBvTlNMSZ3cYhGpy8t7GI+zoY2L8FbNvdlUYrhp791vCsyaQzIdO9rw99ZPNXIST/uwQvRZHtfsOHBATkUNi1bCaaWIEwVuHMR0q6QMR3ziRL2QPiKe19eJAKn41g5NfykLSCOmoPB1N+bsgxsafoz5Fo8peQ5Rz092nMGMcOEFoqjoLHA1fF63im47fN3qmPaksy07lmG6kaNnF/GrcN/ltA1vg/x4PLXzWK2mZZFzfbfrrAgjImFE5mOLabZZZF1BgikSvcENxDV0mHKyhCZ60lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw7y2B1EWErBI+Yh8fhqiI0bLySBivAHQzFfYUkRC7rDZArir5WVkJZRWLLpL43yYmcG469Qa6tTdCcVdD5wpBAA==" } ] }, { "header": { "sequence": 8, - "previousBlockHash": "46E7E207BEE6F6DBE57D567A325CDADD8E5C02FB1CFE29E99533197F86D72895", + "previousBlockHash": "AA73B4E871591B729F4493058E6D42407149D819E216728DB3505B225FBD7A10", "noteCommitment": { "type": "Buffer", - "data": "base64:yq1h8Prn0chPJ0kyonJrxl2U2nZ1UArxYx9qXJW7nig=" + "data": "base64:uivRK2gy7ZeomKSJnUFfrHDU/6AXWSYMd8Pe2cMoRUY=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:xkQvNSXQVIe3Ez/RoC4MNa7LcDYFtsDf5C673XFaxPo=" + "data": "base64:9PZzzwRDHllPpjwoH8VEno3uw8f1rDfSWoO5ePybpBE=" }, - "target": "9148155271496074076960439031531919632411014457177551045292196794206809", + "target": "9121466311864876128923245652724724632104869735746188813030060672759072", "randomness": "0", - "timestamp": 1708551326307, + "timestamp": 1712340067808, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 12, "work": "0" @@ -2940,29 +2940,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6WvKiP////8AAAAATlkg0mcONrRemSfdlqeirDeYa4eA55b2cBcYazINkESJhD4c++caQTeXqoslYZdqS5r+Ko3El/jQZmxeDxyJHVOW860oIcxIHVVzltbENUmlBUtGakhPB/7TFF4EhsE253hULqsjOU6YSo0qesk14pbqn/X0YeKFsG1QmP4QBe8WLMQ3nQ8flSxVMDHzhIwmgP7FYLd1aRhN/sB1h83amUg2AYcBcDxz/o6WX22SMSGwUxFXZYmBFF99cIfi2wschTfrO+qDvjuOPsuSugG8lJJrwbWlfMXug3Wqio/jy/xMW+x4MdC+X3FmOKOvp4iNmlHQkbIeE3+EAlETUKCbDsSyWG2alO10jiaRztXhUNScZa0ao/Tv/zZI8bMtV6VS7Zw2KPdUb+PeUYI7FaTaxdYttGNTBO/0WmgdIyc+/l3XsHhNdSv/GZwSbm18y109qsK4yeOL6bJU7dW4ebtVwvN2H8AT9wG7P36A6vne4gRo35wcnNdpQNY25yxkeDUnkKKBqWvCVWgUX4w3OZj33w9viDIIbA1pNRcpHE8Loip2W9TClR8jJpyoHjy1+8/KSVZpZdXOfmFMNldal9rQ05pDHk5iNaMFLnQSWSincnZ5iHUIHcyy50lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwFHj8gJVZ/SPrU3QY967+8vUurzgSyzhGXGd6+LBgqNSfkLV2toIiyRTMqEYVRyyp2thI3TKd5qZ26kJgH6sqDQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6WvKiP////8AAAAAUzYJizNYfSE3q1dXrfvRVZRozOijQ6zC5THC4BztTzSzcjgjW9+X0BkDUAsKv4P9GRzZ2BNFLXFuGTWrWezoTbju2mEV7IecYcaL+xE27vGs6NrvsldS2tkE7gv/FGvcRtOUr0Use2sNaeTW0fx+1QRKTm7jZpTAx8JtsOAnTCUBU+J05BntydBeJXK+DzeteL3JZERk+cDz2F4RQAr1SBbjo6zSqpxl6jga8lAg2HmilX4VbFf8+hiJGhY4sjPr8fZbnQ0u7ox91OrzmyB1aYrboHeAcaE0vHf1LfcLs1FsMukR2abwSdHf3keU2QI/NrhggGFHGx+9Rc+wEglILnuIlwdktJuG0PrYi1L880lrh4WmOLMFTgKg/unjrgQaQ2+U89dQVsdPNLpEz0PlE3s7eZD9vgSE2CZ7lEufDaFmnjWo9uAUYaxxfRSKqioKGtn04AWVm41AvJUbW0yDrmPFH04ZqQuT8qVg4aQmFi/7pv/xp38dmQpeQq1TY6Q5EO2gLx4k3PCgIR4cbjUEwtACdUzdKs/FqowcQMrwy4gEPXnyPx1N5KjMHnpToaGWw9DctCKHxKd7q/6VH0jW1eMzAsE/4ckpNTq38aMI72EboxuDeGSHEUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOtSdxRVR2uhVAm9byl9pi9ZIuyojE9oUjqsOXeUvfTlv7dLsxO97WDhoSw101d1Dbr4ykNdECyV7soAtFnZ0DA==" }, { "type": "Buffer", - "data": "base64:AQEAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAO+fvoPOPHi1WMBpx6RNczbfrtFAPOvnxg5RKqrVHQ2qQc2nvb/tKRfxUQoW8YkNgikWni+t8a63O3xfYOxxXgUFROe0M/GslZbtn86l5z8Suls42WeP5IcEPOLnqhtjY7am2lqUmto5PctcjY9sCzo2r/vmyU3yf/bI1HR2DZKsY899LCSBTCsICv3zJFn47U6M5KDmIL8ViTb+1Wb9tOwwsX2sqyQzjgSKvIlObcbWlPhcItg1ilecx5kqopugMIcFu6o4r3RY7Gl+pIN7lmD15sDvxLXEFJG9Na11Eerf803SHU2PhdLl/G95FT4URBUUNudJR9DlUnc7HJKOdnr8agmVnCa2ZF3D4VrmyExXyM3stjgayTyesKC59bHc4CQAAACl48dEKJQYX/EZwdg3jSvby5QomSsdBMew7suNMGPCpT1mky+0yvR4jI19vx/3O/0Ujj6lo8xiBJaq3bBnwBnJcIRjbUSbn0zREuwmLVDt4pAi6zTq1Nb0oQYDjyg8GBKur1zE1Dm+0GdpNkLcrXYdtmqAz5+p2OJ+nREZMROAUUspSmgPirEp9u8DdTH7Jm6e4LyyRsHzRXtpTidfTqxRGRxTjyF+dvDywjyTHR6BkOrorSk6tKf4mIDdbDMO56xJiFXix5h0MK1SHk/3+Ox3MJRw4pe46dcEMYyUF92ROWnyZ1OePqraBJXXZzpO0UqSP07r9GrYnnlOOq4VpLDYnu98vwvQ+E+1Q4JfNyiN1hNHDPU/banJhnrXiAr6axQs3vx9Qael4gwDOJDTl6FGLS4rLRDM3ykToHTz1NonPIzC1jFtM2p4B/msE/AeLrhYOo9VUoKrdi5UV92OLfw9yYJA0y4VuCcnf39rkXIP3FgfMejFW4Q/7CxWk4NS+a/FexKvSvh7ai/j5l+ZgA+uNN096F7ptRQeW/5LCXb4KdZcZ18IJLIDkzHq4JGF1NmtazsJIzLeJl3pKF8B1bvdujmqGsobpYfZp+L1xFYeWibQPux+n8emnw+UJldsKadaxrPgpfVg/rcSy73OGGZg7a6ApTPYYx/kaG4kPYR7wkLgdrm3qsSZ1fNGdKAijVx//wLXpTYXMVGhmoNKBEyvlKSVkGdi9CFuiUcV4qNzu5ShOHATd6kZWVA9q9IaP/qtaCCFmInZ3QbYbQrWot/nON9OEQak04ohvHpX9BHPUgkuNjWg/baaINEBhej/rbjuy3e8umA65PaRKbu2LgigawuF8zenRMdAxbfS0pSjNSAtY2glxNni1QVUUcUMlCocox30d8wViidHohIWEAUdYRa1HPcw1FLNxlds47ki6D3gIsm8lX6cA4OXVRjaFYtH2zBHyXNX6wMDoRlRv52p13HUhdfcwQDiWEffzRhEnPQTCMofaifaWMsPVzW+ZqpfP9TVEg4e2EVr7aaoLj6nSrh6rXdHztew2b+W3UDwdyPnhhrnz7qys5/YlwQDXj8f23i4hOd4OeRSIIl6NgvyrHfcyS1qeKeIw0mRH+h72+4c7Vaz86U7y8u2ZKwDMnt87coDWY0od/SnNnA+6rq9vt6p4O3uqTT4/y5L1/Rf6y1bRx/gSCeUEuHLeC5DBT+w76UqLkrLOQSG951ld4nMMZmLJaCcxhj9GCc0S6kvrgmV/8xmJLRBJPnnm7cbqA4K0osrKvanwtNabzVgMBp0c3fi/g3Y0BhFhHffS40hS0Jqso1g2XT/HPF0z4xO4JAsSxDbLoxoEIfq+4ZAgjqwVQF9mxol3W6C7YGis03LnW/9HrcdhMv12ogckMnLgjM6BCShmfIj1OjHhmPC1c05yseeJ8v3cKZFbgQBnNvvwMzIeLdAlM0GowbJ3tJlPObzkqpIyJoyQs/Bn/ZBsFgHmj1bZ5tssFa2sprYLmrPUSCakUEd0W50pi4NYf82ML6aQvIOyHZVhmxzS6CYBQl0OuXhktWhQwatwkaeyRqIASbHL6gd5u/ebW/DXBU2jAA==" + "data": "base64:AQEAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAvEfcIwACv+BJpTpBxm5xjeyYmR4+Y5sPZyEBXxrqz4iTJEIxzRKSVikgC3xFLVI/gLpNsVrlaTvU/dYU3yQ5bKuhT+rcjCauFGgN4fZkoyin0PcLfgHGF368Z81eW3QspeOr/rS2jzqWQRwRVVdyq5KqMXm64yGA8p2lKO8foAIPTLPILXQrHCYHydYOkJexyEGNdkj65oYV1mBoLsXe4otLXw6twg2LIcYMdLO4bK6Jmy3/ObIX+zD3SHLmwjTRB7rvLEGRNvRbiA/sXgxN3afbAriWZp3zaZjNsu/vSzSd3A/fEXqi71XvDX2RoXxceeq6D9zmAxv1wlSxINJpTE60/7BCpA8GYlqzq8R7UEsIRF13awryN3IivDUqW4QjCQAAAHI3s8BGgRIkcKjY+HbtHViBmsPHwWMIcV8nwJPv/G8YQ9yBrNIlh4hkNRJwWHH/V4XArkKF25SzPaH9mrN3HlJGRLPFownRTp45549HtxZ7DO7G9TiPNrDuMCT2FmHfBLXmAC49ha654xCfryhm5VpS7ZPRHzY75Wm0Aqel10yfkx2cDUkjffGI3IFMOGb1BLcZGRmxEmswfiHetVJ5VNzB/fqUZGia4jwgkI3NDX0t/v64b8iYwthuLmJ9h3cJpBkGacNr7s5puLlAzr59JKQfO6ONexHJUG053tDFPUb6jgZas7g/7VYH2VMUxjG0tbi6aQ872q5g2kcOpwrkPOEVq+ontFdLNyfoBp9mFc+TaQvLiWzWGHRNbLze3r/e5fpWe0+5oRJO00lNWB18l7gtZ/OzMsAX2P250hFDGGWTvSLew3QqJ5rju2uaud6MjgnOvBmkO/Ls2m7kQi/Wbm67R50RzqhG7KEqM+/K+PXqMi5HSvUg+PPNsm9OcPgMLN368+Eo0XbRAHnik9RGVgThFKqm05LY4aLps2xdZ3w2lDJEQYLIjYUbGcVW+4UkOUT6LwkuzHSagUzgK3nKQoTf6KBHqlQSs29sdKmgpCw09lnqxuZrnKBUplVeDfptjPZ6AZWlQBgnOFoTKle3oVcmDdxjJWMsrvZV0HJUbVJIN9d6duvlK7m3ZNm4gjjWDH6FWx6ynz6s5L2WNLQwthxtu7Qs5EbQjENk4MXFOX2N1wDpvCEAW7e+6elB9Qy9FcV5eNiNfRwMsAIiOLmfDnzyqDLzvOaT+rv+FOudSM9RVJjqTGOAxb+uc4NkGMDClnxi2cLo8bpNggFXa9+DLV/FX79iBvXnIYkJRumQh62rJxAni0A3+J+2MVNJEk6uB88G5LqUyd9EVZrDLwse3nwg9PhYWFAa9baI7yk1N/fACx6+D/LJWDgH/9x/VjwS6/FjZ59rXbatpeWmoJ1Sp/xr/4NUJUr5YzvBpbMZeZmf2+eKfjPr6a+sB9QIdSA3X/sdsIfayof/z3IEKQVUw/I46agBxOtfiWEEsreBJrW0I7YSbqjalrYJRsdxHVsXSw5MTogbymcTl3HyZwu60qm2OlUnU4rGnfAtchpmvicK3caplP96tCMaRiice7dYiVkI5+cVoXEGnFyZatDBmmVs8u6qtYt7zY55Dct6IyFnxL20HS3AFs6Bzau1Xv+X4N7xA6vSGI7kgME2vt6Eze95OC+BZj122DqAknKjRN0uopkwhBdt0WF4ofExk5B6ltA3CUhzsllscbF9IKImb82VYPTGullqE3NnCU2ZekbARPiQurkR5XH7O6m8RB62SzjTg6itgMfriGNo6Lu26JAqfIeKUXM3mkhXF8Sbif+Wfes+mJQ4oRWuiLIAWxWSUzbDakRNsFXDs6uUANnsdLPnEdNYw8WWCQue671I5UucOuu8+0VFgfe9kVfGFOg1uPnOccog7jFBkRovRYAXjclbWC3NtLkMivvBmi6qZH9rwellDY/FxaZLwNen+jlpM14e0lNAkTKoPMg8/S2pN6IJqJvJQ1//nivQIC9GxdEp+xbiwZ6PcSzLLDzKMi9mCQ==" } ] }, { "header": { "sequence": 8, - "previousBlockHash": "46E7E207BEE6F6DBE57D567A325CDADD8E5C02FB1CFE29E99533197F86D72895", + "previousBlockHash": "AA73B4E871591B729F4493058E6D42407149D819E216728DB3505B225FBD7A10", "noteCommitment": { "type": "Buffer", - "data": "base64:oLvoNOSI+4HepOVa/ihNI9JcscJWlBLK2SSb43GNvSc=" + "data": "base64:cN1N2ZJ5qx5i5uZ/bNjUpqZNptUNjI3MHFO7f1c6aTU=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:kJx08uaInwaGj+m7JDYvDbwoYXRWyknpCBAPgzX8yiI=" + "data": "base64:vUuJQw9tVR+qW2GToQB29uADuQRAW8k8WIhRSX/r3dM=" }, - "target": "9148155271496074076960439031531919632411014457177551045292196794206809", + "target": "9121466311864876128923245652724724632104869735746188813030060672759072", "randomness": "0", - "timestamp": 1708551327601, + "timestamp": 1712340068115, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 10, "work": "0" @@ -2970,25 +2970,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAagfnlI64wrdbttAk8rLt48zVxheZrsoWGwt22ymfwFGraSEcekuUz0XX6zO7AkOFhpNel8yg0b1HZBlW34QaZvw3AwSb7R7AWmafqyB0YjOx/YhJ0jOO2cX7dNIGR6V8FHxmrD22fdMHVdfgExLyshupdoy7osxSbzlLPFVkcUgNntPEa3XsGNwUqq7NgkWu6tnH3JTx2mUtdLgB+Y2XtNT+6cjZuM/9yUyCPmnnZv2RQU11yFuHfDCury4bZItxV+vzcDNc0Fbbscu3xR4YuLLSKqcM0H0h0fHKaC//VfKco9hb/HtXcBATHMOhCrIzu4kmPFk6azrHJYKww1SX1BSVMXyPaQVxy+LMO9o21m4fy6sQ5cxhhjqG8QjEZ08MNYzhERTUHJWFZnsEvre/LV3upHFH+YldcK1Xg7e3JUyGIrGJaFfaz+vhA31+ZTij2cA2zU9W1j/Ev5YVkOcBYrZ2pvrJn2XeA1RxB2kAVH+6L1Hdteb3rRfJI3HYIHa/mAc9BTFLrVsdTUt52ZbviZqemSxbRAphUorLCd7gEmhz7EpLXxmxZ5wrr4fQ12sJ7XWqDIhpCBPMoYO4ytOdmgLvcDNTMllM5bbz6E6YhSL1eJEsSxu64Ulyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwpCCWVAnYAUeXK8MOHlaXZ0Q6M8cEakx96FwAGsWgsVxox3v2Bf4Lo90iwCIRu7kthoOs2k4YHAsAHJOvY/xSAw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAhwR3bN2Tvdt93Cj6fPiLY32daBGNIARwbAun2U1qGw+l07A4QFkJPTPznMO6tMFnFh/g22RHjKZIC/ESZMFiu5WXC0zUJvpIhcSuB9UDJMiPShg8054jdKr39dsapv7NkqHQHV42oJ4XpYg9ncHbnXVfmLcEPpJ5JD6zHsznx4gGKj7mshVT0JsYKb/Q83ACd/CwEVKiMDpULZiKfCT01EXvWJSxPy9aDervKuQ8VJyjYZ1Hr9SsIeGpMw7Z+G6OsBiJ9WGjMfoc4AyYcM79m/bJ6m1AxzEO/MKDwrqkj8xMchDs+0tgCRuD0YhpX0t86KgHiXiSzljwI2TsaMkEGPIpRzl9pHrf7mNDUCbylKtkEsQAkqxcGhf1cLHjK6UYGXp3l/frX6rNcwjAUZpmllAG0vVsAkXT9+vvrYDb0CctD7nptd473pUx3Ff/WYl1VyZpf05TZqVY+1+55VXq5mRcSePbCPLSpd4KP4mgQGgjGvykSfg1mhJ2mLN73jRz83YKhMySgdIAw228DiTktyrCll/i1aBHPiLnSKGRJjLmthXKRiSooy4Fyfwr24Wiur3yfZmMmb14A/As7P0L5ImRknUFe4bLERIIVVfEvcu9KtgyNpZ2Qklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwI3vjq6xjlv5YBtsstmJf+t0SZWRNtcUCal9QOoci2mu8cbPZ1PI7qPq1OXGAdHdeAHkHdRlPsnnaO6OCiyivDA==" } ] }, { "header": { "sequence": 9, - "previousBlockHash": "0A616F69ABBF586EAE159E89A4F084BA1FFDEAD6A57FCD4097D5EC83404B812C", + "previousBlockHash": "01F589B25A7D9A174F3D8DA63766F19EF2B0404BE1E1B832CB2500CCEABEFC4E", "noteCommitment": { "type": "Buffer", - "data": "base64:8NZdlH3TdhG/Oy5RekA1uj4WEnqazkxPNJxIGlPikyU=" + "data": "base64:rXQjH4veTnf07LUFisG5dOZ8fM8W9V8VlLmzhFIl32M=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:sF55flBKPpKUIOIA0IAjOHBsY6nNSmXcNg6Lstd2Ffw=" + "data": "base64:Qbhm7EraObSJAYR/wNGtquZIgaXDtrL0vpYNfpqp6SI=" }, - "target": "9125876680910695101486680472693433361241139761602935299927893083437973", + "target": "9094823328238119324660168503613036415495463326164889575918026009508991", "randomness": "0", - "timestamp": 1708551334080, + "timestamp": 1712340069664, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 13, "work": "0" @@ -2996,29 +2996,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAomvKiP////8AAAAAJLZzU+I4Qk/jgx24H0M9sC+jgYYIKRWsc6G2C6BgXyuC9MdbJMai78Uceblt0G1KZZAj2+6qlg7U9SbBu9WJOl6zqfs/gTg/54/irXkhPCu52C6+ZT9TUGCv1twBN+u2FZmUzDwjlFbneYgPUgiWC8JGYD3aNGKFzGlkPGrv5CkKbpAtqdOhxj5ksInEkE9QvUOmQ21yatxGrGqC1DepdlQ8yYVZvC1R8ISxgn372Y6YyyvQEruC76urI9rqX50AWLfdfCj5A9o3VIw71WuPqXG6/VvAPch7uVKyJsrIyTzNLgSWNPsnau3xtVhVN7vagWFq+/srgDwm0At/2Mp/BMb71TyxHKboYS3JBv/uYL3wjFmmLaKdxbbSBjGnkCJCyrW6BmDvWmncE0dIr4EfvmPglAHQecR7ipb2mButyA2dOx2UK/bpqlqNiCgARDPBadcas2ZxOAyrHYihDMWJLnSCoMQfoCX5LQJfdOlf0LTIjqZEZFbmUKuHGSQCF1JpXF2pCFqxQwid4zCWDDHdIQHvK1NyKrFzSyOFa6GVc/nSBVdL7PeCXQB7/7BPWVrzu4SDP45Bf19wNSgLdKNJ98afzFnFXnM2eAYTmipn2lltRz3wg6jMcElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw+wX2zAUy0sPkPuIiGdlj7zhbMTP2SymZdnb6evNN2pvLJs2NH0lmPyetFJp0/aOo97P4gb5hQxjg5luaGE4mBQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAomvKiP////8AAAAAHT6lr4ZMedRtJSGL7f0hCEu7z6auuR0cve73gg/k82ej596MsBTds4DLV5DrIDSBerIRtFUAdFyYcV7k9IW2qkI7i7AQmLCsIZAB+ODhcfmNGdmlirbj9bZ4u7KR7DPEcryUAS3glf8m4C2XXeb4ZhOKQ6TbinTOiHQd6h8cNycK/MNiTxqwpzPZr1gtCwn4fAtSrUWUE899kbNVjBaR2QBt2R+QY9/qFMLZRa5lxkW1oN9l7n9k4XvJTG2L8z+R03AP0D1gXpGOYbpIOxY4uyq/LLPcFSVsPjsGbUCsVx1IQ43nFxAZBs+3f8OKA9d8/ORz4LIuzqhTDYFDi6q48pAjqusaAnmMg10TBYu0blUq5XLjbDd5pv/alADEK4Fjl8dOxFBINLnYrA74nIbvsZmzrpk+SpbCtgS7cGZkpM9FwGInWjer2qPs+X9BTookEOqgySrpwPGvLTRnj5REQlh31xTR1zIOWYXuSrk4ivgS79HjQekvlL17FNDtBG5GUMVJgnxOZQoJj9uJfi7414BpeDJ6ZLektZInZSNjZLLl18iaba4Ti/vo4dhnRnlV4dHYY05knJ2YTujirpb6dSb9fAEVNld1IZKmvNfiXTBh0NDh2YUUm0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYbyjshToOkqqtzZTqMj51KtZhxGngzi0JloupPoLxC4IPInKhS6zYmoLV6OepqOrTZLCBViP//LhP0QVfh1fDg==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 9, - "previousBlockHash": "0A616F69ABBF586EAE159E89A4F084BA1FFDEAD6A57FCD4097D5EC83404B812C", + "previousBlockHash": "01F589B25A7D9A174F3D8DA63766F19EF2B0404BE1E1B832CB2500CCEABEFC4E", "noteCommitment": { "type": "Buffer", - "data": "base64:PwESYxzYcEkXAzbC4XcTGu1GAOFydcWbux5UcO50sD0=" + "data": "base64:tvW5hjf/DGzhI3nKbuhy+28PIF15NnxgrDAqkWRUZ10=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:qQMr3yYKi2STgfk+yJHKdLyxRXNrC7xOUlhge/yUpy4=" + "data": "base64:aiTlOvQrYKqdNSng9q+upoyU/78GrK/r2v2NEVCMLHc=" }, - "target": "9125876680910695101486680472693433361241139761602935299927893083437973", + "target": "9094823328238119324660168503613036415495463326164889575918026009508991", "randomness": "0", - "timestamp": 1708551335507, + "timestamp": 1712340070039, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 11, "work": "0" @@ -3026,25 +3026,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA9FMPLWip0v1UEebI+J1Cdg9WJo+YML9gEYnE2lKw9nKxbIFYlBFs176a8dufc/2CzztRw/iw5mbW72J/91/+g/d1QeXqWCHli30PahbWk8KgqfFPjqptvF+4ACN8vQ7wE+lDtaenZoP5HOyX92MJGbnJ+dpBn8WycNeZDuTbUtkYqT8Frc0xBcyVaVDgCn6jmpekxALrSHY3dUXM3JaYDUGSEHH8IE8HaymHJZOCywCJnxmyEErgWhtaCCat0P03pe9k9f+ckOGIfDLlgb7GP2m6o/O7hQGgkYU0GAnvxSZC87+Y42PO1+rTvRGewvizHRnR9jdDx2bokEfqTnlBiu1ny0/xhCxrkra7kkb919gKIh8vKLF/8AvLxXcRqjVvUW5rbRwuhw+m4O0K6JanwRz1XXw0ccfiTBkWbPL8yIMGG45GpGSwyf3h+PU724bL3mnbZpQcUddx1RJfKKD1flBsNsTLXxmtEg9dDsk7BRsZYwstwv0bozosMNROAtisi5ApUkhb/ULSyjjEVKJwyMdmRTa+MWyCIKc4yI6M4XDAG68oJOrSbRUo1+YCaC+I2V6EWis3cUZieSctlpuSHnL6b2sL7al6WzPIW0dHQPMniB9BUpzZ7klyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwzW68OkSdVKtfykh5SqtlDa/XS++VSMVBOA9KX+WPo7tGuKBryt3xVwxg42cWNPtPRmG1o7HSXh38AdJtOljVAw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAFofSOYvG0OyN455hIcbkhzXr1Ynsyt06UxN79Tu7Kum3yS4bcayANnYmk8RdAc3EWoeifqi5WBP2n+927LYZ/WXlTIDSebsCAQOVg5EXP0GyLNI/HMIkiNEmq71BtDjmKEacuKEc4GaldU0YMJiZlKDDPsP/uEItZufutNV1RCcDZBRE7rojQOKjmCEdaL2QvNrlyDeVVpyyzaUg4LuUz8TtUE6o1/d2auIB17rBaL2KGztSJN7GQJ06hve9pZgACbs+rl/uxvnMXzB3UnXkTiHvzhXpZS4qZ5FsM9RTGCFP1H8kN8FDdGcwyu7GRVlhwt5gJ3INbMmNi0xntdN6VkD8tbRVu8bQX8VOrBbrA4DKoIBL4bWP/RvB6ddQGuQoKA685nvjFtY/fc24snBkcZkIlTkMTEtBRZzSk0KV0R8sr4NvPxrCihvdzT1ZyufSOda40nWux2Kvqm2waec5W0zuFopX7ICSLPI/n3lzVkWR7eKqbPoayE6EiJ2REMbKduq7s4DGa3G09AXwNZ/PJEbqKKDzMhPiFJ9WDIrWamen+hskXZXza2L/0Znd3HLfuQXnxfpYuDmXShWwNukC9SQK3dxl642B16029ZivRnCDm1hOs6claElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDujetpf2tuvs6rnhFL9qX1A2t2D7X8X8HIMZF/4CpBeIbWRUcwqKlWtnCJXURfTg+gLPIVmxWR8H67i89SQBQ==" } ] }, { "header": { "sequence": 10, - "previousBlockHash": "95B5BC56021E56C6BE8AF27668D5CFBA24057B59C3FEA9DC4F8722BB466CCD5A", + "previousBlockHash": "8F585AC4AF264D0AFCA41AE6497DD5B0ED2B62AEDF0844E132CA05085EC4FFFC", "noteCommitment": { "type": "Buffer", - "data": "base64:qyejhCKnMyMosM9koM/zGIcmI8AFJHzfWGSWUUlIZGI=" + "data": "base64:HbP3BarK8sE5X8EkS6bWQuqmUdJFqYf/E83MlMGGygM=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:5Pe5QrIa8YO3PUuyjxSp/1s0NIUO/Bf0CsLhraSOwEI=" + "data": "base64:qG/bBFrH8uyJfESRJzC/wccNJJidegA5+15jUMg+q6Q=" }, - "target": "9103652656774837878151390800491214756572294439602852675812158216876174", + "target": "9068258834662928698220540790897658244352076778286486653826470223999191", "randomness": "0", - "timestamp": 1708551341674, + "timestamp": 1712340071545, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 14, "work": "0" @@ -3052,29 +3052,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzmvKiP////8AAAAAY6NfD1rZaB6HV3uPcn5RR4b0V8LGT9ffa3RvLVHrtNCzI3/G8GdPWiGrV1Yo5S/C774SFRNSvf2Sc6Jo8OxXJuaVCQ64+mEuNvB22x/jh5SMBeVB8afF6UoIs6zU7qNmHHbJcTjp3TsiA2MM/j9qxMhGNwkBoqMx9voq4nvX6P0ALQSTQ33+z7GWCkzr2xs5KMLxgs4x/vbR8etOooc8KJswh2L1h04B15mOft0vRwyuVs/dbBjTffbMCtfkBsCoZfPaF22JTXj4/3b/LcBJ+YAItCZH0zAyBG5odc2cHZgSuF/hes5cFe3GnSbG2yXY/V2/bDbB/Vbpe9IgNVD4yI8XMGP/E57Nh8yoPI9/dAXAHdSTWmY/n7oyaRDUF2BCDg5HeUxcCdWnuZyi+f3r5UfHNfQdNK1DoQ1j9/rdufFysDVjSVNZ2aEX60BNM1xwnUabZgDbOAMnwFv9m4uLevxnGrxGxon4iurf8Y+u42qbNOrHrx3gwysMthaTx3Sr8dVh1fToX7J5RZd4fSoS0INBkKUiKLKDmCgMA+jdyxixLquRyhE06swCY7MgqnFtD6cMXUMbr1R2Ayr9OvkdSoBET/ZgIkc4aiWBy//5U6E20n8MP4GC90lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwScAd9qP9oTGTD0JtseiucO64O9d//YqsLAihgHQ6f56qiahErlfTzd1tQuL/2kB9aho6FoO9BBJdcksFkz1HBw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzmvKiP////8AAAAAAzTOqayAHh59C0VFcbqutk2jIKnXQQPu7NycTL9/5oCQn4ZtdOu+K4Z57jONI8rOeVQ//H83bb/1yK5iSJhiTuPzPcNOuDjvZ4OBhIeR85GWjq3rRS+MQStL7NhYxYQ+zvitSO8WePhQQQeXCzPQm3wysrjE6Vps5ihTcVYEUqwY3rneh+81BPc+IKWZtbvrkIZaImPGIoAxSPDHQdEzRTU2/UQYmNmXSVlfOXurjNyioJx/1eSaRR5OlaM/9TJiM2DBs47na0M9ntpVs1YKyPImA75fj95SnqSc7dZaqdTtObyqTtulsML+W5n9h0/cvf+jP8QNi2OLbuqr3KIclaf+q7GhizX+dB0W5qEkI7dttHecX776lQh0sHzpv5xwtfDpztnbH976Myx9DS8Dt2yC9sTQ0KydThX1ZmHSO0n0VB/Ehyazy24DiM38IIZKPCpveE9kFAu0QNMhmkfrFTB1WPMObMpZ3YeAY0j95zA5xJr5WnQs9yivwvC0K/k4/YIDeZ8UC6yLIqAu+Pf1qWdA8f77Kvk8kb0t22olwvEio7zqjqUVkqMqrqzy0Fjykg+Ly8LdNjaxf1wfTY1kcIA0Da0cBzXFDXW2OaPo8u72OWMhLM9CP0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwWZrqCo5D0XaI4ota65eud4P6H0tlV792l0zbnYpJnSUZa7FF1pykbMzjBX3ixF2BPGnYrP3Cy6HDs3KaLV0lCQ==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 10, - "previousBlockHash": "95B5BC56021E56C6BE8AF27668D5CFBA24057B59C3FEA9DC4F8722BB466CCD5A", + "previousBlockHash": "8F585AC4AF264D0AFCA41AE6497DD5B0ED2B62AEDF0844E132CA05085EC4FFFC", "noteCommitment": { "type": "Buffer", - "data": "base64:i3ROo0+v3C3qj/ereDXN4stYqkL/tfUmpQXAnn4wSRI=" + "data": "base64:XTzTDPRt/dK93g72ggc2SzXtd+Q+J1jDycmyFHV65jE=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:NmxedUffB2Tk/UMTtxPid4/020CauMQAevIyeRiGwfE=" + "data": "base64:k8CXYo41PATAda0ZGWpU1ZHtRIL4+1HUme6jytQEbmc=" }, - "target": "9103652656774837878151390800491214756572294439602852675812158216876174", + "target": "9068258834662928698220540790897658244352076778286486653826470223999191", "randomness": "0", - "timestamp": 1708551343600, + "timestamp": 1712340071833, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 12, "work": "0" @@ -3082,25 +3082,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA7GNy1pyNENgMZCbf9ZDynggpLb9OONSipGapQmaJINOD1d93i2c8Dy+3pVDFknSX39E9a+iRos/+274tpfph0xfE1LkHsFVrp4prfrIzETCgBS9mqFJrPR/r5PbEgxc/oV+FRid7PjdfrbRWSAPoK5P0Jkb4/IEG3Mer1YlRZvgBkUdOuVJLubI93wXE/gI1dciZCzBMuZoXTX+vS9Q+pyWyGtr3NDD+v9RIDHwaCQ2LF3SSwywsMDy0+v36kk04UxwMsVrXIXCyaML7uA39xmNr1tHEM3lDIBA+Rtcqvbv7BIJB1Zn97XOYxBojlKxNKQXBLeqM8YVyaobyRKjtIlV9uRhZwaYNulyUEEv5HVLwTmIeiSfQJ6GccRVtuKlXFmjr0M47oUX/SrdbHTpAQjSaMmY2Ek6fnT4dLvFmPyKsmd/UI5RjIk/Lq3RJbP62uanig95BlaKvqmeiMGwAL/kykEkQs7sKF2ZlTMUCPsi8JPzrDjj5d5nPkfYnpkrmDR/vGxFm9IW+fDYJyJRrEREoFMAhQfAp0ouExOnv1hhnKq42mzlh7VLpsjvBc6Pct75P0jwuBG2cXaB4xYggcEu1iUaan5bwRqhbfDCMHHUEC9OceWWPaElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwSYOdxyMJKR8dnbfDNkyhqj4TSsZb1cDgBRQkG9uFHkudB3o1x84aINT8TReCwW0zpHHBh5bm33ZWnUV9vC1rDQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAx/mH40iuSP/X34nI3lLneLKIwAtkyzAZcy8+Dw4RcqOzdLylRcLSgw2ZmGJGY7QrBIZL/5I2tnflQ1/yVS1RcX1B/tOJWTnavjj5Ox8aeLO0JN+PmseNgYqVgXlfyZ6SLQpRt9ajv+nGWmcRu3hXcnMCnLC7nwTM5iCuUcaeHe8QINyAamnLmoeekOmK+6f+6nNpZtevDfbrMcBiUS817AfvsJTm5eaL5W4ew0EPOUewhoABITVJnIhUf/WInd6ETQh8waMmzKrvM2oWuSZox0Umq0WcJv5zWRWy0HYEUp/2o4G5V7tvfbvm4drMRsXLpC3d6+1bVigZrYxZaCQqvFpW08k7GHA0HHusEEoyympIfQTbvNB1qNI8lFrwRhhtlkR4G3IsCebQjFc9wpaKRlAkufIsDar2wDnmAh2v2B9ZZi0Sgj+VKkDNzswyWMJBbfiMD0DtfN62FeuNGSJIUnaA90IKDrLgQtkXY2v+hdimLOLop2yctrOY9Nqy6VpxCZsnf/lT6zgki/TIXeOqywbaCoIB7xCH0Y7wa2iUE13PowiPQcflKjHnGnJs3t+pqYyKWkIScPA2lXNls50Qtuw5IABzvRCSCNGU63VnVUQbK5mKtN58OUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwcLxCZOWLmeVnmJoXbEl59K6jWb5xWa3v3XImo5S+sEDa9cXTxvsMKMkqqUkX71WHMFoBSFsXKLnab6/UCX8UDQ==" } ] }, { "header": { "sequence": 11, - "previousBlockHash": "3DE2D2D4687B9BBA7E81A653D3EF83F5D6F2256B3ED8516E2DD5F35706D839F9", + "previousBlockHash": "539DB8A5B3E6AEA0D90A0683A139D87ACA9DE7C619A18D0488569060148E07AA", "noteCommitment": { "type": "Buffer", - "data": "base64:XG+95nnZ5jwq8ZqWVWwgbSbyBCO9TyNRnh3rkejQSxc=" + "data": "base64:GjbaWds0y1mtFHVCsTprxY63id4i9JFoswoqu86v+Es=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:+UKFqe/d4J5Cl4bgEl6warTvLmSNpe9vY1i8ntWPhqQ=" + "data": "base64:YXIaLJ3p1ejClapwEEnBuJBeyU2/yKQh4+v2cUThZ8k=" }, - "target": "9081483193584191447573673272395495641552583628342795612626914869624216", + "target": "9041772817458669358631436925553476123971485443441062513642264290171806", "randomness": "0", - "timestamp": 1708551349795, + "timestamp": 1712340073336, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 15, "work": "0" @@ -3108,29 +3108,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqWvKiP////8AAAAAPxB8K7OBtp7jIDvyT6Ew1LLsm7i/DXcVfYmys1ziBy2MBzqq7L85SQg2nVCywbKNKJ3r4mwyvTkEOAzv9JmNFjVMRBUAWfV/XCLdv0Y2MhaVp9YGipXsQQ5LCxr71h3J8m1Q6uVlhmuBUHPIrR5RMjzCkFBNYzi/jzsc6x7Zg/URDKgf3dwrR7BQf5UIU6ojqT1ne5VwGZWTs2CZvkB/ubcLqrPJn5Tum2ZxNdNrp9WqDvWy/ZHDhcNPHW3Dq4xf48VdVKyPXQw24UtV358x17Cm+n3dsLwB0JNigajrKJ5u0Qc0vgGBzxXWAg4MeORmtC4sjAHbcAbdPVu8cdafEoQRISl3yeIEnz3y/OkmKj7n+nNHIIqsPcNzv5UDBj0TG97AFks/ABbBSsASAFWVklNPTft3jGDpHdiNF/6O0CXYiintIPFIhN4UIPVkZy6YPV70HPooLPkpaE8zHbz5tdFGtqrHCT0DoRzOcE2b4elz/d9Z5rkPZaG1oWuUZ709g0bi8ni7MkJ9XHaUhxNxhGccIP+KBWjtJCZOX8XyIC6t+kQ+7GJONz59shQHfo3Ful0YXBk8Fqk6zEHdx8tR37ZOpPQWjTt+1hD1IkeV76acDtmXq2YC7Ulyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwDKOt5K18nShhNk8KJMA9NNh6kg5BfK8kw2kQ/jgWk1MOCGLudYhKJKWfnO/xVbQB/vVkXaWFvixv4NockkUOBQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqWvKiP////8AAAAAdOxNyCnaBx5monY39rnoD3ooov4KqaPdQSd1lAAbL2ysQ23XvKp2OP1tJSTGXobbUK1OoccQ0JJZoBGQ3av+4eLEvY6iMX2rSjTLAT1vm5KxqdSk9mUBNzDxcEMjSAwet0cE/pT4VqQuVfDPJdUNT3siyI9Qpg0AM+VdtopkoYMPU+RM+PTy2x4L+dPWPZqijuGAoI1JusAgtwnFOcK38Tul23lUvZwqEhZC0h4vPNi1zzW8ApBO0mHOJN/ru9xeXQNijenzGTtFdv+zEnCY5D9m0r6/Nzpbp3cePu3pT3l8eJgIjy2Wqf5e33KGzYsZ6KtaMvM+udmFCp58cb0LDxoPB0jITfw72eCgB2UAymPNSxwrLqdxqxE213SrZPAyX1cqKt3H2cWhCd2TAmRauqPQP3jMRAq39F5rbLIeVOEyEH5U3HWg45x493kFcV5RIm8TACv4EJnX4uVARDAFmlmTdGRHDu/KXfzAJ3L+aWd3S8gzrTmlW6CumFclXV6Sfl9sWo9LV0kCMuYJXCx+RJM/twtA5c/pCSAuZxrdIj9PdQ4udOsjln6WYRgZOIW6UZkjTK8iBXXwq2JUu5Fjhb6t3R/xNg+qhxPLwNKsgjhF6dnx/u8Vpklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNfDmqwIagtkBvnTXzdfxyZV/DpKAUNhMg3txQ5fQ8UKGLgWNhDE7Sui/8fzYVpJ5nZgH4WGIZJ7OHsW5+fguAg==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 11, - "previousBlockHash": "3DE2D2D4687B9BBA7E81A653D3EF83F5D6F2256B3ED8516E2DD5F35706D839F9", + "previousBlockHash": "539DB8A5B3E6AEA0D90A0683A139D87ACA9DE7C619A18D0488569060148E07AA", "noteCommitment": { "type": "Buffer", - "data": "base64:UDpzyljO8QKFG98IqZ+qbXe9N5lVxyOjTZKeZEraVC4=" + "data": "base64:Q4Nl+3UanFJf8N6VJS3YwJfBqnfKWFKzvjpdRUF0AW4=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:d7d6t3um4OQSwElr0dnyRPT5LkGe0WypBPFNaOFFh04=" + "data": "base64:SI1p7712CH3D7B/uJbG1LQswx1FpA7uVy74Y/E7a+zw=" }, - "target": "9081483193584191447573673272395495641552583628342795612626914869624216", + "target": "9041772817458669358631436925553476123971485443441062513642264290171806", "randomness": "0", - "timestamp": 1708551351176, + "timestamp": 1712340073628, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 13, "work": "0" @@ -3138,25 +3138,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAdT5f9eLsoCtSlwABsU+Az+qcWRFo97bQzwJrjat0ylGERFzsQnsKJI8BfJ5JMdGtHBX+zChKx83i9qkKVjAFuA9LjycNreM+r3HOM+pOd/6uk1lFMZJz3AqYpjkITgVgjrW/RYqQqqvgjLLVk+oWORPiXv1cftXk02sN2/tTUkYF5r3RiE1MiVM8IwmbhWKQM0tYsW06yAtd4NgvpCbq5wp9JmnGoqKmx6iXm7A8jxepCUgeeuG7PNiZK5q6cx+HWwYf0vvK5nyGpmpOxVFODbDM736vm6+8RkbC8ZPfJbzp9dsN3Ojpctijd4C548+idJSHQSzX+D2BdvSicNqvwO5tHXdvB4gW/en1ZBBg9aSwOsmt97k01JreWiAHaR9LMHaahIgUNaqVrgEtfgdlowwP2tbN+JgkaRsjWSFBRDedFIiTMcNGHUvtWNHlbHPvPNxOZCTYTwKJXrUfqPdHbpuzjjCQ+jVfXby3mH9e2adAOn6Ui6m1Xw3M61pUYjd1BE5FMe/+EIkdRZ0HSRY2gRSok720yzIAH2+CPhQKESwIrk0ev7VbuqROVo/E/HG0AnPgS7SOfQGR9Wy4hhx1fZe8yhI0Bl/vt8howJC9EoAkfS8LxS0Vh0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwtnEuxpThTeVLd55RgILrJtmtnltku5kX1H7oo/vUwXPBBfl0WJikDBbKZebypWFRIJPZqj66VhSV9tVTRSd9Bw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAvUtczxyMto3lNnLc9ScL8yUeIa2nn6rsk3PCHOinZl+tJi4WAYuljLA+DtCbZZ974LaTPTWt84t5t6ynaXn5MdE6ynP7qX7/3jGTI4Jdd/Co5EQLgG2bFgEXBH5U8bed+o4ndl+tSGE4SKr7T8Qnv7QoQ9cCvHYV+uwrLscZkcYU3ylngZFgFTHz4okD/8YiSPJx5B8kI5QGIAsFPgbTTs1bwU8xT8L5WPSz+D+0q9yRkAzhPYgaXXkH1OxYFay89S+91b1TCr6xff6wO0z0WkI63I96KIx0R5ckWt5pE2SzvEE6r49Wyp4dXqIpFv6pvElcpQjvsg0o81Y2eOH7AaqDBHSD3U197wKDKZ4uXzHvkOeHiJ0d5K3NJilj9uICIjyGEIFY8lLAhQvPxqzJU/fYJTUvF3pV7vujbuCPE6cFr3kA5XCne5CqpJGPvqhMFAOhqTsKTxZESNweBf43lm4XNSm4SieUDS5Bckq2YzalmH9t7CnSnHDm3Dkt6KDyHmpXmb4XbuKHLQl3QGcOOP2Dcaa7lJFdV9Lw3P4QMf3olZi6hFErGaqrXJDcOlsUFgoMEJUypD34xkVXOsq0vS9QiDjSfEtASALiMcty/8l8wrDKIggwlUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXcaAekVgG5PRAAtRKjlNUAW16QbXkX/Xezl4QlN9dFMbwp+SXX3VLg8BSy9t1krUcDT8OznX7V4csQKm8CksCQ==" } ] }, { "header": { "sequence": 12, - "previousBlockHash": "BA36DCDE26A5EE565650CC3BE7F9AB14EACC03204377A7E5828366423414201D", + "previousBlockHash": "A5B0DFB58C716E6C953D03AB7FD860C252224CBC8F7E43E5CD888DBFA2360E15", "noteCommitment": { "type": "Buffer", - "data": "base64:T5Aj+AdGst1UeDv4fWED1fvug9I8k++WXJzEZHsKojE=" + "data": "base64:kgGNnzbNrsoji1zTrp2fRPtUyRXJ12N9lei1bDvfgQ4=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:jUAnVVqCD4QKAjOnT3APdwLcxFfZud22sRKIesSfpv0=" + "data": "base64:qll+cGPFftZV6WhFxGqw3G9n6F22LfgryG6pIz4sKqs=" }, - "target": "9059368283966928341491962782753000561615148851415080343971066250797590", + "target": "9015361047625083866771187507615534750461425295595622380322060663659456", "randomness": "0", - "timestamp": 1708551356941, + "timestamp": 1712340075081, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 16, "work": "0" @@ -3164,29 +3164,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAr2vKiP////8AAAAAZ9a2egc2ENfFVMZ5OUFLlYxy+hKy950A7swhiH07vRGQO7/xE2mrwIBvkTJPeR3fkAf9W2BZ6TU4/FDy/a8KcFH7P2McOxHfRzc+vPEx5U6UWZTsNQI0SkbO1/ncNH33VACPPA9ATTEJ6vOq5JWCO9LdsY+ncLBOF2evPkZYyzAHTbvpAitpNqwk1h3JqR75/rBhyI77DuThYx/YZ15kY2byFHYzCBFkhfXdWuIHRUKICF0Yb0VtXamJpBAepQRQs4E1mYEhX8o3aMR5HFBHOLHABKbEGQOZkA9wWOjAG7tSqmk4Fj86yHkFPDw1Pm6LUb8Zx8Utz5Sz6Rmr/KMYlkyLolNUdVMTgHA6/DT30mftPj8pImecKG1is5gyCupZLHV5CGz5BHakBeGaIxLnGoCQK0xQjhPREM/VY1r59z4184eq5iVVAYAmyudw/hVblg3AGs+1S/GY1j0kzvbIpG7kzaXUoSteaFujAjZvlqUCtJvk3/hEsSimTjrIYuMUt6q5+5zfKdrthmqea7qo/sNCxT9syeMop0tbN5qEnlaUzbOi0D7EEcbxVHSRR45FDYYCQcx9/3RnyBEcf8kTss82JvhuD+BgkCb00E+qWGe9SQ4WXb6mBklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwmHCO9qbhSTZo6dt5fBNKbN6jHV3JM6AySuwwNJcswOeyHUcYhQQQzRBPuZZ138N31LVcbVN2mEzWatM9508BBg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAr2vKiP////8AAAAAVeqYJIYKd1G+5KUhE0RKHYYTf4d2157kWovXllDhvY+luFS1FMIPV22l4hW2lQd9ZBG18FsCEs7Lqbw/F82C52IwvOiRmpcp8N6elUkVrJW47dnOVaYvTITupAIER0PKeV6VG9bKjFinSXyWK9tiRB+i/FL4jXUrFJKujspB5Y0Vp/nEeZtzFTXAbd+1cON6YIqkaFSEpo3KfckijBu1oUjMS2jL/phzh5sLQybW+xGYBk1cHMyG6JfACmpSTXrxlRJ+NryWnQqCmBrvxBFwFdIWZt6wPy3I+O1W4dhLjPuK0c1RfCoPg7UnRY1B9zcE9PuKgH3IOyZNYDDHcO0fZM1DYD9oqr54oJ4MXMAp1TXzhpWmX8uBMwtCC5itwowEzKm15LU+pgMK2tpEBp63cygAxQTyXoTHgeJZsg3CbLLm04DBn8M4eXmpkOcyOr2QiBryELsPc1XUu5E31eLJnc0w2we2uF72S5CL7Pu8HFfz4h0/BdleuYzKnzOgc8UgH/nD3A21+eUFzDKKj++6IlNsSD7pP/obF8y9fFT9psHPoUFYcVG5pVQAa32gd+oDTba4rQ1I2zUUWB3GW0QItrzSPBtXkBTBYLjF+6sL9tYcMGejPZ/ZS0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw3PKlD31UQ9vBHyNREejLhm46OJu3yq2fLUj7cyth2ZHpo4gG42t/hXPNaUwauSd0Tiprc9Fx48oMqFW2iMqBDA==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 12, - "previousBlockHash": "BA36DCDE26A5EE565650CC3BE7F9AB14EACC03204377A7E5828366423414201D", + "previousBlockHash": "A5B0DFB58C716E6C953D03AB7FD860C252224CBC8F7E43E5CD888DBFA2360E15", "noteCommitment": { "type": "Buffer", - "data": "base64:DP/pNpMUgAwzm6eR3REMjkyVlLEnTmOyOvThLt9jWDc=" + "data": "base64:W7BLUyLPPfwHFqrt0e8U4dxDv5YuKIW45gS3EK7vL1E=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:j1t9GQW5+Hx4Lb3EBRmteheg65G3nsTFcbGdmsg5JT0=" + "data": "base64:ad+JZ8mlcBNfMsEEX50dQCD6/avrtKOicUSmn87HRCg=" }, - "target": "9059368283966928341491962782753000561615148851415080343971066250797590", + "target": "9015361047625083866771187507615534750461425295595622380322060663659456", "randomness": "0", - "timestamp": 1708551358569, + "timestamp": 1712340075371, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 14, "work": "0" @@ -3194,25 +3194,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAADdRdihTX5Tot8K9nJ6Iin8VNNA7XKdzkiMm4OFundaizty1Rqogja5KBsfhgRai105ZLUP0GHJhvAm1h1RJbz9veuO8w3YAIjXmT0WWOy2GZBDZnG3LPuxD8gi0mdkrbStmRDLwu1C7bSIb3meNPk7xan7HEpQgFMY8DurQc2O0AFGC26xJXYBGFTUJmpjYSeSCrp7pYkhoe2LkVk7hQJ7nqeW4Sj7lwcjZafNLvKDiMPWIyFL85hTpV0erNqgjQ61pyRaBKy0lQ77rlb7FTeT6zj2iKm+sV3lFTkTCX/icIN4BnYU+1jJ4GLnxKClgryMVAegaB0Nc5kkFF7ZUFB8C0l6/HwpYHd2DqUdfSipr+flojXhkz5ZzH5OIw/C8cpqr7r5/hPECs+NjdTs5my3Itbehfuweb7iTDA9bCrON2TIxRD1ijZIBPRXbm0Ri+u0bvfDUSgQjmlqztOP45O+Ek5bHsP8DCFQEl0eg5/QOsPDl9KRfITz3X0MmFrXp0Ncof4CWrHgPSl/8hjgshZD+srsaU4i3LJO9LayOsEc17LWRmPBP/v1CvPDiYey3Pq5tl+2/SbrS5MMUfMGKfOXdW4+niiTcx2BmtpkW+rH4yX3gfz2D0bElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwT0bg46iDfWvQiB83Ztxfa+yYQ6Cu5kb+NsuSRm6laYvbeplLehseNel51GdjI6EMWrq7sVoyqzPJaYldJhGiCQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA17F8RctwJ9TxR5wdi5vKB91TKcqRXXJosKeWfvds9iqjnpSRLA1cS+0vUewtdydmsFtzNz/mcbWbC7UULz+GxPMSmHo74074HkblobnuJvuPb8kiPvXqkaknDRLIaFTmGtGLTFAEsYE//hu6mX9/GuEL4y1zKsyyrUZN8lxKV24FSnUx1N+zJTOF0GfV5pJYSuUBtxFudkIJVfORyvyipzt3oFL9TIj7Z8KABuFRjLaSQ+L6aaVdf93DtuPoIiqrKWyOhiALlfC1QI+MihSaeZqpSQX199McnDYMcUrDbGUApNOq7N4phB8Gn4As+V3xw8D7moldE9yMoIm65va8TugGRqsF+awVYpKdHdruD9ngPNHu2yMrPvc2cEw2gV8yB6mo1dJzaqax10JtTkYN87GDoGJpOQTiTb426cnw7XEvYPcrVTyyWbYKPCF4uRtEFeTgtz42Q+HUZEWoV0FyMgrKscHY6n41cUgaCG9OioJyt1paoTV1BQJU+Auncu1UNpqt/MCXzMN98odybRzMFFA3JM6+nNSSxMbIJ2AJ9znVOx7U0C1Q/0P9/kx3F6OdvSy+0ethdBy1BiFLXt3aUY9Zta+GyJT+zXPARBixzzCOAC5LTG+fTklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLQ8PrIrw2wSRu8fDcYHpf2GTqz8tZO4bQc6qPTSHldJz4X7GJk/b3LeXaiUUltAnlOxiVCUhFAaWaupXbejsCw==" } ] }, { "header": { "sequence": 13, - "previousBlockHash": "2FB7EAA6F33A2A52D1170C675C7D63C8E363CF7BBE90544EC32C1BF75E1E17E7", + "previousBlockHash": "12FDD8604DAD2BE10844DBC4A43184F4C52BEE689C5DA6583A0F3015BD05CF05", "noteCommitment": { "type": "Buffer", - "data": "base64:uD3o+IUnAwCBAOLBy94e7QhnjW/Pv/f4sxsNinw8ih8=" + "data": "base64:snq06pBheMuU2zRXlMQFDDDen3KBySsPmWMz2wzSSz0=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:Uh3SBDdsjZ1vjZOAD3ztTws+7bri03D90PosqcNO794=" + "data": "base64:HsEVWtNsXs5oQpDl/ThJLskWzOWxvKrzyLRPg8A86ew=" }, - "target": "9032908731925923170843319033528805507585469180943985043933717011768400", + "target": "8989027764587843972078000359639078132662736945816568766992021111212360", "randomness": "0", - "timestamp": 1708551363568, + "timestamp": 1712340076824, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 17, "work": "0" @@ -3220,29 +3220,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz2vKiP////8AAAAAeIE+t8PU4HqIaJDMmrM2CfxjvDkZ1gY2QQlZaHwoO6yvr8GrD7NHwHUy+Y6PhalwUzmwBXPTbkg5RNPq0RATrJt3tVh4IZaU50Sj/fOIBkOt8U5hqRgJANKjd96bDW5HIsXOO77tun540m8ACu8pTYWPDchjpnJEhPhggtR37r0Tkzk5CXMw3qLcvdLbLo0AnLJiEmOJnjkoNNgXt1udvXmxqrhGQSDHvIYHdvNeRmGxzWJ/noFwf7n8BLDJKNRsgJjQUkqiw6lB8FRwNnf12nkv8nMKi5AuYdZn+WaBaF3wfLG4KdqYXjpiAXkq39/alO4obFjRw+hZIZofTKa9UhmLJ+BuIoeEjqY45cryJ1CAUjG7KjceOessX6+6zdUwnGh2xi2mbvcza6d9cgALaBu3nxmjL5FQZXceVuKnaCRz2h1SFxKDGhUyW5skcwuMX+hb+SsTak2nYz0gy3LAjjrHGP3i92NYPLQhxLH9VRrT0tQ03jWYj+7AulOWnqD7zW3zAQmZEW+tN5E7UIAs3m42HppiMBSrb1d4pugu9Ace/OY5WQ2oiDv/a21SmmSJiX5qH3TTl5VZroCgg8jJ4tb3BFoD+lnrv32GEFzEf9P9cFkhserkBklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwKKo1koLTZOl/13z6QgeNhCba1KbX/LXltZsHHojl5r8VU2qgGpq/AT4xOIXeEFJDjiRelP+qwQ1Y4Dk1enxPBw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz2vKiP////8AAAAAsol/AU+YVhONSBxGzvqgWrI7hAvekCjk16wObsE4pSySebn+hOp9pIKRu8H1KlPB9QnEvulZbG6yjJ8agxLDuZd/NnZ9iK6fK/J52fxvmUq2+q992Jh5jfbaPWvYZNR2homdkpSVKaOP5A8hcjvQvcR0SY+fEWu/GqSuXwKcCBcJRlTWct0NnaezH+h3TI0q1J5I2o7zjlb6/jVNeH4suR+2jlVGnpoowVKMIZkGPau08giqaji3E89ohrtpyiOMGFhoEOw9g8/ZJTZhWbv1u/U0uiEsKX//GCfHLX0U3L/pbDcYvxCrjAamma/xMw2eNhSlNuoaC1OC00Pb4JE5gnvAl8MtKB8ud7pJn5hpCOGbE69Jmesp1AfXFTusGqpddDtaNu8l4oRHK0fDKGk7Gv2ffzc9K+uMOMwC/UAOucJklunx9rvtQhvzI57TwmSK6nZ3hBaYcXsnP59G9/9VNHicQkFvtOMx0Vwun12eUzhuzQdmBkxuRyoucKQIL20f3Fn1pciVRUSx0in1bIRVxJleCV+ExzlgFwQDR+wPVjtaV5xcbMmSDqhujtqyresv2zfypmKo9UAHW90pQfZ4ppu8fnxC257TrvBBmjzThGkIAo8yH69czElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw7eZlMohc2KCXIvlZDGafJuRji9uKwuIzM3VB+sO8mlsRw1M2FTKEB3K/XjGim4sKetDlWHe36sFYFKmm0i8ABQ==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 13, - "previousBlockHash": "2FB7EAA6F33A2A52D1170C675C7D63C8E363CF7BBE90544EC32C1BF75E1E17E7", + "previousBlockHash": "12FDD8604DAD2BE10844DBC4A43184F4C52BEE689C5DA6583A0F3015BD05CF05", "noteCommitment": { "type": "Buffer", - "data": "base64:/TfpCmdWBe0qIUmb8+os6X68thn9dRvOhxzPCN7E7yE=" + "data": "base64:dVPHM3A4hHd0HOydZMu/dNpPfK9lgmbrqkkMhI/Vt1I=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:OZo7uT7/93vB0b49mUjWkatWUWeFwLUtpSMV7fQrI2E=" + "data": "base64:Cu05bxvfuvfaIR/Ifngte3Br9A4iYbmJDmCB75/Cruk=" }, - "target": "9037307918706764623591169292024335890301594683829923418759750325979011", + "target": "8989027764587843972078000359639078132662736945816568766992021111212360", "randomness": "0", - "timestamp": 1708551364693, + "timestamp": 1712340077114, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 15, "work": "0" @@ -3250,25 +3250,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAALFS9QWIx4kXXnjUNpJley++vCu0IPuKcVSXML6njqgmC37lbqkY+2ck94mWOPIBH58rJR4w8HHf5YZqSwH4HLzFYd5jfu6lulggOozfq2rivw4AyvR7W/d8+VCG4Y+d4VleuE6cN1vFI/F6OvQ7eh5RnR8l7EA+wTAqgHHPFz/MR7QubgiUPBWewbSl5NMCoUKpBjmeYg0rZ/CBxde++XE5nbDwifgc5RK855vyd7NyVFqRlek3fjh82hh03v6ZnCvxsSQBfnIRYv1NHVxHgeKSsmp0G+brkpBZy8aGonmgGJfS2216A7j/vO1rigLHIUKqlFOlBp74QjB5E5kPsqwFEU/J8HYUy8665MCjHAzq9dU6aoMBRTrR8tYW7rIUpdKm3ZTe/TXjc1blVBKP1JNkrSiJ6orI7pqlN510s35fw6D6VQUFOd5pIpPpi9RXIOd5a9gpeDMxrNVHvF3fwDavEmAjNuIIITh11CeBpnK6yzrwgSeL8f8sbxe8bILa/mAAPnLMphpFmpDaRxBaaCgoJo85AndWcwRr7krk1xLAQNp2aad3rXqbWetRlQj/GLz7F4g4jS6pTleo7szE50+kYbGzl/LGVvSBI+gjJiRSUWQ39mDnNtUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw7S9lOrFLtvCr25MZCdzYFdevtI2HPK3JSfc5qa8jwVwYSYJzpig/YfYgMdgkzU22Fh3p/7Y6XXac2mreKpNACA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAGVFSJa3I+HsJt+fiZorghSuBno5+5gRYt3uYzC45W5ez95cChZ5QzON4rLWPhZnR0B6q8lLxymXKMEJmG0PO/p9sfujaqsihsjz3ffACxlCDSu3t2VLJQqWsIayxhiwJ/QVY5WLbnmTL3/5a8brgcy/aOls2yqTEAfyUXCKznucP6RerMj0V1qFmdC0tMaKQzUTlStNBd/k5/mS8PTHuYVtOgcwbRYDazwV8EKRIC5WYC8rfQs2VbaHbHx11Uz43Y36W6Trdnx+RQZEKC4dIdJr3aRbHXxWMN+pepYe1Cei35a768UT+s29tMNQ5xxHyMRmixlxIB5RXTbjR/2nBVlsm7GqCMzbOiXr0rvXUg7fQJhN6Fk08KVJwYjLAnDgFC08MJWu2vTxFTPlLgB7srQ6BtYqeDNJZWi7NWVNbcTDY0dEc81YZfZqcYET0dnTqf9sBatcTbP8FKbdPSCTsdUPiMDq0dku3UXsxOGKX2bhynbJqiEJTzFMIx5Ol0Gtq0afRY2gFrM5C2uwcoasSA7jocnbAg5bHHyHmUYZbve6tF/esEJBsPbaTLAlNw0xjBTxspAtaehUp4rYrjZNh5DPR+JwRMaYBT9+g2UK8p5FBu7O3aSmFZ0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwcZwTzx+seLolEPIt2or8h/Kd6bniFA+42UbbTILstcxhyH19Qnvwlbms7XC34+Y4AWKDLbgO7E8X/9GX+DmoDQ==" } ] }, { "header": { "sequence": 14, - "previousBlockHash": "E64BCE47CD027344D534479892C18A26AF2DA5A039D264289DE4C5C9FCF1AFEA", + "previousBlockHash": "E44B05A9D2361C10323FAE59ECAA1384A8A9DA039BA1951F0E62B5B4DA66C029", "noteCommitment": { "type": "Buffer", - "data": "base64:vbRp4H/Z4ejT/J1CqN2yCLneypTss3VdPGdklYKcJws=" + "data": "base64:WpToeV8tjkRBUXbykKG0iRkElwHtrCdw2hlEyrRTMFk=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:mYNE2EnX+AHfiOMULxu0FoOYPXbBIm0+b1ziYLQOAys=" + "data": "base64:STM3uIacy6//v16C8js9hDQtQgQBO5aeUiFwWCABx/U=" }, - "target": "9015298577215211001873720751021621288245714397601094370033029857852439", + "target": "8962772943001089649145466222874954571835029797113276293754562696551103", "randomness": "0", - "timestamp": 1708551370075, + "timestamp": 1712340078602, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 18, "work": "0" @@ -3276,29 +3276,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5WvKiP////8AAAAARL0k8Hs6qYUbUri4555OT7Hpue1w1V42T4Ckx7XYj7GtSTqNsFGD+QhdKoVyVZ/XHgOC41SVln4cUFgGPynrB3QglupJBHZGS76QAwyMxKiWxB/rFaSsoRm5x5vHxG1jYaIgnTMAmLYnptgYqP55Fcg3CWZqT8pNTBXrHtT1TwcWLCLwNvk+UmWHGicvD3Sz38erQW5AErtJeDuWNeEWiw+GEYaMUMa3T7qOFhY4YfiL/qfbH//wNu7UG8AggcjWOUmQraQ/mIle9KpNcTuCwWjsrDQ3deA1M2Ej4HLUhDaKdYJ3CDvjwmuSwi/qub+vQeEUqZXEDy35OFC3azB/hl3OhC/A2O+1VcJLxnT3nIrJFHUhMcdei7aSysH5wF1eMVJS6ELRp2hLfTuA6wnVDZaytt56tWP+Z6CrNro7LjY83Ea047dQBJbvNr/qRuZg1iCqKMGYXnKHAavW3pAQto4jyyq2/mqjUfakg4vb85uDX9kYg50j/XJjr43a46CRyEBb055aK4nEqb59xlBykNIf+qSf+/jylVhtqAchpOjdF042IYAAonMJ6XB5RwuBcoBVhAVeavAPPoHoj6QW7Nd/d/bdXkqQ+IFhsNbeh+Dg2b66ZVoSxUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwz8IQHUQgg7omtw9B6fXzgD1rlZXJmDlDgs2X8wdgglh62ZDgkq0vnHUWpg8cHR2aonOOlloO30AknCcImuwJBA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5WvKiP////8AAAAAauNWsZr5H0/B7rr0RxT3FKpIJzO734UBmBL7466QTLKAW9bhG16LvFixn/lAjrwT/do3nBoNK8XHSV71N2yU2TBEFsk9pgCF7FALC8jGY1alV/L4BV76JnLbdAj8xncxb5XlmNLqJPYAbbFxOrk5PbDTSuNH9UIHjWuGESOoVtgPI1G6LyEOkwPbTb8fY8hi1Wz1+GCzN4unSiuv+Jca1/MDuvWj3TXEWNmcIuOQL4+hYXZUe7o95muVfY6V6alSF0i5mpuReltiT25Dy0oOHzc0VzHLYtvOmPbkhW0bKl1pl9BSgFUCMY5+9aCEMGz2ykw+Ud14wBaH/0KevJ2aS8zT2owScc/oYR1EJoqFrk2sADbR08P+s+KZi5LHQclodQORHoBweHDiQxnB2UAiL2bOrLZyT0gMulhHdlWnSJ+ZGt6zgl55mmdj9dA43XvWNSITwqNLWr8IIF2gFgqQW8Tu7vfTZidoJRT8ISBh6LZxB/0L037atBLmQ30uR6Rvvz4Urzxn/5hH5/qudLo5c0TYfL15W149Qgm9BfrER2ZtgKbnd30/xYh+kIq15ASm2bPHXrbCRmeELqCkImJXaya4dpj0TAiSvp9e2nlketqLTAnbLYVfo0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw1v0NRB5J7Pfz7s9+3ccKwuFdwaS2MmenOgAmyX4wxGZkiO5S1LI74y27CCTKi2J03+HQFCsFdqM1dbZKhCgaAw==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 14, - "previousBlockHash": "E64BCE47CD027344D534479892C18A26AF2DA5A039D264289DE4C5C9FCF1AFEA", + "previousBlockHash": "E44B05A9D2361C10323FAE59ECAA1384A8A9DA039BA1951F0E62B5B4DA66C029", "noteCommitment": { "type": "Buffer", - "data": "base64:aqp8poyWJd2WL2bPE3QwtYYW8pt0OLWOVimE0fUtvnM=" + "data": "base64:ctHfgFxFVqPDsdSvkTuXRQ0scOumSZvjTGIQZozaOTQ=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:BNnsaq8So2a59XoJIPbkV8X3g/uiae1ezxr/FPtWDqw=" + "data": "base64:2hJrnvf5DO9d/2qZ2B4X/qk8ub+cnZ5S6LUPR7m2fSg=" }, - "target": "9015298577215211001873720751021621288245714397601094370033029857852439", + "target": "8962772943001089649145466222874954571835029797113276293754562696551103", "randomness": "0", - "timestamp": 1708551371724, + "timestamp": 1712340078960, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 16, "work": "0" @@ -3306,25 +3306,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAATeT4tM0seca3CZkD7ik92KAm/dOC5I5CAnxmnQleFae57h3aKn4dCmgSAQDtH0C0mja4W9owCYecc/Gmgf/lRLXC3MU3DkCPUzY6hlPrzhanTc0f2NJS7EotCuuz1/tUiwgb3Ef4hAIFVO+o/XhdZVLOrKXo9wMaZpLkf0psW0QQTOiMx9J4mjoXmJnRHOZmWltR5CAiJoA9/yQofOZWEGupXOg+a7me78qRa1E2yymTCAGrWcpa5Zdn/n+iGgvn8ntP2rgAzoikfpKhrLr/H4HZ4zbjw0L8KL45gpNjNEjt2YyiasMHdlrG+WfPmPs1/TQmZBuLE6JLIfHMEj6/uaiH+HJVyjGVht7bLhiY9f/v31naCvAhzvuzcTbBPs0rEXgYeLRoWMiifDuulotvKLJ61yustBIlYAi3/rvj+ZI90AqIgy2azk8LhkXp9mBzL56+VN7pQRAtGbXVFkP/tqPhH+fagdvaY1sDrX1nQYJ4GFqnu/2Nkw7A1scqMQIqjbrKpMK/7MFqRtVL4VcARpKexhmYPIV/9PwxicYlAJP+6Cm35cmXSt/HEyfkSAMOgwDjfvX62CdDjeR8DPtSOJGZAfvsb7WkJ78xO+3bhE5yTgK1psTIoElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYoX/crVkvu/dXm7mxDY59pFmAtDPmrbZ3aMr8BctblCy76gyeHFs05fIUSp2vkXH3AH4BX5xiuRMY0zpsK70DQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAq33sbVASmNGXGG7ChDRJ8DG0aq0nGaYQFUclLIxBjY2I/WA7TFfMOJonpRdecTBAg0+xxK2EQSKnlVz3Agg/RcX8n9q/C2gctaxjoaxuqLe2iMDkUG8IoNkd5tm1lQagYfwVCjwrNsSZD6kZl9Cf32BFgZcOJP1pLM4Mk3h0r0gNuV3oxWbAI9dMgXBZmDF+tmGNfrVgj+dmFpY30eX92IahmFLEp+tqIY/seSB0tAmM0d7HfTrjfivD0/GRzE2hif7NQi2K+w2n60jAYX2r4HSt42phaZunperg4IoTLAvQ0GfeRSMkb4EKR9FHEMmaSvPZtoLiKo8Yb7cy2I+IimPWQsEli0Ryo/fHPLwXsVbYa9B5qRHwHRGdCV+lo20IyU7H/RYIeUKgebzc8ShPjLf3Ne1OSbRaADf++cDhJZFtgEQ6s1hks39abJjyWg2T/q5eGz+0ZXoss5mSwP8nUahEIJbCQezF/lj+fZDrHeDQjl7EHFvkslBVxNJj08OoZDq1UZ8nJzkLWDW7I9opVW2u2cTZY6kHakXcYF2puWa3z81IFTzTdmgS6Vh7VHPdWVSxS+cNkn4r4dU79yUOacedOJstUqISOb050SsDsu0LYDTA0+69bElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMdDtEIPGe8VL9nRT61mEOULbzUaKxNdRjHZRh4SHJxCpo3lTkcyN/1qrC44fo8e2x7Ssnu+LVVjZ4igvj3o8AA==" } ] }, { "header": { "sequence": 15, - "previousBlockHash": "26A1C369C1AF5A456C5190C4321FA714C6F1D3D956807890E61E29CA03D125C4", + "previousBlockHash": "A05EAB04DF51F875990FC160326B15EDC83AE36DC63D2C50FCC59D4AF0954DB6", "noteCommitment": { "type": "Buffer", - "data": "base64:BO0sBfYu7No3RoehB8VNHq8MUlOdxrura/ydRwFFoiw=" + "data": "base64:OPLf9qjQjvnoXC6lngwB8C4Fkzxll0vM2CJs8FYYhzI=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:ybtSUsdUvDgg/mwCHoQXfclb6ILZ7V31jW6o/1m6pjo=" + "data": "base64:9D9HrQQNyomaVG23894LXHHbXVqmw9q7MjQHPtJigD4=" }, - "target": "8993343790348830080485128902425487840935090857279596688503623136678893", + "target": "8936592415642312100985993057436262836290815709290582429293649477336714", "randomness": "0", - "timestamp": 1708551378176, + "timestamp": 1712340080507, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 19, "work": "0" @@ -3332,29 +3332,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz2vKiP////8AAAAAOcynRumlPSaQTbDPjt/udUPx1UE9XuX8sRVVOvmHhL6iAx4aFcXqX5dLva/WSAWFjK7tOJSfK/r9ML6UHFnhrycGdpJhdTXVI/BvvQTfituvoWm1fTTIWyWCPGWnRWni1JPo9yWTZ18VfcGAI3YjbtfcQmAYbCZFeUeWQjUtvUQO+lUrFSBzOIUDre5J8z7n5hUYFq84eN03xfEVl32NDTAQg8Mb89nOPcM2yJ2TNO+jAtglEFsjSScUac9/TiR0sV+tCuB52mBzm/LLWeaVIc1qlcMZndlavNf33rVXFXEwKc+EV+1KbzVzzRRWWX4dIRoCwLhpXBxiHF5fUBoTTw1f2hWKoDXm7jgijQDbQv/8GpHdQT6QTqcAqnCL/YRuUKmPS28Eh1wzvAKv91QtIryl7WA0SQl7Tv//jRbS+2Uw2TNXbG6HEAtY1WuLuwZsH0DSpG/7gQNpaqnHc6yjLlODd/IcsGOpEOyeL2A3cM9mw86nyoupsIqQ+24AGfwqPNVCIv6ipo7Jqmw1kuWQyg0Ti7qqhT3vzaBVHemsyyCI1Trd97lPaYiPZ6/KI+EnnKUm5b6DWP1PzIEcWEg/67778qHEmHSq7iYHf7zN3hJ+OP6In/trC0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw2RhgYqCP1Cx58kq5LlY3tGS2JZyPINEBaUkRi4OT9u9yPK8K3p3nqag4fCo1JQBPm0b6JutgV9+YLOhYNuGJBg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz2vKiP////8AAAAAkbPxqGqlsrWQsfqRese080JbBdTsEexJFkahOHvX4lmZb2h4e/il2o/PPTsI98aUlTh/HinAxb/GqewaEtXD8sFL0jBxuY52iNsjMIhGawOjTWvQ+RrKG3fokx05GjHnJrWVAo4q1xuTs2M6fBM7j/LcQMxyXksFpG0U0IBuUCwMZV2wJM+SHksXb96ODltWVIDaZfDCcMWZHQIrkQelVjCpATHQGnTa/FRVTVlmU5ySzzRcAQZGrONKbBWSeO3Ko3TZGzg7cMBr7pfjZ0HFiZYb1geSW5HS5VrhajQM5MIdJagNGR1yoExUp9vMCD+zl9U/7XpLcd8G4vZd4jZUq0tqFGWKQzVHNSGxo3vxZI/gQNyt2Z2AugVFFoue3VY2FxS0GZNNsOZd5VdO2YFkOQ4IRdaSUrsdocAVrkks3gjhmtJsbgpVzS/Z4Jn275m3IP4jbSETcItTxMB0T/VZHgHtvHyoY3ZmOjGqO5XOCPQkCnEMdbLHtG2xcpCKplfS3vANxx9qmeFcFeuisM2zB7MoalogMDd01Q5RhyM6qwvrT6rHuOBsh/NNQaz9NV549vDhEDjxT1mJVsEmthKsLSOAxJBi0mw2WwH6Q45iHaQRXSw5eT317klyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwntccL3q9qgSn+IyMqK7H4Su77MRsD+lE8CTl9iW6keRkD2wKr0r5W7aMOTwiKQ/ly9U/7ouRYhKA6PakDFeDAw==" }, { "type": "Buffer", - "data": "base64:AQEAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAAAAAAAAAJ8Pc56m6oOD5LS7z/3AET5gV4TTG6wM8KtHmCWQc0mSOYBCYVOaHd/ZmJJlM8N/q91BaAxFxWLFT2x1i9Feo8ndo7Gl2J1b4SHeXalJNT6GKuT5CfKQREEv5jX5IsyqQ15GSy6mYXQqK6qWTdJJk8rC1N3cN6+IgvrAD/7VVobgIbDfu176MKo873YNe3uqPmHVrK49cBBJy6tAuaXYMQVJWplpR1G7kJ5xWJue2ieyjFER39LGJiuAtIH5Vlm5DFKlRYZKnBVey4MwocRihvZiOTxnt4BZdq/z6PtCAIrZF1Kv6wj3BeVbwfi9iMK5APwEC3u525/5uVwn8gQjWJWqqfKaMliXdli9mzxN0MLWGFvKbdDi1jlYphNH1Lb5zEAAAAEh63vefkOikT5vcA11PHFgwTgDxyaXo5hyEySzWnH5frNyCOoSqKjYDTlNzmN1HQx2BdzEsePG5fnZOqaO0uTdSJyBq0pPsXleFgiEL5o+dMujc0gZZs2QljDMGIHddCozAZJrsljRJK1ciDNmrH6TZ8NJt+FAXPa1qUth6PlcBoi3zsyib1iouEMH0MQDdwrNxorOC5XFfQOS8LPHXEm6jDYKC/0eIlHVQC8+F+/gYqvNtb8NrpTTfIVccZLCyKwKfWENNGhGaCNLrAKaG+n4xu5VhtYDZJAioo/asm9MCJlEOqQsJz1oZfAgWl6o227Fd+TJLMUlG40lEjcQVm28OrbvmzDC+pHZIUYV/9quV0gEg0cCEAAwjTJJi0KN9PpDVrBLk78NPp1QXztZXAqEvanL0t3hWLtc0GqX6tv9loW2XnD5c3iY32z0h+Wdg3TCpTB2d2aa0ASxbtiu/m1Q4qs3N2JNLtbBvbALng9y1O3ZetJNlefIGJeh018Q7gAfbVX9GZFNLRiXisd3xhpT4drArhdKLtnvx/snniwTsCJsDYzPyY/jPpZ+FOmg26B4Kx8yADqYrzwMQvm2BUGNequU3g2B4OCVPL/FIawg/AjyUNMavmXjZgbJLoLabP9oqUXEKZ4uTvcGqqGK1a6Qx6TqAXJjcA8U7kq3s/dFZq0mZrZlNbTUS+xN4LJ+E9bVOLewbHV+Ffl0qdlrwQBnCdhpHBpdtDn+g+41d8GvacU4BGGlgoSLN4SCYS4AwhpFqPmSZ9KL2mv4n67zYSOTTDI0FRuxChDO3Tth60humI3QPrfHl6umhJiRo0sQcEDV5agVSh591/V5RN6aUtunu3o9CJw+R4YL79XOwLNiTrPEtFkpP43+CNIlT9GZTEGs0iMMZD35CiB/P/gKTO6HAcve7gYd3N0CWa4AtNifVCU7p4fVyTtESY7lIs1tyzTGAPR/NZRK2ANJXGpObiLpO1Dxu/BlGxW/HQ3SNO1HOzTFn27gLUnOG3j6WBZnXDKpLoe0Tmuug8BvGYC2gMI7LWUFR3/NWHVP37F9sXKDb7iC8CxtbGHippwJpZFHAOxl1lIVRcMeswuBphsUaXtMM457tmaizAAMTo6yy/J92MjbnVkSFVqwv0oVCOQKfIpDRDa0KMv8BhA0KiYIfAWfZK6l6ieVKmA5x0RsSQKwDBmt3hk2vaRyNAaHphuyrptu7belcXsWksEdMmrpKQNvp3n4psvSez9y5mGgrNZedXNfhnrEIezbkCgv9JTq9VZ5PUsZvbqz6Jp5iOx4cc8RuBFj6A4wUhbvr7wGHbYbs61TBL3wNRdl8OqDSRzQ2z4gtczAS1qEeN5GOmK9bmDT56goIpOq63keWCIix4vynM3zGL+iwACci8A6qybehwk5UMBJ+EdT3gyDk7rbBy78uS4oMkmIOzK76oBwZlg9TmFyPdSNneKwUBCnJCctGxh3eiq7aiXrrp0MlsIrCAKLYCF7KgWjoHwHYaME0skTcmDnyB3tKENeAK50n0Y6x7AS/5tqzfplGmuUMx13qHEOFo+1S+iCPS9SE2HnU5oiLUMx5WozHpbS8BykWzXJLBg==" + "data": "base64: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" } ] }, { "header": { "sequence": 15, - "previousBlockHash": "26A1C369C1AF5A456C5190C4321FA714C6F1D3D956807890E61E29CA03D125C4", + "previousBlockHash": "A05EAB04DF51F875990FC160326B15EDC83AE36DC63D2C50FCC59D4AF0954DB6", "noteCommitment": { "type": "Buffer", - "data": "base64:JOJDWUUzFC+BWALdZx3JjfoXXl85cSpikxjQDY9xknE=" + "data": "base64:MHbg9nW+XR54OvvOLefFoa0x1VUgExaIR9FqEHjmWys=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:YEN2eglvYeW2W69E9aWLfTLo7fEvGuspaEuqQF+YRT8=" + "data": "base64:Ep69a6sqvcJaBTtkERoX4+UQoIyhI/4Dfjfjv6NzQSE=" }, - "target": "8993343790348830080485128902425487840935090857279596688503623136678893", + "target": "8936592415642312100985993057436262836290815709290582429293649477336714", "randomness": "0", - "timestamp": 1708551379476, + "timestamp": 1712340080796, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 17, "work": "0" @@ -3362,25 +3362,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAALw3xxjRKEWM54QZnU5ZTJY+hMwvVfFanyzELxGj4+t+PP5Iz6ku57qocPts5+Vut8s6m0W+ji5vDwfCrjHyby4PKpokBNoLUzajronyd9+mPZbhASl35DGGR2zax4oi3IFyQieZYR62iI9iHP78FtgQK2n05gXxnj1UBuyBtd+cMPwvU2P7jwA+Dt+qNHyoe4aOlvnYWC0sZt61qdndXsJgmwBsowJ6BzsLq/z0XNjWQkoZfeadXRgnwLDeIxqVV3wr0KtGNwNW7wACqRYG6ucY9rs3TEnehosjs5vTMq6NmHcCWbHni/nPHLeEL1d2XG7G8FkaAHsh1vwHgGMUdXvtzXrlQHRNl5xex2BsUBqSLc7PVo3X2TxzsL4ACHgYAuRHn/+R/QsJC2owiEy93xoMTcuUS2l0THeELjZsIEhtLhWi6oX1AkDSBEZTvjLxFAGDsLOwYY0sr0E1V/J+UJqTxUdYWeZvjLPyGA0yDtZmN9xLimecL1/EMTdD+flX5yPLMVpq9gYUfHy2yCRrWpbmQp/VemjoiZuJakQjOOsVkEv9XH3UybNTKpRwCMPyM2AI2R7mAzBLPwe6uVc6mFjpB2XYOtk2g2c2R6NX2nWOcGvJ9i7xVSUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwoHMpSobs2Wg2vRDwXEibCN5pJV6eYvrVINqRxWW/OWCRBuppUdUNaNT8Qh6QCu7LslNpB7BqmAzkCd8xNhxIBQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA/NSGH/bv11YS/ONhmxBodxzpz38k0S9KgrcUiSagSka2afxF+dmKJpNlJNmUC9RfQODr+3d3O6shKPlu5sLUYbbZHZyYYgCK+8+Fq5eAuICBmq8X+jwtso1iqlLy8HPhkpxTp/7ZwoSprhhThlBGBfxBjydeQIsFWP3AsBKY8OIO+/p76yjS3PShUB0Ttwp+ksSW9Wv8HaiDYx3kGMQeq0bM90lLBE/pST2Au5r86WWSDN1cH64x2mVr48ikFlLzb9m0KMW/IZPHzccE471tp5n4O9kDCyvaZJWnDJMDp5l/C6YZ+6YcvdqGzb6GNdFt6g5clyzKI37ErmKSReHANkAiLW/3MUynoVGCifKTSMmWYPNJBAxN5BxsCosONEVz2vOuSI/U1wOO6DAwUtHOvUWQfSOnWBYx1bXOgC8JOkIM+JTXbXB/5hZ4gSHAGwEZckc4qt0iOEmZIGqcwk5oVWPgAIbsSKM/rD2LarhzPESgAx+BB9jn0gFlX8DR+RW8F/ZSdCWSMtS3rWzCCdrsnqMhRj/uPf1LlxE/x/3pka9khGqi+RIPyk1O3IjxW1d6N8j/Q5TV1smUwdc7DxJAtlmTRp4+FAcydBWnF23qtHCm5tldl82PKUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwPc3wFkYsm70Pr6ZhAvwQPMmkI8Z7PlMMSJOXnF0O409ioS8Y7+f2/zhG0rtE1xtzn8vJfxwj4orEijckXWv8BA==" } ] }, { "header": { "sequence": 16, - "previousBlockHash": "B61E73B32C0D2E29E161B0F4EC94DFCBF33421F54F27A1BFEFA48D93A647FBD0", + "previousBlockHash": "9F5AFD6F0E4D01FFAF30AE8B4F7DA90015038B75AEA7AA5462CB30933E4352C3", "noteCommitment": { "type": "Buffer", - "data": "base64:yLY/czic/V/b2NadlCVBNgtc/j9dHv9NA6QIhbD1AmA=" + "data": "base64:/ZfAy2X4isyJPF3N/tfV2QULaCs/Z9CxWig1/Vk/Rhs=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:pDe4QUKvCMXQjM5ICBiZP9OslH5Mg3Bn8og3xcCbYBw=" + "data": "base64:hXBeQNHu523jTXP/9AbS4KYUSRbzwDP6UX49ixF6+FY=" }, - "target": "8967076286945925410788376404468472986368182381545624088378477980909596", + "target": "8910490336483732274844381660426171224942919305737698492381901696872814", "randomness": "0", - "timestamp": 1708551383807, + "timestamp": 1712340082285, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 20, "work": "0" @@ -3388,29 +3388,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA12vKiP////8AAAAAn0diEqqUaCSDngPju5XSlZZtdWzufZKPIa22YTjhk8+P9nZNPHvBzGtJTjxWpeSVy0YozGTeclzX3AmsI7+lVYGH3pVmfear0piLh0HoTZyRRkFtW0Jo4tizbj9I2iqv3iepojjamvRjrdlORRSlSelsYXObe2+/US7U4QPbpRUMUoQlVR8u68WIxZQB8ID1/+4eWN01RfxZh8E+ANP5TJa4Ve5ljSIqOUUXx9vlJsOFlRUzRJVQLztawNvgCIlSk5Z9RLvLpPMWQ3+i4RoQeTA1H7bTsgnrLhxxIETIHtVS2idOvheEb89qnuT21VCQkUC7fCG9TvDPTX8QGGxsLkcEJRKbsP0UaIwxrsHnpbP3VbjVXMswgY9PH06Fa8Nn0/oFdrHcpA2CcZcRBaQ5oEL1UGM4mD85evaYHGkfuGLo8VTJ4q8TTWphl6KGCyw4ItBCvozbTNmGeRD4bUvSHhbI/uxlS7xaqf93gDNMyrmrgJ5lQyhu/v2skHcQSOPoAjJigYL/KDjsZW7uHZxR3NpDo3knvivOKoEaTS/z6rnJ52HsbSyxkzq30mV/P3gnBeb3oiiElSS/oHpsTHUNDsF1eZs29RVB5mjuvCikT+LL8Sqg+2Tr/Ulyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwuu4xzFONLapvIEFvCZd5l/F5TRCI6gtevAWAdZ2ecw2Ldo6SCxLIIDt6LkhTu4ghA3QF1Nv3N3ja1JCnq6gECg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA12vKiP////8AAAAAAXK/RmrWS3ktOqabpWTzOc2Mrnr+q1Ni4wIPTQz5F52Feb8mbL5TYBH2MlGJZhS96IHZClqwo9YhweYz7EvafI0ntA2WxI36aAiqP+dUmgGBztBIOYg3WTyUVWEel2Ntuho92dwbtAcb6SUP1LvpcmXVoFfvFkT2RYnqPD5pjO4Hei5m5G9vS3SG7Gx8uimZJ4Om1+AZN1O9Y2vZvnthJB5otCGCOxTyHVYXXjXk1I6EMgcJrlRrkJnCLOA9YV2lCMBXlLj7mlZKJtVAzcQ1wRFKOFjUg2tDLlua65YputnlGsJtdKWTI/M2bGsWUhRnyLgvO+jil+9nBqYw5SCMhDjfLu9Gx85niN0zk+a4aihMTqRqsIAxfUb8lrBnWpUaXuiBVrprq12GqlecFSuL6JcYPKeQVB3svduz4T1tD+i2Yk52lk+6mSygb26xqMCDpZZqso3Lp9Qf7QIHedrEi2h1QgUe+2hRrLzrIQy3cJOSjWWnMs7ludjoaMxf3b29+E4x/N2ktaN4TwU3L0eSBuBC8I1ZPzhVpzzaB11YPIE5xt4hF/RgR080RcTU5cCdYQ/XW1XBFuPEApa18sJe2qmMsANeC2wf4lo84zEECVQsnuLbpN2yB0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwraQf1+FTRGipuHfXmrSgCUyP8DI1FSR/yyum9Z8b8YucagLTPtjkZKtzPNdiWOjwKpnjOe+P7MHSusRBK1UwCg==" }, { "type": "Buffer", - "data": "base64:AQEAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKQAAAAAAAAAAAAAA5dqVwo669qeXnPijrGu6rUhkps73s2nNI2X9U2VLSuWSZqopZUm1iFGey/solDVzS72pkbF8vx8gYAa0zXcxwDV9xuNntx7mWCLQzbMxpWSw/+6mVLE/ymwj+TrHIbPUbuqD1y5nZ2s5vwyNHboqmCBn2U9X9bx5s9xI3NmCiFkHFphIgDSiWDSi9itcOHiT/xH7bMt4s8zEp7+eN0ET8ebi586Wnc9QZLcYNNyrU/WMoVs4xrsug49aMjoAJ3SvvM9d/Uj4+Lfj/uOPxuj4UHKjpEl9MvUmBoqFZgi9rwU7b9fpHQBVFZtC1fr4TkiLLrK3xI4X+JIqcOIeBcyMISTiQ1lFMxQvgVgC3WcdyY36F15fOXEqYpMY0A2PcZJxEQAAACLfEFxweUl5YUJ/h5eB1LAuT45WIyMeRrLWEcvI3XK0hEhhWvhN6hTnmj4yDx1bZHwlKfx4iEUFrwIJfYirlsOo7kltlW7EmytNWqsMIcWqjdTTxX3mQVl/AGsYEwqKC4oMr1YWoNmaa5d5hG1GB9cKvMD9e1ukKnsFRA9KFcNa99gwUOI/aBA+joUYXJ89IKKnDtvzaHCHFIsg2V96Ds3ZPeiEJur2dLJ/VQkk8Da0IdmEOT3Z1vaXpVoYglnF3A6cYOawvsB8fezU/JiYUXWiocjTkAUp4L+A7F82nLU8pe4Fka40EC9De6ijRfUu86EFY+UDXFauO7nWoKng7up8N0zKixVBc41A6iswwZTGHUHy2dHtzMCOpCKCfeB5kp8zLciV0Hy/wWJxTGK0BCNa6LI4BuE44cTZyjZhv42PWHwJlUzZmgxfdozzEiv6xRWtMqQiYtZVCHNJdlm/VAIzFtpTIFkmqidy98umAWmWcstwvFlvttxdOFj4Jh7EpeQAOfFbCxuPju89NZKCYbL4kSN9UwU1Clh2CkxVBoR8eVE8coWdR4yxp0Qa4+f/ZDTsgG1R1BIUmdu92xHDFj8ZWw8zLJXb2V/Hxnrqq7LVxBjp/AyW67wdGtrz5zJLjbT7adW5U/SxPNmk+L8rjFiLFOFajObQfPCwSCx0qyoIgXwiTCSEzYePxfnEr6s+2fqkzRDP3DME60COGj+disup/JV+iX4+s4IrGqfjW8r21m984QVEuiLwXG43xA/uGu9ml89UjS68jmHjwEZoVLTviIyNjAkFvGafVDbByy3stsvzbRIoTZqQQQJAuFMwMvmkI4J73Jlkofah47W918GmOJs5xyN3sjk4HLk0VhTS3PSOjJ88N2+smZpEehcuSIx11dJvfZD0Tf2Jag5lXwpGFt+5eYH13pT/9nFyUEmHVy8OFxu2ypUXWufs4TifXE2tZFNODjDhcnOcchLZyvYB3oT/2fo9HdDPWYGMgI4ounD2j6LTmemFu/xQlKvBMGOn+Zsjo8rvwbyi62tcQylIcegqDtpJLhBkjsbVSikmlMroqu57NtUgTKp6GfmE88ZTkmyfVaSFGXSAVq/vSSVRhy4dALipILabdnA6Ujs+H5sJsuj3OdGj5qu9Jg9KTBOEY/JRHX5TFEIp2XUrolm+4VXW39bKEaKMrKFbBksIOyW3m75XrYOTCz4Is8OXynZCyBgJ9yqyjYK/o09NhL4EfMeyz7p5CkhEVFzBZe0ULjniP+ELltguod1+CTGBoPF/5jfzIGTSMaxNuVwLteC54C2zLksQX1hnW6R1+NDKhARN7L0AJorPdWYGianlZv/e3A9bBfSkqTkJ3xgwzryPHbUFB0ib8jB1A7a5vnP/3bep6vek4GwF/IV3ZB75og6nWnnpSlFgT7Chsu/YNU3Brbrdu8YCeIp6G5MPUgmXBv3M62CucQVxB9bECzKjOM7pqtrqWxWKeDAtVZK3XhxhyDqW99EAI6zvuldu0sQi35NLVRKEXSe7agGiL7E9XGLsLR5R4QTY2M9QV95SKSNE2HU8rPgzgYjkL2m0/t8asynPIr0kW/1GYvAr7VlcBg==" + "data": "base64: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" } ] }, { "header": { "sequence": 16, - "previousBlockHash": "B61E73B32C0D2E29E161B0F4EC94DFCBF33421F54F27A1BFEFA48D93A647FBD0", + "previousBlockHash": "9F5AFD6F0E4D01FFAF30AE8B4F7DA90015038B75AEA7AA5462CB30933E4352C3", "noteCommitment": { "type": "Buffer", - "data": "base64:9JjZSfTzRxEsfu+FfX0A9oBZSDc6Sn6dMiL/Wg2FIQg=" + "data": "base64:fCZnZ+F1OD1QJEXz/z4gmpUFVgW5PaIUZIkFFTogfzM=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:AzJM+HweZDEDFOR9SGE8YZhYkIuvoQAVMRIZPIrjHlw=" + "data": "base64:+Kjm92NTEgoXgzI7ovenh71NPxkkDSXEbx5irKTOJzQ=" }, - "target": "8967076286945925410788376404468472986368182381545624088378477980909596", + "target": "8910490336483732274844381660426171224942919305737698492381901696872814", "randomness": "0", - "timestamp": 1708551384288, + "timestamp": 1712340082583, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 18, "work": "0" @@ -3418,25 +3418,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAciwAib7Vg1rLgXizHk570foXiKp1M2wt1k8No22Ldr+mx/vFMlW1bDuSfL+xBvUkhQaKod9OdWWBrhHmSMkrIwN9PZY5xwawbTV25A7O2MuUVrH7Zu9heDvFGPkP+KdTCDI1kYuch4pfVV6FNlKk/xRgwp9ALJgIOunEYAgxbq4PejxH4enD0/fi57nXcSlM8Zu9p/zc5qIYKwCFyofpH2wxSjjWBRCCbzK1+YJQxhKHrEZ+HintGKt8muGn2UjDIPzs4PYDX8PefkIKO/D21REGQjwnuroG7mTArEkOrQELUCzGmryc6gsmNEEnbFnxyqDaqqLuGGN3hNTVGQGCosqXtWGUMWEGoZ+LXjbvv7b66U0trUuPFqJMZqhmiapE3yfttCiHNfmqTIvRdRlFlEMLI+eD6jwPQD1DbMNTumicxQydK/KXfAeYeY/RZPumwHtOtnqgMrJ7EI0w9FHPp1Sky9p59pMor7d5Z42SmmkZD20YeJzWFFS1C8kkPfJtgm9wbsnAltF0zzMqKTXw+ZtSy+4h9/sp3X9W544uJGIgt19rgcPS2KdtUQI2ILae8lKtqUclk7aqFsyqN8I1MNQaL/g0tBt2WnMmtfaS5+SyKuCpEw5Ogklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIw0ev5xkzYZY7ekRvBGO1j8xgOMlIwHV8ThwS3moZJ7QfagX3Hbc4aQB9B3Taxh0Pbd1tiaC7n1zkUQp+chfCA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAk0yU8NEXT3J2Nvo/V4fCjd7bnR78JJOlSb+gVPvUeF6xo3K/Wev43A4FarXKxKpG2M7cSAocznvR+yf1lOznuhA0lY4p6Veaxo6lfMwZvO2BpxwW96gkNPUQdPcHZz2zpWayfxwDScHSFufttraPGJfA9n3BGmpqOFZySN/59FQHU2+AfNqlF3xExH3xBzFvaHSdKtf2luky7Kh9MGyjuGduxV9+N3o/nidEw/gH9Pe0NiCnL7B0P7T9To1hO/uxklLF5nWwLixQ3TE+XLAXz8TWq6x7M0ItSIVh9wYHiCoDp/YI2iOWzT8xVVJeajoC8zISp6ewAK+O5SrDD5PV2MiagxMatiLCf9R6RAHjKDC8rfbkSqpuyvYOl+EKlTU8pOHmmMPmuPl1u2WFxyFC0EMFXBNXvfe0sA2Fv8f0BgNmMDFLsH5yBoC2lyhGVvmbqUbkI6vIwNQHcHXZtu83d1j/SvG3HzmOSqrMoLIUswRdMM0fe0yb2wduuN+CyQ3486fRZLo72AfViQYiup5k8pzrh0wJheVPRt8bhI2AwmHKm0C0DivXl53bFDH+XUq1BRMfKdf/gQZNZrtqdoClIpgIpMux5tkSWCxbjRzbzvYtULawDHoWb0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw2yadssM5ohVZ6tq5W+ztiaXjqOPQdgY1cKBm/elp/Ohal9YvdB29ruLbYDrIgD5eE/q0Tu32N7LwlhWhLAKtBQ==" } ] }, { "header": { "sequence": 17, - "previousBlockHash": "41B07E87D0ADDE2F37D1B791977CAD253FD49FA460138605E9E2603E8120408F", + "previousBlockHash": "3F5415141543CF437D49518549C110D27176F8986646DF7ADB09B32732B6BAE9", "noteCommitment": { "type": "Buffer", - "data": "base64:7I9MUIZuOo7DO8JC8IOVXkbHTCgJrYjr3//OYVsm900=" + "data": "base64:tUU0pJ3vxP/HWCmZdMyOyKPfF4Pmpl016ILg2V0a1Go=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:wnrF/OQRzkGcYMX/yzLfY6KYrhpUtXHIF/IF5/eJ3Bo=" + "data": "base64:hKS9Mky94wm2GrQju1U7+O42ouQUbINYa49n6z6pwuM=" }, - "target": "8940883076556190218126970526788955714840006302721655158505166300043265", + "target": "8884462578919535292721684404223700259590579728970127140853487198587682", "randomness": "0", - "timestamp": 1708551388594, + "timestamp": 1712340084063, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 21, "work": "0" @@ -3444,29 +3444,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvWvKiP////8AAAAAjIvZDNmGXrm8fXUXc3xUZESx2gNYPaDDucdOOzSaptCZsauyS9cj/aGD0f8rxCc1WcGnf9hpbmBym4DxKT0UEYCP2pTfRxTEdGTX4hZ9BgKHRYp0qsOSkFXXy64+iLUjtNi+0+Aj4EqVljYhyVE9lMA65l/zuJu76qrG72p0n1AZNzMh+H3IXfyukwULjVv2w9R/UWc0cKen+vlALM3PC2L/ai9lTECkQ9kjAmuxcO+00tsUTfed73FfzaO29KLz9BHeESTDPCs5mAX/0diAsQJPUHeOMbP/wzJyCnIhB77USf1LDlcSYuFMnshAWYhxuf/hlpmmALp13KfAUgfUoSbNYiH5UfBTzHwzxXcWJ9FFntwHUeoRpqW4CcRjICNYGt0MLvw3o2KNyRGWY4+NBusSKjMwJC4em/W3fBRZUQDq2b7ThcAjeV9Jc2MK1lePyrum5kh8wxFDHgWmNdc9uZqmq54PnyCQgrqBFJ6tbTSjMMXMt+JJK5KKcOYXtoDVtyaTlG6Q1FzLXxsURm8y3E7ITK9AxK6vixz3Y7Pg6+L2tQcner6QVnbS3eJI17djTpuIkgKx6TxQDSQd0vC8ErmxxIadc/sRoSfy9WmIFxvCzyRx3sSbtElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwuQeOP8fRK37n//vi7JKuOiZQI9DOByjvPC4JvnMffDAldz+8byMM2MlWk+X2GeFsgz+f1nZGvIY/GRlf0MUmAw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvWvKiP////8AAAAAbBcTqDHVjDe1blcrdh478wEy5w3K0jab8tk6zat0rseEsBs1aNrr1PiqRsMFCHFduMOVFFJEfXPUUsLFRe6TL6cGoh+9YqGWzu9rw7DSCwu54ZgAhUYJFSKbDLRgx8Rkx7LEA+chTVy+UUxqBaFsnqHeBg0ILRdcuTVYmz1TDLoZZN4V07zBdinbmqAZZwj/tczEuGUwbAa7sOvreoYuRmh1fB+S+x9ujA/6UGgU74Sr9b2b/Cl/wjwZA6iCvKwdn4BmTXQJnQdHfRX7bO2J/QG62EVYbAS7qhK18zpVczXUQBNufrQlHjowvadyskGnoB5OqkTI3UEdPqffu2n+k7bkhMQt1gXlKbPAU5LEuZVXVBQFQ48njUEptGgR+jUfNqDcNdWRqs858k/qrgPzRuGoRgjwzQ2877GGgoZHg+xBRhi/wHZJ7WQB9MVMQ3q4I7HOfTY5Im1j7wpPMu+7BqbO710yVH7NZd7xmmBXx6LcEsJ2oHQhmpBCdQmIs0W0s48M21uGNphWp37jiGdHB8C+qG2Jx5nMr9hdGiy0ZgjY1iKwaVPBJhafNsBZcfCBkOg572GRxZxSCBYj31lMkZG7mzKN8WMRQnxtqAGahr5MfrxV2PoVnklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwc3so06ycHReUooDg6WpoULlsolCN3qqsQ4DbbOTWh1GfoneRv/kEXh1L9U1XEe5eb9ymHd9M4YEIeuazL0O+BA==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64:AQEAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQwAAAAAAAAAAAAAA3CdA2zk1U/70t+8fLjIuWlw0Z6D2TMPsxaHa9Hi5iGOmpod2abrNwlGxkcR2QwyUcvxWvn0BOD5oWEiP8alLgWGz/LflNOnYOqv16vLPoYK24BXzM7C9VvvnRgVKHM84lQd1Iiqc0eOwe+HvyQ6fcPnuCePx8VNsRJxOGZoUj2sC9gRlIU6X2meNBX6Ajrq3n83bkEK9NkBDOTgTJvpegGUWj4c4AO33+zMt0Rs0Yf6O1tgBmjrXVmrWT7bLfndWFrlvRFf0b0nDxnILwTEimuCFbwGKy8yaabtxtBDlO3df2f6pik6w6YvNLrIk42d+QqBkCnjmSZhJ5vD6JarXPHwmZ2fhdTg9UCRF8/8+IJqVBVYFuT2iFGSJBRU6IH8zEgAAAPdbGimcFaql7nhx1FgoGu4wqRHvYWayGPv9FfBj5pKm3MbfjiSwD8oQf9S3aYW+WwvlP1BhcCdpbeh4hg3Jf4D8u8t10n0b8tEsKvyaVVopfbgvcLme7SLnjnxflkKWAJQAn569tmzdVjDJxzC/hZkbchZl28Xkke6JnVl55e2cuVsqW0/Nyw7W6SFr7nNUpoJo6jNbL8Yzkd7XOtEFZhtQfxZjPLEUBG0xo1oQTFTWymfrhGLSYli7e3HXh4YZngRw0HFOQ3xb7rAOihUr0LWbuWI3vVxnZrMdaKDeTOCRXTNDToj/ZqebDegH2Ku+DKFxlhE2OSbV3he57oOqV8UsXz4djIQEr6b7OEKMbFv0qzlOsZXP4fEBd2orDMMo1p3cB5t5K0poC3dlwCiC3Cz+PO4SsGU0uzV1N+7ORSXF+HC9VUfojosVCfrQNzteymgLzRn5spAY4V2/nRv0YSOZYq7o85+gK91mGnhMhs4B2RPaML6Hvu7fYCtSNPSCiYrgSj3wgN3ene0Ew0fkZbAFt5RkBUI6s7rwKfqt9joNSHnc4xMySGaFBiI0FoVe4hRKQ+DnBpM35fyWUw56kyRiHNEnWmy5OENVsqnBG620l9oKjQh3DDGWiOPt0s/A3MnwXDJ7+xXdXZRojeQXgu8PJhGxyFQ2QMGf2BITzm0/w8qpaMPieygdAsj3rTp5BNKCKUqfX9MSN7eLsvZjWsJ3BBH9Mxl0z83cjUjCKqL5/6lfR3KwSCQ/85Bj6i0DZONFgl9Wp44mHYoXhiaErlTwBOpQu+2shzL2bOM0ZOnJzZ5cokAW64qSGQwkD0HPeLTJAOBd7Lkkq//UJnuyG7RbjlC4qwqYk83L6Cgp48oPiFck17Nvp56x5K5Syue4dRnrOIwb5ejjTk9DJdknhMbjxEKNcUab6LH1JZDgqAojQm0ejiMjfpcOknexJmks4ppwPf8VK9Cq9lvxgWQhUU56vqDvDQAEWXxcTBjN4BHw1q0pP3a8noqR77MluSYg+WT97Kue1b7dmp8NRGYab796/nSMj+S7QfM/b66ZEw7JBzac8kEzLY4sd4qmztoXvHxeUpJ8TW4TSF4wr+Bv0Qjl3s74rL+ClEh6GKNX3JR/VlqkLqSDAai1FrWq2tuN3QlIGSaV3P5AU/6ou8nq7a7y1SJ3ysDb+76OJZazA3U76Bf914tRTGaWxr4qy61GvSGPwmCcznFDwn+/impJX0gDOX8JwSaLNgkwyG2wA35+l3ZAPtCXcvrnYiV/oxn2Hx8FukfVruOiUXXDYZjWoJZ3ndFHhwTvxCB40w1/CA+FLy8PkcfUYTrmbW8Oi32l6rzvGla0K2hY6jpJOoLw6XTtKwaFQ5m4JCX6y7RB7x41blKrcWEV9Oxw8I81DCw6KOfyUJg01lcsaYVZE4NSEUzr7szYhWYIzYgy2YBh0dIDxPXHRWJyzSbmxB6AmkCU35X6RmkFsJ7YDCUrOnXlopW69JiebwHAyRSsozg9RyvBSUC7u7iCkN2i0LiEyT9Bv+u0AItALrgYDT8RHUY+p+I3yDPaljTGislPE7k0/7494v8tM0J35sjy7CfA3bvlCw==" } ] }, { "header": { "sequence": 17, - "previousBlockHash": "41B07E87D0ADDE2F37D1B791977CAD253FD49FA460138605E9E2603E8120408F", + "previousBlockHash": "3F5415141543CF437D49518549C110D27176F8986646DF7ADB09B32732B6BAE9", "noteCommitment": { "type": "Buffer", - "data": "base64:mEVA3/lljGFFTDd22PqQrpajN/JeculzEKKH5Hr7ijw=" + "data": "base64:G7ySrMudz+5bnOxXbuLvftRmiZv8cb/qyOtYMzirfXA=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:dP+vLwAdXlq+A636zXi+RX2HWw7I9y0z0st5acVnl7s=" + "data": "base64:9+EjXhavHW6cV5JdFBWOkY510pOgRKcsPD1DZ1Vlivw=" }, - "target": "8945237979850841904332640429837072591646476163262871306965964598379127", + "target": "8884462578919535292721684404223700259590579728970127140853487198587682", "randomness": "0", - "timestamp": 1708551389585, + "timestamp": 1712340084357, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 19, "work": "0" @@ -3474,25 +3474,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA0YxlyU2p6nN+CZjPBaAuAVdN55r8B057Bztls+gz/G+1n6vZ6WwJC7wsb0bKDC0jH3axPr/kOrAfiDwq+sdSlvRFBOcwBJvWgqvdn3v1ZTuuEbZqnRVQLtPSJVXrIO4CTZyhxiSWcLODMWAwfuc+4hIRk21hAIBHb9dRzZlgc70GqLyScNpEmVVhrKZEowDJ4klMSN/tEZ+FqvQr3TNFJ2Z15opksZ2umm6EIfplHpG0jh7pOcZK3yApgSDi+HykDAPMnSO6xmLvJp9abzRDJh0O0SHVep1KaTUmxWhuSTTh0c6DGEczIVrKq0RDVKrFq/Cpga7E1hXsgfW8OSXJk0SQvVk8/dnuPC8T8635cGAnIFGyV2j6FRjWCAylefIOm/CcFlGN5D/oDMDw3WDkVm9u+0PA4pwUPQlq999voV8fobuKw4mjD+Z1l+MOhyV7ksKuooG+bKz+aQ3MlHX3AFRSTaGNVu8fMNVve5XMcAdaFFfIF8CfnrxsUcBqPJRv4TJjo0jSFo1cx9rHOICjUXLziWE5HSdjQys98oRvdQbTIaddYCc2ecImz2V2VO8rTjAF/ZohsITmv2CJyrEh/0NG2FDny3BZJorMBzlP6dKNoAdpOFkwnUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXjktB+cS3IRZUkdqM7rhczopJclgEF6Nt8kTIeNZPw7VTztXw2DonUJfndRLwCQhpxDTeAzeJxaRcg/ng8w2DA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA8IOcgh8N3+K/k7uPKYn4Hqt6Na2Autv9wohdm6XOEGyOwzKfa1pVHtzIUoufjikUQOzwm4lAilk43cVIBlpH0olWvX5Ai3D1NvYqvJlpQoCWqWL7ejDH6xQvr55bwjn6T8pMKxCujkO6r/iXypVI4PT6RFgtQVb23g4y+qQOKvwBi5MVedhaL/YJX1Ih79l1m5srK+Llp2n+GlRv8ywpms0IJNsfIUu4adSeV7MjGVCuAB6XbK/RoF2QQJw8FTWus0jsYi/bJOpzcws7I06Jp+WTmA3bUnfqdzEWhCUVIzhIYJ1kBwbgikujaCxKqBqvPIH4mkeCk2Ye5le9hQpNUrq185ClTpOUB7IX/E4v0LRIiUTVrJLYvT5UV1GoU7sTM/cKA+Or+qBOiMsTCFAHlDdkDBsdd1qtB4wo44w8Bej1jzmYSxMHesxD53jTnbcegFPWKWHIqIHD4u1YSFa2Hvw20lQoK91G5pTHnDv6Gb1Fzy+cekatOe9e8TaWwNwHQurp0ry/rKnG6fIzEGsSkg0AXoXWn+wWQTwQpUmwINPb75TU+VHMQ6AuSGh9/eQ/yRGG/kdbi3xc5Oxa/y1fho5GNWZb2Uuf5DRXeQ/AgHE4F/0fL1ymP0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwgj8CUMez3wwoK04NDrMo4/ZKSHbvRSF6qWTryF1maSlnH52Eh+1MGqiwUE4OsqYtImceUqNEfMVkqo21V9cuBg==" } ] }, { "header": { "sequence": 18, - "previousBlockHash": "EBE4EBBD3163A566754B4B2BE39184361438F37DDD53296CBDEF4024BB17A031", + "previousBlockHash": "B53146E5D3FB2BA449CA14392F31FED5A892E1D3794BED3008034B78A48DAD0B", "noteCommitment": { "type": "Buffer", - "data": "base64:ZhD+6U/wYVEhpLZwSCOVARf7EBWlnC9JjbkW/GCFOEk=" + "data": "base64:ln8S4rPSbeLXy73rLW4StVapWzpLJy+2nu3Vld9rzj0=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:eEnJoqlEsyI39uVzdVfLUutDwgfWfmlNAaBp3uBQkdc=" + "data": "base64:P6+/9/AL8JULxsOdRX14W3TS7fdDax8XnoCDO4bmT5U=" }, - "target": "8919110178433381089283464219460833600419364284783733700576537702869748", + "target": "8858513240810592156602513159668695582273591355461995685460716542629812", "randomness": "0", - "timestamp": 1708551394003, + "timestamp": 1712340085847, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 22, "work": "0" @@ -3500,29 +3500,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuGvKiP////8AAAAAQ/+6IMBS3FVnTd9wS1ZAZPxckTKUnP5Qr7BTQY2E2eiit/Fp9ZMbzG80ok8O5sZ38S97Erjp2pi0EkoSqP2GWcVY5byLak4hNXIHPFK50QmxAl9Gx+1simCJXvFRb3NOtX0x4xFFYokzK1fKj3JP6DOaSus/s3zN1LBxSKe4x7sQ6YPFKGJQCk8IGRmXwizAqPd5f0Qldu/P/QBgVcEIhaj0mpee3v1bmV/8dZBny8OgiRi2mOVJJH/exLMARlyZIgYfNX6uGA6BvVdzPAMGZMHJW3rkkQTAGIrRoepM8HgKtUjQwvp7VbdVr3Kc1jLbupuZ5hJSAGa5QGtMEbylI7GSRogDYirHO99hg9dTHPGuuSc9PJjo+GyQkEvXr1M3Vdp6SfZ0Y3LQPhnque0k7P6PVSxWfubSf4LJazWZ3G9roaN5HrK4fHohsxwYDRj0IuL0wnnqo/pZcelRdq9vtNHK1NC+05ShsylRO+TiZkJ32KrSZ+xwRX4DRpXZn2WMoxtN/8WZCEZ7QC2FIXcX4dpNOO9zq87yTbPnemKhXAZbJa44FjYNGoIaPT5HUzkjH4Deq8vwnAI4zx7VNaWslpo41DV9HlJPThOCVisVLZX5ofw3knomn0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwDAt9MCcXgaq7DJhMTBuA2dqmT4L6lKjztGM72sLCbF1PMCfJdkzutA7chlqkVFlA9CowjgXil6Slrqy1v4mgAw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuGvKiP////8AAAAAe/0CE4/EXKcufYW+NiGx71X9DayqjNxNcO/8A7qyCwypFcEM764FOA+Ikeq6ZmszEwt8NjH/krQRsZNgbjFnw6gf8Ivapq1hgUrL1zrCaiK0Wn4EZeCo7FWezO77oewLojnb5Npl4BjjoOMIGqY+XY9ta2d8NEw8fb9XSH0jQm8VghvkElqJ46hRvSNvJ1K9fyDbRezYAKNXOGQCq19nd3cLMknEIe0ly8Co86PhYqC45U/GPMkIt/tWyxQNiC/TcV9PIPGEPt4kDwJd8neCysx456RsV5CFSyUWsAUwnZ4eFx/CvCaA9dDXWtsVsqovf5Jkgs4q/ZkWr9CtLhIq0Mg6uVfuDHARpuvkGu+STH77wbgNXh2hU5MtsvT5/REEcSNlUR7z1u8VW8bYcfSWlrux5y+XsU8voB34PG4FwTEf8iIU1duNrfnM5BfGHO7p7CTf7Goov+9Jfgsx4Ez+dvXqgtYGhnjhmkz0wzyGLOrut+LODQAT+LhrGfbU5vd3ciFzfZAFzdd86U7hfzZDTWb6RFamsP6PW18j1hVhXtB4a4lm6eZV07lJsJWEu3gPYFkyZLgIb5vGZRdDNjKAQwXmOf7D/Dx1IjgituSj8ushGvPsTjLpRUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwg+DAV2jkUgP3bbh0cSwOvBkFMDWtYtQxRLZpZviU5ZL0OmXbFu02DEIPl6CqTH6eBmIgXVGwnuOZ03cUKgByBA==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 18, - "previousBlockHash": "EBE4EBBD3163A566754B4B2BE39184361438F37DDD53296CBDEF4024BB17A031", + "previousBlockHash": "B53146E5D3FB2BA449CA14392F31FED5A892E1D3794BED3008034B78A48DAD0B", "noteCommitment": { "type": "Buffer", - "data": "base64:/07cQXsOfwUTUbYPBsuQNKhKiBnXAuMBLKphFcljZi8=" + "data": "base64:oJR3VcdPH2McCQ4xanbcHe3ySaO0PS7ZHbo3ZsCRXUY=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:EMq0cFYhasNHl/nuWhy7aqqDhyRJ9wGzXkSjB6ke84Q=" + "data": "base64:Y6K8lDVINsnyk5XMovfsPvDN7jeUdLtsPjoLbI3AmW0=" }, - "target": "8923454207439185581577386469122308136925193353995384612853039703985652", + "target": "8858513240810592156602513159668695582273591355461995685460716542629812", "randomness": "0", - "timestamp": 1708551395571, + "timestamp": 1712340086143, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 20, "work": "0" @@ -3530,25 +3530,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAOGtjEVAIkX9/DL6cEUZZhbnCOVTV00Oeb4FlswVuHyGHmBiaSiGn0Y+K52pCJr0n785oEX12mrdFBazCxyoftnFc5uO5KrLV+QYXlgJloJSJHR9HgAnPcVhzeVhNJfAPCUbhcrDES+FUxzxsX0X86g0m4iSxbgYfqWsvY6f87MQYLZzl8xF31hd9Xf7qVkeMb8PdWmGiNajJBbf/zR492DTRBCvrbEDTtb9lDkBjivOJ0sZIf5MVabolAciuaJtFQyPiqKJ5SIbTMy7lv1p9RwhC0qsXj+7x62fCpi49lVPFmJXjrMbhbcsIC9R2H6nybCUgfqDejsNOiYxtWz6lJG2M2mMOCxKN2BfA9glz5VlCWDCOYZONUsBsgBy3kl9dzpbkWlH4omdxmicMu0vaWKv/g+nf+wGnDjPhQ5YUlen18ZKn/CCarevzATEB2oTG/4fXWpUyQKG9v/RR0NkD9vAt6D32ohBQHqpyFBFxx5oWrq2+2Bjk3y7kizOjXS6htNKIHjmjnAZchWftIqh0S4OaJgtI6Dup97Mx8GM2adR039TDmvqp4YauUXwnKtvxSUnKjD6HjK/gGxH/cNcX0zcSIkDRSyyuIfcUkhkCakv4ebdnHebttUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAGnp+Ok/rHYk3mqKQ9MZFL6zrZhi4Yj9OzgAX72uqjEhbRJQMjPcw6RUcuLU+jIZTwvdA4bb3E61AavUhHfiDA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAik2bZxkXWxuiVfSesMI0Q5qYUT4XG6zZv8Wo1hZE0eqOybIpesFOWrSLKU/vYEpgiSuG8Gw/tDQwWZHJzQ5RgB9iVLawMo7jxp9FrGRkgpGZDRYPuAoRpfS84Pf4P6Fugvkosy8l2L35cnHZJIVvGBh7J8cCXzYmWUizcilotpQWrxcnPP41zHiPDT0PBVGa+nMPWHrL5TDYNPY5vnbiYNDz5oH3GV+lhtc9e9gsJuiP5VpK1bp7pertAxiL17dKCY8S5V0mbQq5ppgSb28SyJDNYf+ohC1ytI+f+k/gjQVpt050z8iigsNrdvp4RfFqfJ/LzYmQR9bZBUMBBnmFCqIaCr2EORUWlJp52BOVyVS7zSwyaucfgx/jKAHTu2Y+FTxDjYpBmipfAQY+xY/jDyBfqM5/J2wevCHHE0O7YtQsJ5CIommd90vxTJZDA9F1pbTKbuWr54tlGYtvC8xsIoRjwrwl3ejDLnZcAPvLYTC4JiQc+J/RLTodqx15PgLYbPEzIV/8GCu4Bu694Cpx630KYWWHoYlw8kExNECzfxc77DgLe9m9/AwgM8QlWCsY6HIH2Uw4Q0zU5cPg4WPgbMT0/h3d084+DeBiJv2M0Aq8OHecX9HBq0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbfKj0zjkXZJa3F008459H42/lDbN1AdLMBR9EDza7ejgyTQw3R7Uxh4zqCm27AsouckCyCGeeCy/uKq8D6/sDA==" } ] }, { "header": { "sequence": 19, - "previousBlockHash": "728204DBFA3599B35A2D49023DB9A95583922AB275A73713118CC369758AE9F3", + "previousBlockHash": "A98C93C2CB7A7CEDA59D864B702F0BF7F4D3A8B1B7ECBCE31996ED2056CF146D", "noteCommitment": { "type": "Buffer", - "data": "base64:QJNrZZ4XklQeidITx/knJkuQClYRd7k8yr7hRkDRCUU=" + "data": "base64:LDVYAGHQZScc0XsKLZ0VTBdcOSxBlxja/3kR020Lu0g=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:3NYCYaJag+owLdJxVr++GPtbEAHj6cKfocZhDqF0Tpw=" + "data": "base64:yjAgOJUonGAW35yf78iFcL0yRUdzML2UyJ6lR2XTRyQ=" }, - "target": "8901721527387325021640501403246083674770219928721442032838340535629124", + "target": "8832638235832006345255487785540479806223238799261956268547144109830690", "randomness": "0", - "timestamp": 1708551404184, + "timestamp": 1712340087610, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 23, "work": "0" @@ -3556,29 +3556,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy2vKiP////8AAAAAvpJk+3ECL9nuvMHWFSHxk2/zVntZMV2qBVBtgZzPQCeFcAxTHnXNdKNec1MGOXx5rYFzOEQLS6FjonWf82DTemxFwpl7zgenYWZcaqCRyYKrC8Gu8vBx0ClMQGaAtzCqhQrCOgX9kttVXs+ZqW9p9hx4Lwf7U1saPD1TQ0Nby2QAsl83J71x/UHLF6iF+ha0gz6CyyEzI02WPQlU6a1kAYHjZpxc2M0uQxt8aqBwNxSzPir/7j5enrMJ/Jnst1sPBOHWP6ttwMg3rgMlfLCjVacp6IjMds5BF2xwTxjPJ+bEXSosdxoFYZW7OIlbSAfKPGOAP8p8QGhz1afM1/NlR7UL8L8v2iifzLH48eLyGU3+imOXaiBMA3tAS7ZgOHI8tQkIJmAn+ZQkTcqzlzo+SjX/ayGV48A1bbiy2nNyXLZoHjHTDMkAdPHHqD2QhyCKcNDeIenlFGje6jxa/XrCc4d09Xqd4uLuSygifldaQBUJyeFP/Ze3yRzMTiMwJ5G0ptm0f/tNQT7ExRGoHTXdSsSOdBDCU9e9D0vd1nsiXm210xwGQLMzHS16Lig9p+pSlqOJlrX6iNg4s82wcCNtTzoTKywg7OcMKQztb33tNBCLBBs3BM0PHUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwxpEN76BpEseHlHuC5YmN/7babY4jhJStf20cuHMFqYlQa8pyOkAZFhi1R1LF0EcTk+EJs7xUsUFjHihUlFODBw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy2vKiP////8AAAAAFM251tgjCqKRnLm8AM+NFPq2manKxAfCdBFJJCXs4omidZjhtwPM6GOKFe1Sqn6tXGRpzuVCD9DuEomiHJREY4Sk8C1f/Uh415I77Bm7tLaIp7mcqb1A0Q1QyhGar6kpEqTbBFyBQp1Ke+H1Z/2x0y8vvq8P2HsRhww/j9rx0ZEYUKbBHI8Ze6hX/9z0eq+mFGr4OhUpPMwuZ4tjgqQhrJyicPGgC4avOXOaGdAAxySpmxmgj0+QNgmoCTcsp0F65NQojg8Ft/y1fohgJ5unqy3OFlj+5DK5xK1sfErltZR73baq+FJ9lwOVARBo6+ZsoMDYBwfUEQbotSfjlVWHXhwdRwIotJc6vOuFhsAlHd8LV/CkJuiNIhDifQG7Xg8Tz+W2YRE6EeqzWsjETEtKLv237bxlmH7NFWomw4i4mdZ/2kLsMzGO5krfU1a9CVBptbRABa8PCyxM9NuPg06vniu/P9SZAhPO9n6qt+3UCfONoPFbxRTuPYnYu904EQXEQGCtz3uy9YDnq2i+HOuyAd0+C9H+JQmtYf+nAf3TRoIi2Inrp5e8GruvpVi6kMIU22FT8QOs3x6bQrS4tovKKUabhNQyyYDnaBO7tJwvhabEuxujEvedwUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwSM1yOol3x9JqSZfuo6vWmcbV82SZFD/xq26SlJZ7Hcv0HS0snK2y7zcRaW1S8yD1Dej7edmLEWOIuGu5Tf/qAw==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 19, - "previousBlockHash": "728204DBFA3599B35A2D49023DB9A95583922AB275A73713118CC369758AE9F3", + "previousBlockHash": "A98C93C2CB7A7CEDA59D864B702F0BF7F4D3A8B1B7ECBCE31996ED2056CF146D", "noteCommitment": { "type": "Buffer", - "data": "base64:opuR1UW81Td9a/rAzFlCvqCPh2AIvCBzNCSORxhLJS4=" + "data": "base64:9z7wneIxq3z9uwru4edPeBBb3qyxhwVRVpIGg/Pm/Cg=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:B9+McM1JWx770OSNkAmHRkQDxrdMs35DBBxEMWfuSOw=" + "data": "base64:hsTSbmuYt2opd6O5gY1S1GtL5Keb/72EQbWv+pxayZA=" }, - "target": "8901721527387325021640501403246083674770219928721442032838340535629124", + "target": "8832638235832006345255487785540479806223238799261956268547144109830690", "randomness": "0", - "timestamp": 1708551405839, + "timestamp": 1712340087917, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 21, "work": "0" @@ -3586,25 +3586,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAKINbF5ts2w31z11SPlXqBXa3uDyPY/H6Qnu1REp5leGTzFhmWxkP8A7dqBT3pT3oznAAwvvU/61UfpKIgmzT774Gfx3dCmAwXqwRMVpwJImmhYrPJx8MX5hxRbJxNa5nvJx8gcu2JKTvLR2cHqNx+y60tWENmXFrHfkkRwlHdv0IxcC455S6MAwrwVGk8YVSXBcoTTJJhMWjln5DC+sHbqj46z7oULUiN0W94FWN75yDsqBMOYmJFvdQJojG1n/x/2ftiSIgsGegQUEaxqXe7vfYopmRMVpZW3WiSkzrNNFaY9NEUR2ajnKuEfFI62JCiR/w6ptJCg0QEuCxf4gNj7GIhFG4yhowG5Tq7wflwUDCvP/mQBMzCqMhFDRqw+oGlbeRjrC/rxvsxE4zO+b8w2rGn5T5fRWGSExta40wPoECiTLWg5HCC09RqUYw/Np+TwcYuH+0DniGGRuxevIlWTHI3pjy2aUG5dhJpzR33pHvpP/FT27NmrPk8BjHanyxKcgy18sScx40wQ/gpsUKKQMelmIaRSsTU52f0UKwe6iNohW16Alc62JsbWLww8GQ7JQVjxBS75wnoDbY4tNq6/JdfM1jL1SmqE1qZhmM2WUELHb2ThIsfklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwDhBL/7rQVg0MUoNbhdGAxGSm010nXSA6/KJT751XCVXzwqelfh193btJKJDXr1Lj/3WvRTVEf1befrjaMhJ8Bw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA1Otur5Um1HPWi5a0mwf9bmy7w/00tDMYBQnS3J7QgD+Uses1amCUtWnPE8LFvCdrcaadsCEQfrXV9iFEQU9JzrKpMkQyPJE5SXykmvrhRXqBQtRtzobJCQxMFlIU/XsrDUdB/BDsLqn4ztks33tyScw10ZEfvMcYFvtHzeuv70cDFgqua4m3S/G1qc1SRWgnDn8ri1nyOkjzLHcUqu21bKWniWqZFK5SsPv+tIrViJeC2K6awOM5HxcQT7lRa1Dcrul+couy0mKrI1KcpyEbVNFtoWXaMkQhwwniWK4mYlb4AehgG/jiru4q0cyzfgOytVST6pg7W+tZaGiGS1RlDNnr+MyfFqslQ6TFUKQxBWFhDIXYx7uJeTreSTa73T0+Mg/tdvtAd76ecHuRwoO9C5YUxZnb+UtoqyE0aw+9LQ4GKW2qrgaAEUlAbapZPTTopW4zOLoUVZaWLlmq7iiTLYTeYUgFm9TCQwDyNhPQKD+tlHDERePqR3uuPM9WINHBlRpBYLgw80No/k8q3Yq4lS8PXbBKNADh01Xej67FJFbb2sTGzcshSxPIYvgHEkDTtcuippusqLEbd+mHWNdQ3crpT1oGexQ1N3dJBj5dUrh/WUrkq/QIEUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwwNe9GbUcqzoQCu2++DHH1ieXnHp3rH67dP69MPuMqj/XTk6q5jL5ef9rDNbmi4eVcxBlX295hXzkeD7yULyBDA==" } ] }, { "header": { "sequence": 20, - "previousBlockHash": "B42375E269F19B21EC8B6A436CC804832439239BDD28EEA2C5A975DFB06B6B90", + "previousBlockHash": "CDE058E83ACB97515487B0EB517FAA79FD02DF76AA56951C64424EE218D05416", "noteCommitment": { "type": "Buffer", - "data": "base64:3627IacH3a90C2NxrVj+cpeil9WyprShDRRmFBPF3i4=" + "data": "base64:T1w5mlnvLvil7Cd5Z1nn+gljGmLlqmRx7QqktZAJeA0=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:P25VLlJzhEzmmHMlWDcjxyMZe4HwZIIqyxiZW0Mz9cM=" + "data": "base64:n6daCPd/CrxWMdvS7Wftta15tG/s4cr1/v+R9pFY61U=" }, - "target": "8875720405312105632854963580514600664810046581218394971511634925717725", + "target": "8806837587573645968289794947046443334949043462327628529247207631647116", "randomness": "0", - "timestamp": 1708551410671, + "timestamp": 1712340089495, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 24, "work": "0" @@ -3612,29 +3612,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq2vKiP////8AAAAAQkXbe4Z7ZR3qbYZPzmo+ISTnjZ3kD4y9n4P57QbJ96qgA4fxipO3/YeiX/vqbk0eHuiA4l9E4Tbjj7fyMr/VSxIu5sot7G6U6KOjZ1lJ91aRVlQKluC+rhVSIduZI3vb4djUdEITOn9ncxoCYv8hL1KWdr9vV7AiZrqfBo4k8K4UAYlcqqrT5ankj0tQ3TqbkSWWh2/ZtxseGvRbVIoOAkymNQVteBBr4Jp27L2KsCqldH1twMtfY6blcNnEZVp+6teqQt236y4rVK14EGqEaxSh2CQ0xS0taOW4cu0XsH0LyNv7IoqzvpSpB5I68LVN1HGTj/K0aWQuj8DLF/E1zBVsxdJWQjqgmJUyhwQH6NxqsJ/H6v6vvK9foe8vs1FNmeAWANSzdv+L4x3Jycazi9zOpy0y+sjoYa06A2u1BPIKHou/vhJUKOhAnCMbGz/LiTy/dHBwI3UBGq780FRiP667AAAdqgFF3EKWTwuVl5COQu+MlsFyUftBiAJY0BUeNh2r6deozh2t6+yyL6evWr8EVoNS/lYQe+5Ey+PUyRRVM2FH2qL8XTtUEGLCD04F40bWzo0H7zy5xIc0y4CmQollbcuroKIUBCJUwZMbnSoM1RLoTCZS6Elyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCbjZofKLjMS8wWHX6nP4zbnZ6dC/Gecmxn5WbdDfRiO3TZDFa2KGpVaCs9KyNKGqCXnJCNkYf75jGOlnhBeNAg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq2vKiP////8AAAAAO05s1npYZm1O4o20qjSfcVgeV4V2LRkGuEskacGNdduZzuWwdmbICDKF3X1pKfKkBx/wqg0axv0TUM2KvNVFgbcBlReZteSxife6ds9UqlKPO9SmgC+qHTw4U0tkDs6+MXT6SW9tOEqsGwG/8STcPb/RM1azGu90qeO4bGcQ5ToGJYjvsrayCqSR7YdA5/C31mc5acRrZbUWqtJvqTrsVe9mNBS0zpdhBXUZwT0LxVqk55EKJ9V3q9rhHo1677blG3mAewDqMFbKOwz56PdVslKHYaUStDagYA7gR9uGaWUJmO9Ixg+bq9wq4xHgQhZ3kFtnt8BmI4mqIGrCtt8MGKdp7txKRZ0J+6d0LN/xjZOQPVND1bAmi5ADoADDThQG7++0jVlpvnXwYQNlGOOsC7GHWCoqfc60ZUl21bRuZsp89Gq3finI9/7cRkx062MfyOYlnM2l6vDInUq699QSfkgYpgEtt1EApwCZV5Wdr+knYH6MRn/TQ+oiXO4Cr3tfCZSWXJol9vawHoRj8a6T7DZ19mUxTMQZo39Bty7aAuAc84SpFfvtbTEsqcdxNUN8aJG0+LUNAui4tzW0pX9s62d3VRlOiUt7CKYfT7//Z0nx1cOIKygm7Elyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwrO0ddBHBd2YnxgfCBw2kJ+fp32Cc6xULPjPJQniLgXP0UOFDQ7RohZuHdPexhTbPxN7iuHhV/5e+2tP3OH1yCQ==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 20, - "previousBlockHash": "B42375E269F19B21EC8B6A436CC804832439239BDD28EEA2C5A975DFB06B6B90", + "previousBlockHash": "CDE058E83ACB97515487B0EB517FAA79FD02DF76AA56951C64424EE218D05416", "noteCommitment": { "type": "Buffer", - "data": "base64:fdGZNN80CObJQ0M6eQuNGo3KBl+y0fAxrLi55lhNWTA=" + "data": "base64:pC8rczGGlLtl1tHg/aMEBoHl7b4LLXyw2Kwl/AJ9kDg=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:vnAP0VNOtNzt11xBFar1DRVdHDp3J6QIh+Y7L4wweCU=" + "data": "base64:EZvJgpU4AVF789iB1sIm04h9EUvrVCl6JBb9Sm3skFc=" }, - "target": "8880043372336836109947891367769491136702498427913322097761200701303947", + "target": "8806837587573645968289794947046443334949043462327628529247207631647116", "randomness": "0", - "timestamp": 1708551411457, + "timestamp": 1712340089791, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 22, "work": "0" @@ -3642,25 +3642,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAqCVp7VhmSD1I7LZXcMgG3oOpJpR+k3qJh/5VvJMa8e24kF/2pz31hM2Ofe8RGcgxCqP0Ene4JKg19SnjsPkKtgkTL+XAOUhueG1cyWXdOsutz8xOoK/xokCkgNkJXQl0GT2X4179GYp1V5tJL2xG/06Us/6o+OeYL1gGZqHkK9gJgPKqnTe8LgPcTkxHa3xe9ciUi5icIZxZKZX7eQvuKouoJnTBaR1T2KCSS3HLf5Sk2XP2V0muMLV/YfvZQVJncWNnnJaxBkkSqYibuEi2zh98yZjRjJrSaNzBewFVBbdQ/BsyszeKoBP23HRm6+cNAocQs6PV81pjzVtlmp3aFKnf/7DCQH+GGvELVryBTPbfBOes7aeV9M0AfsvlpUg3M5xnV6+ZQoKH9ESIUQI8IeF8KZODrnZSEcb7su2fiVoI73pUV7wvHPATa/oHBJxW/W+5ddBdlBBvhTKwW45WFt8T7E+L7WjYsim4A/xPLd72friZnpSnOT2y8JQOaey/iUc77NdPqRFS7Gw2vmXDOWg36OfFtgXoHvEYHRB79oXkCK19QhJ9QWLxQ20xsoVhTJv/GVgM1G7QGZ3PD85OBcXxEJLbGmFQGuLS2mwvNklEn0BfuvMIMUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwEnbBmGWPIEaPusA746tuAQjDnFQNyiwBU1YEM1gb2cPfRxkthZpnMm+SfMydoq+4dlQrFpJC5SOXhaxjHRM/Aw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAAfXT3qI9GxYCOKJC83no1i3qW1Pih8HMFGx+h9Jgz622H304JF5VFi0NTgFNHJfdvSsM87iwmdO6p19oKWhPkxa+YxQvt41ivxSqc3iARUCH7gD/fSdI/H4sHG+VDFtkdLzLMv2QANAP3MHp2f3hy1m6H4SO0t40UFHQuu/GcKwPpYfdqn+l3weZiyncMUgCm3QTYppRMNb0Gf3nx8Yg8TpVr9od2kqVTR6k6yo+wTCp1OKm90W5oeI9yp7U8Kwy7GKSWTWKKRugoqhN4JNAs4SSHey0htrX13BMZV6/vTKiSC0cPHDYP5iOhtRbdY6xzRTTrd74RvnruuO1adz931WAQXwQngWPFkfn2Z012cXA6z75nTOn/f5d6fmjwnVCtP6oA7WCd38LncppctP8NgYdzcedCqAkWP+IiLtEyeuheznLg4dKZwPK1Yn7SkofI7luRofccYHpwPeJHQ5thJuwOSsp692HFfv9avsKDowBHWmw9D1AfFwOYBGmzzH8i6aj39w+kj1I2T2YvTjCPJq8RErVxwAj5kwRYLPRJx3skZO9ak2ssjLoo4qWsm9WFsNAfInH38PVnOat7qiPrEsFUH6YoZ6j7w1tty5/LHX52RcjvRd8HUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw2WBY9HEB64HEufrRAcnyVF4qf6AK8G5AzRh1GMYqfUANKqX+oRRZzVa5r+MBPwB8dw9g7qq+IJ9iUtEZZ402Cg==" } ] }, { "header": { "sequence": 21, - "previousBlockHash": "FC4C8E5F38D74CB80E366ADED0E0C3EDC8A53DD356A8F4F97F83E2A3AD2F2E7C", + "previousBlockHash": "14AFCEF656F618A2AB313BCF0B1B209392938D0AAAB5C565C525051BC57F5D3F", "noteCommitment": { "type": "Buffer", - "data": "base64:BXvOyGQFvEmeJiLp7EUA6IDi4LEe8KIZiU/rQGlIojs=" + "data": "base64:qg6djndWAzHxTZiceTLfqFOmzfkkt/afCAsu1wEAiTk=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:QNkxb/9E2ZtcPS9HD2WmOJzt8Fu0P2Bck3Lj7N9rsRA=" + "data": "base64:k4zvuP+VzKZuQ0ryMv4VYtxCtkQlHpI9WDexXSd+258=" }, - "target": "8854107618349670871067508619480574599979567228268567562867891818957765", + "target": "8781115310997558518117481225761207709805261647765293420725119725409349", "randomness": "0", - "timestamp": 1708551416264, + "timestamp": 1712340091388, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 25, "work": "0" @@ -3668,29 +3668,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwGvKiP////8AAAAANPujqytdtrxhVRTus+NaDS3Q5Q1MMhfi5SmTzhs+04eOeKdGqyAsolbpxvk9FhsD/K6ao6eDUF3LDe8n1/gGjHZX2WrsEz54ROmw3p3ENjeR5GRUq8jvoNsLd0rANiRI0iMFvIQX4IxzoT12+9WrVEY7CXCRE9be45qne6NTTVIRQm6fCaKOKIkYLWF9klxTyoIgA1Wg6LZjLH+pqXhfYbtKGERg8QER5m5ZVttrApGwmrmL9hDwg6B1ubcaZjNs/1ssPCT13XU+fO20uGrt+3EjN7pAfbx+lppXYnJT3WLKzilLGumVEBFL5jcyOP9WZgrPMOoqbNpOnbQzFovtn5sxOwU8ddrv00OSzabxaqLS82ymUNZ1/qbVn9toYeYFDVIo5zFX7F0/5nF/voYrwtYAoP10D5UddkTA+qYsD5TsGuYfiEf4ZNrskrPd9riJJ2fPZaqCoygW2F1kaj89iLpukMNK3d4ztc8ZXzMgg1y1GLayjF5JPT8dXD9MEy4x4q3uLddO8ekysdmukOxn7TTwtWVfY9pR0+yjYlgz1E/hu3VAhBRNYtgYsxDNTGAqnJRTLOPJZ7WcXYkEu75HPAZF+xGE/+MvLY2X68J6y7GbBYGBYdbZGUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwDfintg3u+ygrQwboQAvFF2Ieehp3RdGgjevCo36INQV04YkI8dweGz2YG6jvVgROG9ssgIO2KfdloMQc0SyABw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwGvKiP////8AAAAAKVQZaDKU77gUWe6Gdo8B5fkZJuZKrmgnM+tPRWitr+OmavEUFqnAi/TF5+dcSTqymiVrXERNBPMX3Z94zbgyfuA5pefjupxzE0ZZZFFpn4eRxI9Ejehs9POwBav+dtWVk+ay9fZqGc0by53Ep1ZuteG4SAwGf2dlVWOmaCVxNEATJlNfQ6SI5FgpEKwFRs8JphK11JC91q8RBlMd+IIS8NobzXfwramwuihHgVwn8me1GLOeVC65DK7kpS6OmhtiHTeitUchCW7Fe5Hd13FTqboCtEh1HyaGcskHEVNxfYAwQVZLvsBm7/V5oX5Ag5NWjb/QKOpAkZFjQH6+wrbIwl7M56SGkwnhX5vkz4cd8Dwpi3gi7PySTuQe0Aq3AZspYvl/V67rjg93z34X+DqLe3T3bmt/vi1pw6yQDQzFtqV7pFndUQ/qPvj6ygk/7e16AAfK0iho0RwwRu6Fkx1B1VEAs7pjITg/LqIvUXrmxm+xuLlSe+4pR3xDYoGsrkHUKuFvb5a/v4OKV+i/OSdiwtJFrAkjDwsUub+RSFU1Ci6vB6B4/5c97CdBfTjXgk2OyEWS4sWMGNhAXrY2mMWs+dk99a8Y97WebkDOCNefRjaKAnRA0REbw0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwjpCAsvFtrfHro2HHfcJo19Q2TjCzwPtwyT35nvwx/HJRhhaVwDnbpsLNJzWmVD8g1QANeOquFhWMbDxCMmlUBw==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64:AQEAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAATjsg1xQfpBbjEclkGA+1+1uEftiU5YlNEhUUGueg/+uNNbiTT8MBoeA4RY97Q1oIsl4UWsPz9MpdC82rEveDO5Q/Eg9lrwMEH3TKqXJ7YxWN7c2F37IkUlOjcFnygtjvE5TLo93BlyYKSUm1b3F/zm8gOP/uKVQFXW7JImo6cx4Ub7H+8RGpVbUAkZfrII1yCoQWLnSiIcvZXlouEW6FxoJwQsqGO459VtER0QsdemGgxNHQPi8NKL+1H0QApus8Pm3cUiDBKy5zF03UW2YnVpwzKKaAhQGz/xHiWnfU4MfSolme/QU+cEc9+ViM4+qBw5+slrqsBiunDYh/nwgN0aQvK3MxhpS7ZdbR4P2jBAaB5e2+Cy18sNisJfwCfZA4FgAAAKpZ7ykW9cwGZTZk3wL/ZktMJGjECdR8mGmiWM9ckXa3altTMhYGuBk3lCeMOrTwgBpOa/8FpEIjMzs5xOW+fzpblzsY4XBbT1fMNUJD7/FkulxaPK/K91nI+5RjrPFxDrWyKJkA0kJtAQcCyDj5ooigze1HWSXB2KDHEvOjUMrFSxiICGt5T6NRzI4t8vW+x5bDUO9WEkm7laT+Q+4k0X0adJteT5MjZvmqf2mTBuWQdyaPK2K/f7sF9MQaklG/thJGV3BOLvp3LsjOJggTvYaGv3SW2lDsm6gred41SVXh47pgkAglv0Wfd2Yktd9UwJZklYLv2kAgA7EfgSDRYsdabHRgOL0jGRxzyWfzgwmhPu6XH+qepTyI/f2jv8ME+IrBd+Y6esQyrL/s2In5TuNySt5du4xICidfQajmKRakbnyMiXV73wukz5M9rH6WwvTEUWpezrbsPe5Rl+uL7F1OyPqRDxMfBTuQYjvQ9tR18WUorovPTpXzU/RYFQ2lPinFEyEQgXUF7AG3LsMQelzA2YTD6/zwTHR0D1U/o2X9guP0ndMm0SoD5+8FKSNatIuMVQtGqZlAoBqOQSNjp7plkcD6v7aoOJkHU5qaNdjYeVO8uLL4h4mhmlgUEqUiUwNFjbyaDCSJll8/cP+0WJH6b01F7ulRsWhtsQsxrCVPTdyHDVoEmO7axB2DyxCwlaJkubRAjuq8pC+gpPQVAwm2/rEovk4MhhsqkuJ7LLB/KVgqO0K4hthZ1fouvrMtkyp1IfFESd6pt7wFuAAXTf9ShVsjFkaP9HH26sl7XcInQc0ogMSIERC0HCWfogV2A/6EmBgcldDwllreBgQoaRI6PfuHc3G0g6UFeul8QEuETQZiY5JKFkaFVgfQL45azJ0m1aE7WGsrUjgyW0HiCM+hEBoaCLTn6W96Drz9fOWQgeMEWgJdD60Yb8N1SYXVLTBgjSFbISEvwNy2YJJ62onBvltj000DKwZW46vbHdTceoAjlH4Q4BWEThYW79tVmhnzDCShHNsO8EzR924xKSkp0qetwzFvnQVtb9aQRBjBPulaFrmSAdaYtPhcICtdcE22IWXxqGqK2Yn0C5JXUQJxwuhmPmMqE5p1YyCdp9y0bzrZXCgaIXtu4GoTCpn9q+cW1OFcfDhIhTXTj9d/ndUnhkE/sypU2lWxfvu1HFo5P8WcXOjyiQ1Sr5GhpA80glZ3ej9hY726GjCz9WrXlm24egFCbMsizyEpNHYvqxYX9/mSTbhJFcXYnsTY9AyLcmAvbyaUJdVajZW3ZVPK8O4nLxciZbFGyefP2/n+sYNrqzJHR4VYpovosVhdhOrTtNb1/oAwKgZTlnCUuIWr9jaiu0xZIOEZlRs85JnzQuBDyH3VvrLTncUXi2gIF9pCbp+Hq4NNP37NAQtnbLZq/5Id/V8Bc1Bb/+5d3BTifM41yjLqJpXNiKM0VQNOGGP8Ckt6APgjIrofGFZUjuPZdjQRfrzEpwe7cokgI/KnAldFDaE99P67zjylAsJ7cdtCCvMy4pJu05cyVYc4BtfHkhzhjqKAmbxt1KXRuBhW9bUv+PVx/azGvrSITf0p1mE3Aw==" } ] }, { "header": { "sequence": 21, - "previousBlockHash": "FC4C8E5F38D74CB80E366ADED0E0C3EDC8A53DD356A8F4F97F83E2A3AD2F2E7C", + "previousBlockHash": "14AFCEF656F618A2AB313BCF0B1B209392938D0AAAB5C565C525051BC57F5D3F", "noteCommitment": { "type": "Buffer", - "data": "base64:JFxCr8sxAljf98mj0HSIozlztyRfT0S7r2wnAEarRDM=" + "data": "base64:4ukNNuQYarndBDWBU8PF6CqbLxJQpTjH5nLk0zQSHiM=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:QdRgKu5IX9LmJEB2sUIhKfAsMpL9OvIOec6VpQ5n5QE=" + "data": "base64:TG2BMefBuqwc/MErmisMBrRV4nCNbzVpJXAUBgs5NVo=" }, - "target": "8858419718056268381602344000733195841465835427901656870185876113797704", + "target": "8781115310997558518117481225761207709805261647765293420725119725409349", "randomness": "0", - "timestamp": 1708551417517, + "timestamp": 1712340091680, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 23, "work": "0" @@ -3698,25 +3698,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAqFBABXXtPBIKXw75Jltivqet2tLIaPBc8S6bst+WUBuqXpxfBFWkcval0B+bwTleRppYHCD7tVQ+qm51gRLjHPQA3TTD9DDvJyC3dzLs+yStSHs08JATStt5h7EDx6KZpxVqcQm0P0QeKPrRh2QxCO/9owWajS23nd8rM+LnrzMBvLXeKlKKRAPHw8PUWR1GRdBSDFZqIMWTBKi/hrqDW38u4I5077Zl+RYNoM4LXo6Np19gLdZl2bHdMfdDAT9WEXnrEbbzCZz0k/hE+evtkkQ0giAMKaafm+4C4LGlbrhcYHemvrYbOGiRT9yX9u8gRfkstDOAu/cVOECt+tg73TlxYOfWz0Fc4tp1R2KBY05eQkLhVUe8Yg4VbXGurxZR19MspEzEz0iXS37RqAtCySRiJnYg46F12sRqvtYPG6l/sR/YHOfHgBR+ego/8UGYVHd3ChdPqapVyOI56RXNIGhk0e8Y1ncaFAUcY+cFeuNYe15yD5jSWjTziwYdmonJyRC3ggBGU5UO+J9Z7EBKSQDE1xGG9K8/NrY2fwMR94+Njv8TXLS8XztFbprNHQOeedWYFc0F/YqMxM5UmZZ1EELrVhhgXPh0NktSbeLCKpURdiexrY9Ay0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwVpUX5h8C1Qi7gTCOZ8qaWT4zzB8CaSqLEwGuGl92OVvq/1KGmZx+3XcUsRQkaYWphnZY3tJU7BaqnotjlR3fCA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA+8rKp4HjmSZj8icZFSa7PTyvMFiagp36KWsnLKw0f0eoJMGU6EraPBY40/t0l5i7hUR+QWN3Tb6Ce9lN6MZTE6jLpByX4pQQJLuJ5faCliC1LQOE7RnTZD9WFzxNRSmlvrGG6d8tn3A9yCOOUEZw9SmNgluiTrfo0an2wmSv3mkICUpMuWis2MwaDIUZgCI8iE66Cxangb2UpepC509B73SYFQZj7maqJxFHxXxDjV+qcRNT7JeV8IWYJVhflk1It8orEMdpnAVh5xiTFOrYM+S7+nXz5Rdv0bGLpNR903mhXBQbelQgTokED8IxBUlPJRKTOlTnJ9yyJWcGvRKf65PH9yYgwu3eBzK3Oeyx68U5clt7BCzTWR3F4GpHyUtUZoreK1Ahruk3ULjza+/htHCZ2fLOt/KKnClW5leQ8hWHY1Fp+RvsFs6pvdFffvkfbpR/w13ig8i0lLVMFSVVLkeT6DlZUpQrJqCmir5CemuPnJPzrSmYaxy7dykrlB1RFLfqmpM6iGG7c6a1F+wPfdVVhMmjwOTOIZDVJNFKWOaIcIY9naCX+9UQGjnO3g4hu6t4ley53+g1QYExOYhTYq+MijXCgzpva0rydRMKpfotqDhRiKHWSElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwPCBnEZZOblToqEbjHy2nhjwUZpn++wdwitxB7I2WdSheXiF7xOy+QxdODoBJc8lxNCL/47MGVXSV4HvFGysiBQ==" } ] }, { "header": { "sequence": 22, - "previousBlockHash": "CD75498D2B3317B7EAB5B2B05FB26FC2022D7E7DC7AB69211F2DB26CADBE467C", + "previousBlockHash": "54826A79D53AC77536A3F3FB23BE936AFC80CB6C1541D71F603D2D6B6FC1DEB8", "noteCommitment": { "type": "Buffer", - "data": "base64:2MJQVjSb2sLe0zignUuH4D07e/oA8zbSwVHNeBecA0E=" + "data": "base64:Xy/nuSb329SQkFb/IBJXw8jEAXC3hN707FMjSQGJlzs=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:ypRsqFvqvWWsqxO1LEUBVUb9mhra2/LxKKm9+0bArl8=" + "data": "base64:D5TfXcBfGMB8EHcLTJBf+elWrtwghqvW+YYAMOPjmTs=" }, - "target": "8832545258621793515429251742959332721466411354519914863050922568825570", + "target": "8755467379369786751511100695561877622057510917153296026504836025501861", "randomness": "0", - "timestamp": 1708551421637, + "timestamp": 1712340093155, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 26, "work": "0" @@ -3724,29 +3724,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7WvKiP////8AAAAAzhz7qn3p5Q44Of4hLq9ihxv6x0HwoB3RG4YzV87xQ9CDjP5ZAR88bHl37cvF6ur5rVNFxQe/xgAF6iRhRW5xwYjeGkGLXfaewt60IbWTiPOD9r+m4Sb8CFxCqAC/t4+fWKhISXLlv9DUKurDhOjCbJvLrHJz5x/acmaIW4ULFLwEYNeXG79Gh43TwX55tho1sV/W6QOPlIGX/++697N1B+gDem/dknauIc1CFzyaD9GmVgjc4NozbCbYySIvtv7t22nDpZ5cIMvKGNrLtprO/Yuea5QfatgYJZC2KpG7sY0XffDuJ0UvgNMcVQsIiLmPiNqR9IGM13I3zL96N4YUSfpgLDMlWqQa4Yn4Ilt5ZT8bHExfE0wIAIrNJOUzos5Vxa7tmbpX56qXPwAI2PX7YRNU0c0u48+FPBhZ8bQw8ANLN5bMrQVCP4tqFMrrWAXl+hPz3L9baEwHVZVdDb7T1XqjE4ziAG+1LsRpBHU946j6pzR+fQIq09ECUUVUHVTMahqwwMOwEi/VqcTrHv1IJ3KniXzTpFSw/rV82wIRVLLnpPZs1RzIna19T4Ocu9OBbta+zEmL27UHtGnldWepaRqc8O61/VIQm95X2Adn4utpIohZiP82Lklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw4dXDehwcV2c7QvD7Nb1w+PQOpHkyC4JoIGWKEUatyYhr+Ouw5KzqfuraFGIMEWLNlumf37eTvCDBy7p420NCCw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7WvKiP////8AAAAA3xT6emgxJo4R5oInhUwGHOk3SHde9hkCGK/9GlQi8zyKWj23fKTfemQS/3+RKrqWong3Q8NvLVv31l+DHc+6AOBL4asdAbQjWMfQXOpSUTOXlh0TasdffgGGxByIpRqgzCra5U0d4JJ65scFt1/Q2Fn/lQEI4TrAW5RHVgJLImgEXXHJa5QrY6SlIqEp+LVxTKr89m0SMQGeZ8kC15DaXEK9QcvjbItibVB4dl/ZrAeyEEW7L6hAH9/r8vd/K+Zktl52QcMelzhZ7PoOHIt2PNM0DF5difIHLmm3nkEPO0dUjjiLrcE4D5KoH29XsP6/rcj++9TX4fPawa1rOYx3GyZbJRGEwrZBXH6iQoFe6U3fT8CNFdalj6UvWB4lEcFx+PFtJlGJUmXJcCpl6bZc2Jd4vJfXlC4cQFhomMZAU5Yun4TbU4U7VPWy+k61hyiwqQrMzL8phqGyDX6iTDXg+JAQhaSfP3a/z9YTZPi4fMlGyKuMOsjXr/kN1slJ7bSIYaCNknyILbjugnny0IUwN7u345DF388xu6yb+ZnubV9a2iBMTH8ME4qf2jyTp0Mi70vAnzNUTK31lvHDhic45OqdVRl86PJUaZcdaOgU8+jgMVjcoidFpUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwk0eOvU5im5mlglGkAqp7u4g5GdPPqiosAIkd3yr77FGzqC0B4mv8WvNCQPCF/8JUEznl1KnfwfnQjLXYZdjLDA==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 22, - "previousBlockHash": "CD75498D2B3317B7EAB5B2B05FB26FC2022D7E7DC7AB69211F2DB26CADBE467C", + "previousBlockHash": "54826A79D53AC77536A3F3FB23BE936AFC80CB6C1541D71F603D2D6B6FC1DEB8", "noteCommitment": { "type": "Buffer", - "data": "base64:94tmTO6VIL1Mwt1PkQO5YiLrTrQBw+JhnGQ/C1eFVWc=" + "data": "base64:pKV+aJi+kTKEL0GBs2jSDMgscp/qJcacAArG0CsKfWU=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:LxZ1D7CMmw/Es/mHZYlqCQv9v4xb8TWgaZrmt5HaPQ4=" + "data": "base64:krz5tMDVZD526/CG1mwUkXHL3jcegkWwrkW2FC//kLQ=" }, - "target": "8836847166690059869041721545254075786046228619026998491791899553434992", + "target": "8755467379369786751511100695561877622057510917153296026504836025501861", "randomness": "0", - "timestamp": 1708551422963, + "timestamp": 1712340093447, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 24, "work": "0" @@ -3754,25 +3754,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAyVcpMH8jWSiJLeekOmts5iJVLqJFwIAkM14VGAEsroeDWO3xpY2dDVK1UVnxdbhusbwi6tkrzrOuiG6tC+MUvFxtdX/N5EfXgENsyIfg5mGDGZedwjK4bdKLNG7e2ZK2+VEHIxurSfz1VtL4+SILHb+Y3QKGvQxNpqATLnfRWbMQO51TEZ+Y0/Lxl3omaIGoW9kGduN2qls+2X/BBC3VG7hM1RZx9ri7WZDnVvdXZI60x4orV3ZCNVLnX1Bf3WznnnbvoBLr4J4/f830gGaAxtS9ehqK0ZMYiDDYI0SUy1hxBSLYyf12eMbAdWRIGjpiAw0j+UYJ9ioGn7DUlB2IJgf8xQeKXttDBGwwHbq2JbdURZr6BIs3reAFyWlKok9synsqF7o27jtwSGLTVprmQkV0kLYsSgcnYlJrnoZJM6aUm/44gmsq7jxorEI854wMGGmLthGt9pujE63y4WB6FuCWrbTc1tAnGe2N0ovrJEAXDAPxT0ulKV+Jgy1KKoauR6951w7Ewvx+nxsXepzcz++nVIwZOhTpqmDjE/LZJTX3DpdhwhtUPgI7sQdUFlqciZLXpPUfQ1bMkcn4kUcNhHB0BONKk1ljO209X3eMTAUBoC1YozKp/klyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwWbLsGiYmUwO543OkjqMQUj5VqnaHk/KpbpAN21QtzmTw+a1+CTqXeLUEEqZPRsei9kwaVNciJWlnXZS+U4n8CA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAj7ekcCwOJcWUK0at46t4TCPP8/x0dzm3AoynTr4geCuoNMipnOa2OvqbVL2McfSIL89/mgTymq3R5kwYnUbdLoU0TL5FW5DMJV/OfJMhDxyqkwJByIWz0jRgsuw/hikulsW8pEXUPE+t9UTvn5UCa7Z5PQ0O9LWB7Vy/876UdXUKD1CRfT23NPLHAxChdM6rO58Pv8khIMWBBFQz14JDhtaK/7ot5p/GxL/AnHu+JDeuoYeVqY8DXybxBBoaGBgkuEbwbFsZnrj1Wxg4491LX20eTj4Dg/B2oePCe/OG3xUc3y6mfMIsbWXNROIoTGrJLPPEbcKYsrou0/vc1oBHDXvXeLGpHmmSz2Ux6ZFAgfrD99PQm9ExjTepYTgxnJVFWFMbtUNhfeebSpnB2kj3IzHZFIrXIjWUlDN8VV4RPcshgwimTI37qXbcCjsdNfcW9mmBfFfmbVGHYow4x8QhZIIdYF62daqpLDoCruRiGTIc9sNT12e7NG8fbyPIH22upLiswQ7HA/DUxuhkXYfJi8/yv0xVjx7FiRjAbF6jLGHZ5QGGgysAxkiQ/Lv6wwTe/bUilGAClDgQomilqVLi8W5xL84RT61rBjnMne/anIexGS/tI/c0G0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw+7UWPvCRPot6xfyY81N8rJxD7sTuuq4BVHJwLgIqMyUCpQU0+ys+v/NVLOW1NDfk9Y0mLBfPfQg1I6l6kE/iCA==" } ] }, { "header": { "sequence": 23, - "previousBlockHash": "D9386F22B3CF26CDD4C8806BD54D2FB310B86896D563015002E4F1FA7F08D531", + "previousBlockHash": "427A982AB1298E34F97BDC935076A63E9AF73F96249634C3069B801022EC6522", "noteCommitment": { "type": "Buffer", - "data": "base64:ZexK6nM4gmk7u7F8KePYt+lQqp1TQgBm6qnAeg8hCm4=" + "data": "base64:VNeHhCpw0VhgJJmuS9S7V3Bw4G7O65IRMCZQyK8FzAQ=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:3fOkNgucQxRG8XNOcSUvhHP7MF0c+Q9VPzZ7wtMCmBE=" + "data": "base64:sx/sF7QvLIuRj0yw4DKJt27rvOz27wnyWDBjlXRoooY=" }, - "target": "8811034027777213491601703172713080489597474474459006187431683873801631", + "target": "8729893804466889383902648626319028386402599595113380572431975609506820", "randomness": "0", - "timestamp": 1708551426576, + "timestamp": 1712340094968, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 27, "work": "0" @@ -3780,29 +3780,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwWvKiP////8AAAAAjmlRKcFpqGqyLB6Tk2jjRW5HRkGEcqOq6G6Gt0NApm6RiNSPbcQyAzMlkqJotfY7ImY45o1VFlpIQQICkttiROy8geyxyDhcXa1LtfB5Wb6w1lg2LYDUaav4iv1pa1SkhrkF9TCCH433dV/lrzGFuAq9u3CyxPKiPnyjwTFrnhoAHVH6zG63SyrL2WRqDZqbQfD+umVjK3KyMIGOv5kpZbYCSHNbycP+pc47WbkPO8+XWb+n/S1JVPQkIyxXPFRciozQ0+IKHE2KE/s6kQVcemKEoNM7IHnlu89DiczeOPqkDc/MzsI7MyWcYujk6iuObljSswjhIZnLI5jUywXUEmsDr3vsK9QFM9bcRMmxujZwg3OA8n+ZDXLc9YzEa4RVSxc+NGYuuRIKllyG2VyuaRDoqIrzR5PLGYslK2B4iMkF1ophkxGKwS0dvSPJE8nCcxXC/rUGb719vc/teGKvxmLIalwIBRHCE2i+IIrZQX3ckWmSeLQPEz2qOkD+3Bt/M9KSqOVsnq/2mJCgJLiXMB7WqtqPv5sexPTBRX0kkvXRTMIHjYO21b1LGmlBG1BZhnY8OplPCJGAtPiHlum+j3D5iK5NCLqLZhbylsGD9+3Zfgn8MDO5t0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw8s5/Zs7NaDi9TcLCr3KUzaFs0gocdUa1KyoyRES3zsk4KWXKSO4jNmr//2A3HUmCzGTckuvZLc6qj7yujlj4CQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwWvKiP////8AAAAA+waI+3+ixnQNmRjfvSUugGivVuJedXWDN7zuOHBh/IiWzUSoy+vNviyQTMwVyAuMrGkdjtvd9IpZQZMO1XDbl4Dz+Ct9rvlvEXpQVcoc67SrmdrCQAtbsCzHkdkM13dN0nCT0QTOTbD2WhgOuz6IWDxYr2W8Gopdb5jNxVW5zTsT0nskh0oSqnCf6iODAkE7wcD2ivM2WKAqgzgVGnuEsb6SYo1RwD4Y+4X3ZQdBmwaAgKg0uyns82JJ/Ex4zc7dKPxshq6TBqFj9JxqC7GQY9XpOhj3rZKVRO5NG6BALkyTToHOlqBlAmgbGDf75WHA63GmRrvxmDlNTMqSV++Y0PIVn/qZ2nhBdkWjjWCVoYy9fz5FW4sfuzo3j2HiszUbRVciboGUCku28ogZe/grp6EI2v2SY6/X3w/2qHU8urI3M/S8buHhUMT87s458wOrqGgpE4TozFMAugzHtm5/3znc34744QcnrUxpBC/5hscB3/CISo5FTHAf/q5VoNQXyo+Fy6TvVfhdndYeEeA8TKUfiodAnxSe+R3Ic5yohBu5UiYtpIVjlCKWF1BaWcrQ8yo/gGTdZw1IH816l5pE7oIHTRyFI5qpdznqx8dQGzp79UCUh916CUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMlriOmMNWKMOOnnENPo1kODNBAbHxBg5fLOf2J0OTNIk6mtr9ZirwXk5ZJS1oJm6JsE4NUq4J62o5u2qz+C7Aw==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 23, - "previousBlockHash": "D9386F22B3CF26CDD4C8806BD54D2FB310B86896D563015002E4F1FA7F08D531", + "previousBlockHash": "427A982AB1298E34F97BDC935076A63E9AF73F96249634C3069B801022EC6522", "noteCommitment": { "type": "Buffer", - "data": "base64:91py6bZAscMI7+UR/bgrjD8g0wGW81S9FqtRizIVIkw=" + "data": "base64:xSuWZAAZ5LyYWh5gufo/7wIUS1DXRP3lz/8dGgywpwA=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:emytBGR3hcnHPpH0/9cPkLkNTRphM/+GL6nAugvz3+Y=" + "data": "base64:ZjAZnjnxlOUEGn7Fpe+/RXrb+7VYxBiC+tz8T/TkOEA=" }, - "target": "8811034027777213491601703172713080489597474474459006187431683873801631", + "target": "8729893804466889383902648626319028386402599595113380572431975609506820", "randomness": "0", - "timestamp": 1708551427215, + "timestamp": 1712340095293, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 25, "work": "0" @@ -3810,25 +3810,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAADhui4a3+2Pc/dmQC2NPv8CGm4HgfGp2AQSoiKMbwIg6Y7PFJ0KUW8XLvjZVWqjHjIEGQU7jn+u4E8oHaKkwlgdXM3jKeM9ULN0sC4lEWkf+jhGeS9/aZ3FNws/oH2KL/FsoNZTYn9m8ZK0iZmoZWbFOJXvdMV5a4YqK8C7lzWBcEV2wpvFPwTdczNAIdQokypNOhVoCprqAnQFvoWpRP7ZjdNtWS5//vL0D6PBecqmmIHi8aX5ozttOdn7ONV2fezsdoigFiLHZyLN/ILhvkfWJ96YAzPZ/CUnB/iJ3JSfXLs4dlG7/3zLJ56rsiHA2BmPn2cKsWBUKcgkH8cj0LojYHs34BgJKBlpHtl/+UrxFFXnJKItFDxKyt+zpMHApXktjT+hBuDDbhQa65/eEm0UGiCMXksrlAYcc+LSF65Ig6xn9UDi0+IFcfXRjys56U9AFppfDr0zGurXksoRvn0EFSnEaOPIb7ECKTi1M87QGx1IPsUo9MYcgZ+koE3fvbH62te73KObzN3yyT3OFv7L6tCut11NYip9iRSt4f2/HtIFTbi+akhpDmggHTBKFo4h5lWZz56NkwUxwVhXsFm6uB/3V1g7+icVyFWQaLt0ZdZNxDBiHMLElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjo/kEhnIkCHjSvCuUrL0BZ7KIBZJW0Zeg4yNRVwR2YuBJpSZpX6dJgcty0X/DABen8yIqVq5k+y2cuoyQ78Bg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA9/So9VN2h5pr5ja/NbPZeEZv4n8P3UbfbFwFBVmWcFW1puEwruIxwU/q4jQ/2MXstFWr81WCLMzs8cmFoNA4jWZNgxQxzHqeBdjvWUvww66XCaWPC5/Yye44cLYxZS+f+fAA+VecXe1PyhfMW3UQJ/4nW9r9hhhT2Yd6J8GRUTES4xriUFuVA9LVFxk8J1im+73Ge4HmDl2Q48AiSx/wkYVmnYK1hIigslljnqLnRlylijBAm6w1kPcFCnH/Mb/qgi/g8koF9agDngqvQoEni++TlKmGYMZaUlV51+pphH4MTwdztEGCHGAoeQaYfVCg1UCchEYwTKgVJ9AXKXxF0K2MCF2G+T1KOiUOu/X6kmFz/20+wcFIA0v7THbY3RpcvqxO3sOJXJzMFEMCndkpbfputHscdMx3iYnUX2aN7ei8+ZQFK5s/sEMhLVm9tEP2b4Y9Czj7fxaELVtPcBO0qDks8TFUwzvoAQO6ESM+IJikusAQGuXJ3mWmh+jXZXF2Ii7b3SPK+wCc45TcQwBsA33qwlTDVDberxkFy9OCHRMIF0LnRrgNsfUkFTQlvBwsMGOnOoWVlcgqJoL/ZWAGzlrAmctIEjnkLAmGBcvDLqIMJrltFuLIw0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwuecSx08WhDBvXoIKjC9/1V5onAkQZ/x59+5wZbu6b9hNEnEa3spnONUTtiihStR5xOWSJgyZjlJkPqMeI5ZlBA==" } ] }, { "header": { "sequence": 24, - "previousBlockHash": "6267207B2AE65E6E871CA983DAD50132474D413E3D349CD1B5AD51C690561C9C", + "previousBlockHash": "6B447395EF81286BA6FE7B102A64151D6C7F8C793948B626B88D92CFE59DB643", "noteCommitment": { "type": "Buffer", - "data": "base64:aX2cKUV8pv61QF4F69KGRumNK8p+YPIrVwfmelwU0lc=" + "data": "base64:RxbBF4WXXzOEJl7pdGPHi3pxRPyrSjRSQBBP2J92ZBg=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:QjuVj2zrzpqwRMC2c7Zo4y2zRzRjQDCOi+4CBlLpZgs=" + "data": "base64:IJSfWtHb0/DylAHt5uwpbNCsCBG/TAn4aVkT1efNuEg=" }, - "target": "8785299265893046880404104715227443861157749737344136704912712620505525", + "target": "8704394594105158331845240100494358283922620363062743280353995680875479", "randomness": "0", - "timestamp": 1708551431766, + "timestamp": 1712340096768, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 28, "work": "0" @@ -3836,29 +3836,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnmvKiP////8AAAAA8HqJQhpgwgIhY5ZLmNJUL1xFp89ljhqPEPz2ezJHClC1eOBs2YIIUWp7xskVQoCdCSea4J9gnG4M8TlmHLQpmNHoZChXey3gaSh9ze2fY0OR4URhY4O8zXLeWQfdkB3FG/ojzq3pzVTQ+xsPkIPPbIJb4XDJJ3QK3ko5D9nYkf8XQI2bIJ32Wmv19JLlKiLl57Uj5JqaaTqk5e6fDcr6zDSePJ9DoNodo8WeDVs2+CqO3mCoIbOJ+Tugtn0d/oTB223zlCu1tMx2PRNQyUCYMTL1/dVBWbzQZaMRsOeR07OwEGqtLfsjf1E3yReMThtMkcxng0adX73j5dEaIQKOF6Ovh22Lk2xvmAMDfaLdjIzltPATLRj02a9x46Z/zGluUadRPHjUB1C23Tt961w2VQbMSbnIXsvda9+JfKeePooKD+4ShTDP/+wEn7OZ8XA3VswGydviJozSkRXrF912KJO3I5tMzmoYf1YQ6rMU35moGqzZ7/M/P1bsK9LepmuYNOoIoHfYxutyKPt4kesa3PjnLN3wlKZmuQtPAHI29o2gH70FqmqJ/QzdFXJM0EAkppXzH5P4QjZkzfTz+/IMiW80CJn9bS+35Va1bn8KXD4ocgNpU3AXF0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJ9mqeHGE4JnXYiGq+qTWiTGmiPD3mppyz7UaLK06wi/t0OadUs4X/Nc8KmFh5M9kH3tq/IKygDv0UlxCEI84Aw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnmvKiP////8AAAAAlX8WR87tfySnQMfFayYsCVHobRwsdJ91WTKTUT9bMeii9ifqB3BcT9fYKKQkMpSi2xH4G9mZlVH3duh1SMLhdt5mtANxoGvVAnVXtn53S56ru0Qu17zd91D3wFQg0Tfbxz36vCp3ZSG2PwyTim2Z9/7dVWu3gJJJBjCuOtFz4Z0L11TlGQA8WUiLXqAGrDcVwXBEkBwoDpM7yZBOFDfBsj6j4e4jepSpLrARhBdEQQ6R2Z9zo1bSbZTO4Wq28fuhhxRdjz9b1cpeuD+Me0lMaQldgCb6rqvjKa20Srt1s72B7njzUy60Ul9KttLTWudddwKfN7kIliF69mvyZ8clPvDHjx/zdYbU/D3ntIL+0q2yt436iw5xWX3llkxzqm4DIIzOVeJVXkgMWB8Fy1VN/yClOVLowoMYuG7PicbNXGd5MYnvwg9gZC4Hrqkxjo5ZCA0ZhQE9ESlh+plpuJRF4JEEhrBk1WI+Aqv1H7yv723OCto3CkWVDc83hCCDU5Sb4WbhDv2xuWHOGFZvNkRsm/2AgS8YsiCZisEPzBJOtddRILx+EdkwaxqpuBY2ZKpFIJsP+3as211wExUGk1Ip3+pW1h+C6Y/MxSGrvtiDAaAKfrMkgxbINUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCyG9nT9hMIny85xgGu9EtXs9BOyylLM5V2KY+kcN3BzvsMi7IFJbjrREcn0EU/xaywZzGlosrMx7HgHLJ7xlBw==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 24, - "previousBlockHash": "6267207B2AE65E6E871CA983DAD50132474D413E3D349CD1B5AD51C690561C9C", + "previousBlockHash": "6B447395EF81286BA6FE7B102A64151D6C7F8C793948B626B88D92CFE59DB643", "noteCommitment": { "type": "Buffer", - "data": "base64:FLmxrgtQwN1azwWKK+Jn5DLMJ6f00s+BdJOHkIGIJw4=" + "data": "base64:Q3HNmmjx21HjWVuJAd+JNdQ8CCgwiqBO58b03yPjGig=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:zNk4uD6mIxkKiMKk4J53ttXHGRdphx7/OZJxRkKYzds=" + "data": "base64:f+/4tYux9Nf68Z/skN2gXSDG43jtxtvVUp9XYJ7m5tI=" }, - "target": "8789577948259718910404321261489887260516597167500916139986520512459290", + "target": "8704394594105158331845240100494358283922620363062743280353995680875479", "randomness": "0", - "timestamp": 1708551432811, + "timestamp": 1712340097056, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 26, "work": "0" @@ -3866,25 +3866,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAVr9vlMbgJ5nwGEpEc6Fb80gmrqzFfqe/OUa1JmtqzkqZWJZ8MNHMKcZYKW6Mz/W/YnqRrIZUIEfaOKA0NFjWRZ7wyXs3W4hpzbu88bHEOxetPF17tUE45XkFZjGlrxXi9Drlp5ci6xkJYhLJ7ErxSt5o9RF5sRuuG5H3HCX8HMsBadUI8fZQoFQ8GGeb/ehIIs70kqIGUPXUwCxooqzO+ckree3ZCNkqxOVZUH4mUT2nL386R1cRrSPsNALgQVohqG/h1I/j0N1ZssKY35WIjLXliJRMBnm76Aqx5tDeGT473fIdEzmsOQxJHDeA5/X5defMbkKjOBSF8Uoth2u/HRJW6VVEVQKeU8wFgmWBTBfu9Zey9vZwOGVe1P0/NvlwAoxkNAi95zwX6WB2Mw0bTNRTTA2CrSpZG0TrfxaOic0xJ7eeBofISTTxbUzp1kxknLR6lktOOY5wwhzr8UzaFmF1eiq7SZvCBY29EiTTjdgZmqR3pC64aPjCgOBd1h+2X1MD2HU2lyrMjzM+E96l6W2dDinuMsyV186cOaqVFFoQ4QPSi3uI9XMhDCPR1vdCyhyqGjLtLDOxjEC3eSZlOW1/ZF0O9QqzycGMJngFSEBECjXjT5i7LUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMyiyibdpRr05/wfKgf2FCTbf4YqT+EG9j2AWNgn74IYY5Mzsqz1pKUfLuMtJpENRQ9e25+vB6ZJoLD+l4BgxBQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAQ7JG7j19T/6jI+C38V1UPKLK7bPykrxLkM/xhfyq94uAqZjM8wQbGrl4Bhlg5cxkZUTBU+9JauASsIcO2TMYkVvGnCHM68dEgcSugEwZqWGBPYOe4Ig7mp0qaE86KkmQfK+ZqO0vTH92O0kvXO5BQQcPXjpT6dwr5vITvIpJSc4CGgFMORE70d2paw89q5gbu+IV+Sw16S9Oaw+Z1JS4QDadjdshkNi2Bo51usyaDvuEjW3HxE5xSARzI26sskJ30OJi687pPRTLuprVKFCyGs+j+n4LheAKgRzm9umYqyzZikP4oaCdExY4TqB56JNvC0VGxSQNFo3OHLFFhzgs2AGfI24RHCL8GXmfxGpHYWrpvV4lFcZoFsu7o40tmsM5RNMvjNCqQMVPHc34m3Rgg7vwcNqZ+7f0U13s1yR5HC6dMlXu39o2XZd2/aRQ4kg3nmt8M32r+HLQRR6dBVTCZ+8eYcfaAu+xC09Ao/R6FaqthLn5OhLtLFfgGZ6EI1SRdv2dk7u8Fpiw6i8jdqeQqmWoA3uNG7GWb97dNjd26cMeR2GFm5cwXLLUQ4m3dYMHAjUBcHrTgRW15bd3mKlMZm0hg3y2oDGG85w3VzdUeeMnZy2OmBjTsElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw7WNKpF3O9NauHonISuAF0KV0ydpy/HRfdwiI3yJeMkUIqmkY7StPoSZ8iDV78AXXoFgqeAqI9I6o1EEM3A8KBw==" } ] }, { "header": { "sequence": 25, - "previousBlockHash": "4BA334E4CD4CAE64EB4DB2441DB59CD9AE3C37390C71F26A4A4A5C5111E7A4D1", + "previousBlockHash": "5B7C8C016B12A86999CF76BE923C3EA75F56352D7BD2D6248E4D874426C0D8B5", "noteCommitment": { "type": "Buffer", - "data": "base64:yl2BpG+ORSsRQHVBcc2VhiZC5lCED+EpaW9AtwdnbQE=" + "data": "base64:b9eLEHU4Hyv/uMsTD2faM1FtiKF51WwAm/JA07QAvC0=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:CuziXhG3VVGj6U0yJjL0dAK+lVhoRNH81ZVLtypVFRs=" + "data": "base64:+3D9F5NP7903f2or0cNcLQ7nd0NXAGPw2a4riQDmTaU=" }, - "target": "8763904508793203243045653147636460806796742440437371723733895150195667", + "target": "8678969752197450563862092467825124040040365562916153478612641911068295", "randomness": "0", - "timestamp": 1708551436254, + "timestamp": 1712340098507, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 29, "work": "0" @@ -3892,29 +3892,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwmvKiP////8AAAAAnYdsNikLLruvXF+5sGxkzn3o03ZmGXuMBLAFi1bGyguzXekPNa4iOL14ggFsQAI8LReEIMg7ViFvrKzSAls0puawRsrA1ynpbYhwhfbUC5CAPF/0qwvEe7RhAGMugB8/d0rroIhEpiQNee0MjOtx7IDmi/xnzaU7MZ0qSn4z+ywUW6mSrDAP78kXWJAAwgdgJLaX8QA+URl0pK9NNxN7zD+WkzXqJhtc7GoYd2XjR2qi4//nmCoW8eF3EL0EqoGYEpiEpo9LhkPLQM3PCkhg6ntjDLlsq0AxkRmIJyunwWMOgfvbKXoz0GTwTZW8TxxZxhy17W+T12D/PD4hF7GNbSF8D/fkM6a3/D+gwxJ9aMbNjrqvOJ7sKKcl40LsKvk+ZqEDGT6ozVNM4oluAdwiixJjCXTVwM4XL0J29tLVEsTSBdDZHFhUS1FM9V5ZEC0q0FzF7wP8oN7UnslQ2n5fcjbZNXNVJI1ugdignL9QFUODIcR8T68STDpuw/HLgyAWojDLVt0nc0eUc3gipo6SzYtNp8zGOGOxsPz6pbi3Gaj/OG1cewgIjmJrLzrEeu/HcIoBAIds49VoNBVLfJBKG+DN85i/OrpYP2W/KJEzpJqG1NGQjgTOSElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwyJbbUjDVwJoSR99WQNCcgYXhCOdkj0D0xKG4atabItJlWgrG8c0wU0UvmjH+JwLXxTsdwdP+Mj9bhUTTnPQOCQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwmvKiP////8AAAAAxSwE4r0EXW+no56t+E67K7i9MBvy4RkvmRDbrqVuRpWkOhI4CXxT6p5F7hnu6DxaLXyPDcOF6gXGqLJb7qkoCYTZkXL1T0V0riadM+xPJHO3eqo2SAHzMWPsXpGFtzcPw/B4mwtHrLBxQdiZQMfqHRrlm7yzq/yd3aMH1UFS9EkCnuzQQ/nBI182pavsOuBIX6fraK0gcV/ymDPFFnca6kCxW0AJ1KFa6zRXv/HaHjqpF4Hzj3zgtn6Hqj9VNmXsKy04/JDp/VQX1d9+E5yxSYr/WvO8335ihEdKldTp/fhHIecmeKnDrLhcm2gdnke7U+PYjdrcH9ooHHGjFrcnO63Y1HIskYZPRHpXD7HEC3qLFYJ+z7f1D4ZD8wAt439B8qqazujJz0NvycEmomlxUMv5kYDvQ9DECcMzSdRhm6CyInY6puicfd9IRzUX7bHEYu5jEJBL6dom3hGYV8XENnou4EBqyJpFP/RTt7m7lXFbf58wBFRRbOqrsglDGiIfjoKNKVKiy1e92741p27Tx3PSicIfTdYFqqDv3P6icIK/gHKyXPgQr9s/z0bx1iLLWgPSLVptvAhoIUJ17PYncRIq+ohcvBhV2W/xjmH3gY6m4pULk98EK0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwEOot1oLwJJfPRL3cEz6y9i179rFq7ou6k3TA6bYtbTFBzAuanhU7X9q8B6y3oNIsuh+9hqGZnZg+iQkhE+XgDQ==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 25, - "previousBlockHash": "4BA334E4CD4CAE64EB4DB2441DB59CD9AE3C37390C71F26A4A4A5C5111E7A4D1", + "previousBlockHash": "5B7C8C016B12A86999CF76BE923C3EA75F56352D7BD2D6248E4D874426C0D8B5", "noteCommitment": { "type": "Buffer", - "data": "base64:DZ7xIfyvbELKq5ka7zlSgZwPuOzJSx4IcThXlfIRZQw=" + "data": "base64:LEMAwioiyjuJcl0uZ0dWOoo+EE/fRlwB0zBpSY7tgUk=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:MtbhdD7TAQSI3G6eHdXIxMCBvaMCPIDl3Glhmg2jt80=" + "data": "base64:CTv9uDmv8/PKLIq5HsBkGWGxngx0u7H2foMRfotlJPQ=" }, - "target": "8763904508793203243045653147636460806796742440437371723733895150195667", + "target": "8678969752197450563862092467825124040040365562916153478612641911068295", "randomness": "0", - "timestamp": 1708551436546, + "timestamp": 1712340098800, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 27, "work": "0" @@ -3922,25 +3922,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAzKWWwFO+uete0D0uYvCrB+nlBLztpCMhD0NY4NyxgLKMIsmyStwTYegovP8i+9Vd1XJ10eQcx/P50/NEw7RDQHYVKpTsEYVJTRuD0NbmPWGCmz80juqqPJiF8bSx5Ouqnm75i7wdw6w4pSNqDIqsawz19wWLmyb2G1+U/WLyPwAQv+btc5tzWfSejFhVN34qsnKwLFzf2aDDJmZ8O15awNcN2xEu7hlzZUPChHwP0ZyqddnbNA4GqTikcDV+22hqrHAUPoPwIBKD3s6WXoWsvjmUYPVEPEkfz1QZ7jHD6SMJc1LSAr67X9S90HZ/KJoKtepvZBQYGferWzAQjBpfOFUWMBMrtrYcztRfTmjInJC6Wp4fW4owPrGq0URDAyVxSOpgrD8lXwy8dhCfqieKs6kDVrVTdrjCLPCKi/Xxtw/w5Z0bBsi7sY1MAdvtZE/XSZjCvGRldnlw7zsXUZcPjOi4ZYt2UjRUSrLLsUBmtwNq09rObX1MO22kKnVCgVPc/pkvM80GVo0AZX9ytkyr4tfE9kBlUC7Xge8Qprhxw9xiLEe+rNd7RJmJVzEp2NZiVEeD1AffRZ9cGiOx3BV+0Q+Mt9McoKVipaEMMa/TE3ktCrngKuDutklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwKDs/I0KJezROEOWEnirjGRYYAaSSTt9pGX9xr7B5LM1hFKLnZimyphKN8G+x24CezLxJhWkaM0A1DI/KRoDRDQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA7NuHEvnY5zWzvNwYkuWOznUwhNanyDNpw17IOTan/WS4OY7BhkK0B66d/RdrRCUuE414pG8+WeQ0QI6n7U8HHnICrpCMrmkHvm5V2yfgAKeJIe+Qj0MfgOgc72zfaJMEbd//nXDE+kXyN/Yp933mQR5VaTablWdpV8bH67Vj4UkYDgLCmMCIdn6wpcClIToXSyarsMIcf2LG4MNURbrp92w5iHtmcs6jk4U4Gnu06eK4YVJ0ShtlGixCFWeMLLhulGhEDXGlZ6nb2PoLxKfmC7cS9glFOT5to0+zdtcPoNKQhhKIZKw2FQVBLjA277nqK5Bb7/33nbDY4gfWOg2m8agR5ZCMdVB7pRRcJtPb9LXS+MgS5502sePv2O9CYqIk/rU/gkN0FvtlBn0Uh0FYWwa7qLXU+yqZ9C1VHP/iqErmRySZUyRENdk62typsbOblWkimwyAbipud/MBn40ey6zvglURKZVx/9yLadKQ1CMZiXIVSobovxl5yOO5VuGhExzYkFx1Sfo9/XPrWjH5S31Gt8iCnOnlTacwjzpfsZ9szx28ZFTNVuSvXP4veVAhvLKYHhNkew6Jf34HHCvSA7eTj7o2FM/69ygT10FiGZPnyFXZLYd8J0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw2EkavyzTTNZglt+q8DiGn4cMvOD8acyXDzCsZyH9Uo4m/OGmweDXH0zJleE0A0dEGrQtIMX+qp4G+kbWvDdOBw==" } ] }, { "header": { "sequence": 26, - "previousBlockHash": "B9B291ED260996B6DCDDA88FDA6144A4848E074FAE5B7FB472F0EFDA5C4C7554", + "previousBlockHash": "EA575A5C0A93078745EF1F9B794D057D4EA2D3B5266DE4CD3EE56D16598BAD7A", "noteCommitment": { "type": "Buffer", - "data": "base64:O3Z9ptXGke6ueKztdHUh9DK0QILJ51p0J4ZP9l65KlE=" + "data": "base64:PTQMU81ISu9AuiKlo/Z7zoD72VyfRtelSmOGZj3keWU=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:7CM9a1Ax6KLZH/fT/lyD2oP04QsnwJfxeIWkeg3KWRI=" + "data": "base64:tf9DiB9XAcBsHGMwUHy/r3yqGm3E/2C2YA+fLRvr/GA=" }, - "target": "8738305434549559796548917252154607926144500744968079916693475828853435", + "target": "8653619278809530051228067219501411940663353802930665726969194150105945", "randomness": "0", - "timestamp": 1708551438815, + "timestamp": 1712340100269, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 30, "work": "0" @@ -3948,29 +3948,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6GvKiP////8AAAAAHKKjfuBx78q+jpp7szTfaSvs+EtEBatXN1qOUoqp6ACHqeAyp2DBXGhJ2Zlann3Q2VZWaY87BxOG/PqNpzJeeUUZoZeLO2Pkh/IGekm6KBeFYn8TvoC7pb34CXV0MGaaG1RQhmHZTZ3KbncKuyUGU2+VXQGW2u0Qm1hz+U2hkwUX5ti0bDYhKLrr11A0d0gWd3/ffglGOd3b871ZAZmpraZg4Z99inuLrwAzqEnNDxSMUOI1hufqRN/oVt32SENR2HSc7Cjd8Y3CrPMjVqMGbtqnrgBjpl8TZgXdnhFpCRFmWSrGC1cHqo3NjOUEH1C3B5Czu2UNiFxlPVeQvkCMGGZpdv2axtPyjtq9btcGNVZGSt7rTcxni8fTJH3VLzcJzLjKCdH4Uq+ylm/UPhPEARgQeEYVtu4TKfQASJrQrMTJcNJ1ko+lla82nTfdDjh91d4xnEolJc3yRbkBo7RhwxNA+wZmJZ3R6bPP2ECyKLBGTBa+g5/cSGiXPyUuX/rD3meegji247V/9f/bJ3FKeoUkGiPWapqYrT/AuvVQy8FXienWnoG9nHw/Fy1dIwE83OyDCUo/1Nh0G55tmTZXUkQ93jjZ2N5KCakzJ3VEnJVUTVOzmehX8Elyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRKLllWFbYc5gPlrM4SuKWOq/S07UPM3TmRPquJ+X9YMhNSMmG5J3+ICrBYFkSodjl4ek07+ZizM6z+Aq7df1AQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6GvKiP////8AAAAAlj/OPEhYBw1CHlsn5u5iSJPqQwDut+DOwXCHMj/KZGCj+fjehRCl1l0+04qoXN2LJuXbF9lousW/uyxaPKgYZEMwTS6bJgPajaeZYMfxu6GYDtib9tT6Z8zxaNiaoWknwFYRZOYCkCGAUXDzYknIZPVF6lQwV0llB6I2rt7MiZEYYHxs1sbeeVrMf4Hh1n0Agp2BCP0AuhgZVC0uvs5Gr1iJ4sLmTSX1AMCl2oZd3iKg2ZS50y1XG2qJ9glFwNBke9UDIZUCecTDDEVA94DnAoxTJWjNNdXZTPdcCRIjkfaIPPta1DDaho0+IZXMoTClNi9a3VhpmOySYwuOyD54hotW7EKaw44zCyBKyic9ag8Q18vSgdcizA/UxEr0KJRcbHnYOd+bgWHjogEVmcs/ioiCg9GUYOh56/IKfjDiaYPOiba9RT6ov40Dago6BR6N2Y+IeBf4HeuVD3HRXOthBtqRX6Ebtkakd7PkvtqYMwoKNdorP5CsIwyDMrHBjT+GaeKtF4NCzCOSLKlolbI/I0g9+0j2d9+y3EF/QVDCurtP/EVeZOn6MFJpASE+HfVFNJB70nKC4sDjrXx2KmuPoQrQIXvwLstf3PfFq87oIMKGHrdu/Fn7Uklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwjxZI7I43aKBDBoLH4H12nGS9H9uUh1goUFnxIqQhvud85L0nj+csy+AxpDK5iwbOGuYOfHehyTmmpBP7lWu7CQ==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 26, - "previousBlockHash": "B9B291ED260996B6DCDDA88FDA6144A4848E074FAE5B7FB472F0EFDA5C4C7554", + "previousBlockHash": "EA575A5C0A93078745EF1F9B794D057D4EA2D3B5266DE4CD3EE56D16598BAD7A", "noteCommitment": { "type": "Buffer", - "data": "base64:rcWBGZik5bIo2njQN9EnzhGhu0rpTA0Ej8beJNou8kc=" + "data": "base64:5T2gg+KzbW8NFNL52AUAy+nUKZdLumFkzpZrFJ4E6ys=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:+w3Z3sb09vetIb6qAOxLeel2zBvTUygKwAq4wtxa5Lo=" + "data": "base64:Tm0tEiGeNjtF+EU0k54x4UC0CXbXgH5wRby9/bcxv+0=" }, - "target": "8738305434549559796548917252154607926144500744968079916693475828853435", + "target": "8653619278809530051228067219501411940663353802930665726969194150105945", "randomness": "0", - "timestamp": 1708551439294, + "timestamp": 1712340100561, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 28, "work": "0" @@ -3978,25 +3978,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAkyD+JooFmaydf+yj2wYzzMuRw7KBdRfp/TI7GVzcWVquC5JK+6cSxhjLbOXeWHTxHSdikdRZDV7AnUUMPm/k1SqU5DxAo5Dd9s8tigvEr9WM53VTnwwmguasNPcA8w8DALDZTlv9jFF3hrXAXLO6oBHabzLCVVEERHbLnOOug9sIcvymMqpKbDEjGBSmc9ctcHhuVLVEGTxbUlTmLeNYuLmMD2mh5cpoFjsN0XaONS6JyyueBfThi6WIIuvRRmLb/mNMj5d6sZFrMTeCf1Zr8WHHeHphEJhJJvFTccvXw/qvLhXc+U8b8iG3me0qXIkRwwilIulZcmECcNun+DUIvseFxsGE6Xld1SUK9RcdU5JoVoTfBILAc6vITtMLYHIJQEUpXuTPn5CUlK+78rCoy2gIaBqVe4A0NMMoiovsFUtu2BYdONgLZmafF9O+8akZNQ+5NZaTjUClur3aK3IYeelrLAbiscnU2+G7njqcJY2O4xJIZoxLPIx0291tQNHyyux1Bo4KohbADqS5/3EbJrgu9KbcJVAsBL/4spa3LIaWaIBkRgMVCqp3o52meaybFVkYLp/i7lX/ycLoaPwo1eKpOBz9HaYu0A81yR/ARA1zY2rfwKHcJUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwSE/oiPg08kbf+niUY0oaCrd94Z6deH/kMMrmwug942wEdOCLwN0FEgDYVIgfkSG/Z9V6O82XPuZiDoR+FUzwDA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAASZGayyLVSJWDjFiX6tbzWvv4NwXUrz14H8IOZWHwWEmWXFuPLWNfO0YN4uCDgnafCUgIlLP9qfBRKHWnsg9QG4gxugl7mQTlzECa+JMppP+SW9GE5O2+xGkCMqKTOjadLeVVYwbXp7KUgcTULNqJm9qC3deuR2+MfwJhQb9cwsADbaTqZHFK/NKqOeBov8u7y46w2zEk7HmzFYjDgjUsLZiGeCLxBUK1fThe0WDtOoWEUNh/S6UrzCpPQrYje11tTN2hh+01Eqwmom34+OENRQrzYqh8E1mex23WabZrBhwUZDGBjEvVi8lZ6Y/x4ocD80EcTfU9Uer/3X8n5MyxZK/sKp/+Sm7fFte7Yrb40I+1FW35x9vMBDeRw2N1CVsTse8IK+iVq3RWZNPRaAhL6JsigLl0/xPh8zZ0SLWGs/Dgc78ydYpZYJrXI6vljdg6dKkGvadF7XyrH/Yjt4+WAhPytaZhMHhmpHKj4UrzUoiAz811cKXlx0NFEnslJTjmNKYCrBP2AjWuS96i681WyaQcLzfRDa+V9a6jt2iIAAX5uEKMCMsgh7uR32TXI2ntvYOkR+si+0M14/+LJAM9/5EKLRN8tRMvWfkHjCoyvuieQ7zi9EXmMUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwEgtGQORv/DPf4oDRp8wDj11fEQjScQidAtXKJ50xFHDFOf2t2g+/ZZurFn1JKoj8n+StCtcJ+M/iXM7v7gZTCg==" } ] }, { "header": { "sequence": 27, - "previousBlockHash": "71249AA802F228448DAA12F53DBF1E9D9EAD2B326BA2EF8DE8D9612D9C0BD36C", + "previousBlockHash": "3C89CFD76D2AD47D57EDDFBD0042EA558552CF229374317F7ACE9487A1AAE7DA", "noteCommitment": { "type": "Buffer", - "data": "base64:R7wHAZ568UNMvjshffEVZffSCLAy9ZPAnGuo34KIkT8=" + "data": "base64:mo5ZWXS1zh2UkfggUOjv5pnFA/N5HQ2Yl9Dzkac+Q2Q=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:6SfQxqdtZr9nqmIBslDpLkXi+dSczzu7fli1Bp7hk64=" + "data": "base64:NwqQ1Gb7kGFhj7+h9TKykJTp3lWJjQ1BlfBUoLcDKj8=" }, - "target": "8712780734538813757650990089978617454597892346137473599483396429405486", + "target": "8628343170215919696944954340329865753276757788516378283424936930394553", "randomness": "0", - "timestamp": 1708551441742, + "timestamp": 1712340102018, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 31, "work": "0" @@ -4004,29 +4004,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAx2vKiP////8AAAAAb1EZnegf1B1PhJ/MNQ5DsDt/LdR6Ann9B3/Gv2G1ecemwwuvWM5j+WUMB3lhQP5z/fnpUKRR5eImpPvfxHm4D/qw8luZzrtMtC1l+Gqi1VuRMfvXRpaXlSDcDRqeky+VK37wFMx3DzF7Dj/K1EVfC7h8OxeLwkt4z8f2RRwNTtQIa6B1V3pTs+tjz42xc784pRUa4TKmDOo8upvPqh8NmomBcQNZiMYIfTuUuRgh+uevdrT5a+M50EIh9UkHSlRQtuzM2XoHs4gAGO7fihQsbHL32cFmSmZ+bnShcM2/2YhB+PPR7wlYZCT2DHjfWYoJqzirOC6d4W5RqGJwqn0mMJDM+dpDBiU1+sPIa60BKn19XGgzn2mAE8F3oLGyoW5SODRlkUIl5W/4h3d0oIYOLMma7fC3hTfXHakvraYlG+meRoNQp8Rm2r/Up+inxxaTl17v73iRVA3SYZmjY2SDVL1evQjcvgTJuNg+p4xCab5KrVGcknQJJtNLCKr+RomCLi6eOzunK6R1NysEl7MlEI3tvTlJ2PYtATBFl2B1cO0+mAYcGci5aOFkOATztIuWAsuRNWcd8ao11/rGRWg8jRNLE22obTZnN7Z0gvAY8RaApcNXxRXHXElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw9GDU/aWnTNXw/t+nBamebJ3OFhqnW2ldKZ2Lwx+WnsfS73zickkM2zg45MIu5vjnYm+V8fLDq28YzOSAFr2dDQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAx2vKiP////8AAAAAtLTccMQ81oWLjG54rEET3tfVHKlJMf+DxYPCNpVG2taKHagtRmiZlKjGQkIRIJOYdgmkFftSLlAg24XfRl0QVwfUkV0xPO0PCZCfeVp1ZE+layM7xX0GM2khELsZcCMKsyEZpFETtESvXFDrreDnj9cGBZEzq1q/kpE/ZGlI0j4R9ehejJO3tOE2NQxHxX3zIigNSqFpHA7eG+902CHFrRvMDVQzc32MvXh5SpIe5USMiskVwrG4nHrg2zotX9qCqnIwX3yQ2xjAXRx5tWKzFJNYaDQ59Y0qQLySDwJ8eDzq6vI5Aew5BQej+He05FDSDYVYHewJfIpTK5Y824OftFxsYVLYT4+um03MXnZDndkcdxDWnZpclFzKjkD0ZChRXnfjGfP3UUGmW7vFqbRtbjfggkX99KE0xsu3xN1bqY9aZfLoSzrVuDtN5HChDPoJXjq6OPFJwwmhuehIVccXPq881+rEioTUkLv4NufurOKY+BRqRIWh7C+NmOEQ2YkZi+WkDbBNiYjVTrNfmtpR/P61iCXgTb82atgSzMpPOYa6MRJU84pn9vItG+YfFbaKmiyQ1EKSHRTKUqOzIUIT22ZnfUJ/+1TPD2BscWoaQtmyDkE9A86/dElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTkfiUptJUnh4rE3PCwqzDR8nxteDSKekNbkdKsDPwbSGxCqZNuNtqVLz1OPQpwR6PQ9krJdnI56qj8L+bxXCw==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 27, - "previousBlockHash": "71249AA802F228448DAA12F53DBF1E9D9EAD2B326BA2EF8DE8D9612D9C0BD36C", + "previousBlockHash": "3C89CFD76D2AD47D57EDDFBD0042EA558552CF229374317F7ACE9487A1AAE7DA", "noteCommitment": { "type": "Buffer", - "data": "base64:1cTCDCJBAvw2wWO4YJMQUD5mD+grqOj90LMV1rXKvSk=" + "data": "base64:QNoTNtAHSa96eMmjeKCWX4ZLhvrLESPzQ1Ve7T+uBCc=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:88ZLjY812Iqai7MaoPU/fVbo+aJaBgVdN2nY/IVWxM4=" + "data": "base64:6eSwEynkvqCMhmNcxNOdNPHgjLvgWA4PDffqQzTt1Os=" }, - "target": "8712780734538813757650990089978617454597892346137473599483396429405486", + "target": "8628343170215919696944954340329865753276757788516378283424936930394553", "randomness": "0", - "timestamp": 1708551442167, + "timestamp": 1712340102306, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 29, "work": "0" @@ -4034,25 +4034,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAmXQ9UHYV+r1htOh80HDHJZqC+FAMLvlSSryQWiT87yyoeBfqI1mofng9Q9Dd+BBLRoiD2dKfwAaVphahDgDjVn3aZu4fEDBeU18EqSoXOZCKTMNCzn3OVMKBVeTLMNGpMhUnMEQKCC34Zp3LV3eg3zkKtrE7L8DqaP7wul2jsd8QocDouJumoObiWEAfR0h/sXCSz0gtog4yEUWLBpTBP+MO9JA2kZRyqkVdUHb0lku4P/LZBchZ+gpakNzESHMqbs36D7hzUtQjH09Ruv46p11325ZcQYLQVdk3+7kn1Q2u7f5wX05K2PipgeQfpamtJqtgC6x5Cfqw7+c0VXdRCA4a3BhLUhXQ7vY7eyMJ3qtAnGLkJ0n6h+GmpXHMiihIyn2udmR1rNOed5wZoh3IscAiQZCmol88qPNsTTS5Nr6qJn9+wDtPR+eTOpqA5ilHx1om+PXz/+Rg8MmsrFTg1z9+CnX53EYFedg2On3awH5qL8aSIm3opLBDih1qogErJ56A/SMWsLEjNHCn7jpOxIgMmsIWFWmMNDmXGwXIjBV5sMcyV03yTZtU+/9d0iuGP4RnAKhcI/Zqf+UcRRlATKQBcM88HLOApBVfsbBEf3pJQCs6gqekiklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQKkhtDBJREHt0gEULRrOlTXh3uVKxixVLECg6qQe/9TgV3W5UMYLgXcsLiaC3u4oB2BizWG73b7ylAlUkUS8Ag==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAACAsp8Auvj6D/TQrw0llSKp4O6dxAqpOCKSBRpLE7DceFQj/NKI2UReWr3AXm4aHNqQC68mqd72+Ve+aVdQMV1Qu6yYjaPbD1mfO1cXZFEjyRbNaykBYWa8am4/f8FLxWV6RSOgOFlyobeToqCn+C17oEvmpkN8yTkzBDa/oOq6sKzeew5yI3bi2806R57a6VpwSj/JUBFu3+bMy9nxvjy5lP+iDFCnEH2nXucLLoi2iynT/2pjS3DvtAwMmk+xGx2mFpX8wo2qQM3fNRmyJl4FSfnTHy35yfgjBVmqUGEic0nXuiSYtnCCgoxBfPh4M7QBQAd2ULpkmO4LQ2fH+a0BpCHSGo+hOCGEqgf6KwJRihgOs/hy80M0u3ci0keaow82gy0Uixm8RzFDPMPRbKhR3YfLms3HeYsc8YbT7qnOOy7Svis5j3/cgMNeXYFeKVV4D51GoltjCLAsz6/hYCpSG+vuee08oH4azQfotNd6rMeYAhiEZ3gMUc2bT5ws6exmWxJAfiUPW7UXpg219kFHaznf6iksYVJB0diM3Q15Yq96kvrbhmpCuhoZSM2G7yb/iqqK08MF2toDETpWxwgd6j1jJONxW14pQuAnHbkGSPa0qf51j35klyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwtTeKorstWT0EWTUzBOeK0M0HxY3/b2iqNQqLY3+AQQ0rcR24Vh9iZ+V/7TekQI1njQYs+A0OsIRekFkb2wp8Aw==" } ] }, { "header": { "sequence": 28, - "previousBlockHash": "2BA5095DA894F0DE391F03DA93126C938710276CB29DC406C1679BCDBC372831", + "previousBlockHash": "33C6D05C9CBDABE8CD5B481E320758493693741DF08263380389B0AE0B99C685", "noteCommitment": { "type": "Buffer", - "data": "base64:rOqusa2oZi4CpiW+rQ3Hm3pXEPMUobjEgPHngJRCnmE=" + "data": "base64:AP9nStVE3FO5naVr57vfUHKYKiEK4R/6NRA7gHWU9y8=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:d+qy3pjQpOzm/OdLaMtqSLt2F6RwITHxq26lAAJELwA=" + "data": "base64:HqBGmtsaHz1cza/mX7tXQ5pIq6NxszjrSKxAeYDZLHI=" }, - "target": "8687330413849495704547189232187685854669637916563861870671893426326114", + "target": "8603141418955263240200886303627527464564968160677284671948097075617204", "randomness": "0", - "timestamp": 1708551443525, + "timestamp": 1712340103818, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 32, "work": "0" @@ -4060,29 +4060,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs2vKiP////8AAAAAU5fvImA6iXQ1Jfw6nBEkIDWsNHxWE71/QW3TB7NVGWeIoK/679H5LEROgQj2lp0q9EAogvr792FAZSlo+xd8X2rJmi6N7QqM+J887JLXb6On2tSbugzwUN2RVRT1Bwtt5V7i2ODf3vfpubWVNqL20/m24VxzEk85MLnJWjWqfbwT3JxWaFGnCsLDYUr/RelWSc/FFwnavzrCgq9APtfZfiBasQfJPu3gOdgWAPzy5fWvB7jm7IHS3zL+ek5AIuRMsS86gDY5Rl45mKWC9LjhOTlVq/jzPvVU+Nfy8GeFjKAQGXbiPpbS17E2VHi6pECEybdvZ+U/X+wQvAnobRNKvepjAX6ugIb01uKfmCaOeqkCaB+jjfLd65T4DCCUGxg5zwCUp/nFztWH38rnZucRuCrUJPbbvMQebZd5Fcc93h0KHwPpOxCYbspWQgOCnUIeruq2qPctEm7S7swp5h9AG3/5u56aWwwxskqAyZ7IvPNkhpbLZKPxiRUUZC9OHVhrt6/AnUlkWDfpgzcCY7ZPy8W7aie8i1VLY3QJp6tdB5aY/o2AwQ321+UF1MgsY31vm3N6+VaxRfkySeqPEcvvl9BKlVFjINNrEaDUSeFDG3ojs/wp/JQV1klyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwUY8cMAAj4Egj+i+sZ3UlgoWADXBC/c58BNsEFylzEKV9B+OEwbyXrC8a6Sz2193nQ2jAVttYtehGOGHC87i1AQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs2vKiP////8AAAAAO5ZqEaDjrx+3nAR7WOozNHYOo8rcuKu5dXH2DfoUWZaZc6JOD7z/TKCn9DTR5qcubydhtaPufN986Tiz2RofeyhFShqSIz39+ZvU2VHn8meCQW3ScAmkmC9q8SKSh4tnAGy5gaIdCq7gVDy2Ql9bQEoIiCWoFtM103YV7R4b+8YRGeBlYgq2IFrZIqXA8SRQfAiMpmPN4v7PfckcQeIps4m3YSm3arvOBaEAvP0SVZ+5clm6KdIy2bJA07Vnc+KHVgFFqFF9alqOw6LqUMb4K5B0qYJLWmhtfe8OGffIDhNmcwP42/2PSb1Xog9drAEs1CQLJwgZaO2zN5aYCsPC0D/ssLSob8qSuj6me7gakkEoA0m0Ynqn8V65may227NBDHYg2OnISNofhEI7pHn/4llVG9KmK6CCjddH7Sot8zv1sOsYegyQy72WnVaHq2nInY+WVhVOo8zmOmr+pwgwHzvoFBgLH/pUJuvTQ1/b1fXQXCx553/wl5TaHb9u6KjjSJ/RHaJOVFUX3PQ+xE0bHbUA52WlaTe8dJmo/RRB62tux+zlc8yBdXhj2VynDPfR9vzjcBJPX7b6CRS4EHUTLyp0zbXmq33/P1m1XFr9w+zAp6wtxocdHklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwU1toOunnyPvFj3OmXszmfLD8e6/GRbFx5H2nbaLKmaQLBaXtr+bY1zogZgqeW63kXoPPWDafKp19QShZHNDvCw==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 28, - "previousBlockHash": "2BA5095DA894F0DE391F03DA93126C938710276CB29DC406C1679BCDBC372831", + "previousBlockHash": "33C6D05C9CBDABE8CD5B481E320758493693741DF08263380389B0AE0B99C685", "noteCommitment": { "type": "Buffer", - "data": "base64:d3EjvpQPBuNLeHsMe1Dza68ShJbrXYXRp5Uj6An+7TA=" + "data": "base64:FfrSLyFQqjGp1raFAym6SLhgD4/aWZm7YhwNxEyD8Wk=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:5FdbLcxVxOp+4Va8jS+KU57dPx+sf3OUJAA/P/56JoI=" + "data": "base64:HhsQ+rkTVDFOpi3AxVaXpRaGdCB2TMjhpNV4os8JOcs=" }, - "target": "8687330413849495704547189232187685854669637916563861870671893426326114", + "target": "8603141418955263240200886303627527464564968160677284671948097075617204", "randomness": "0", - "timestamp": 1708551443792, + "timestamp": 1712340104108, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 30, "work": "0" @@ -4090,25 +4090,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAE1HwHmWZPvYKxvAxn6Zml9MIKjt5UJtI4cwWXqKAoDCEUeOnWeSdoDED0FssHyMmJm2yTw1+IA3iFiWMZDBQhv8nFfrjOHDBwdj2diDelzqpmJ70ebKag0jyW2sG4Q644ROZ/2Szt3MKoo7FxOg8x0e4st9WeERQTbgkUa1EJqsHzmNtmpG0T/napc6e1/b0NfBAk5mssG8R2eMxAvd+rP8ipA64KXr0BNsObpkmSNmpuOw9ErZT7JFSWl+MBS7jXJI9nbJujYG+UUlEU72sov2IP0ga0XSXOtkjufCQqOR6s6ucjyWo5CJKl1eHU8KpVmPEw2H99hh2m8qQOE/dzfejtfsIYDNn1brMHXcCx5oIaMEQt4aUGgVHaa6+PR9cMYVdXvOXlxYizOEgRS+hsbVnBKVDc9vbUilqkZEWTKshIIO5k/nD2FeezUrY6D1qVy2rDeDAn1gxFQXyyo7GLMRNgxwYAckEEz5qfIVYrjAPNcGHWXi4HNiSBgvR6l5lGqTwNmraZbfViKCjdI2VFsA5n3RbtNRZ7xBOEatNZhmhdaLJTfSDIvU8fuxoQ0NlMXnckUA6FONgqVNncgyeA0meSRhREz3kPAzIGuqw2HZIECVnoIYe8Ulyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAVouqU9zWOrnGX9F6WpUC2vhbC+8CkqsTMYH7olEP6NWQh0absFbwFhEgtEzr/r3a9r0D3N8XQtV0kJdmokNDg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAhECEOtmjuux8oPhVrDSEh36LFohcJlCN2EfhXaa/b1ikU6Bv8sV9glGbCJK7YNFeffPAaoY8WwU9tMwYtodglzuPGjhQtAZzBSji7nNmzi2MnaHIca267WVZNvWb3LOxyHFMgajm2PoAWZ24UHgybAjJoHSjdSjK83LnhOxxxo4L4WQG0QrF586RVfvb1tWxIYmASsNFaVfCqkm39yJjk+dNV/mTrn9/YbHPvV5Ay4CHccrnPvOCJ6oPNWwdgEDVRg9VoVpGryc/BU6xAVrXrL4KFCbR9lYjBC/t/2FCZwOc5CjkUwIQZIermdI/H+wjFpZeTbD4J4Mj1mnRDD71Moc1JpREdvO/Q8bMCghZ9WCk9QOF8vJHKEjpFmuUoRU2xV7JmHlYhqhPto9gpvuK1Q4VBoYmLceuniEPY3FNhw/KKr0IHEexZLIEOtpLK056pdRO/xM29gNFvAWYbPoH6Y0Au7EIZTVZ170m+o6N6kb0bw4PjWB9fR/H1dFtkIP284wwHqLX1cx7ROA2Ok28QfCKpaZJ+1aCmmpyeAW0S+6N3p0mGXOQU/q2llwzQ+aN+39UczVv/4vpZrFCdkbBxudjHooiBLN8bHFxuiNlyz3iAhVk7zYGFUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYyKkd2DBM9JK/nUOQn4WGYpR/ajCI81/bjNzqvgF4UnVtLqfHlBCuhJI+LnovfdTozwZMQziW+8qXolUgKXsAA==" } ] }, { "header": { "sequence": 29, - "previousBlockHash": "5CE2F5D849EA98C40AFA3427F4B6C543DA04512EF2F84476F7D9CA2CA67E3E62", + "previousBlockHash": "25A541FF4CB6F9B888BA985A09EFE2EEBDB56F553065DE32FAA270CCC1AAACDB", "noteCommitment": { "type": "Buffer", - "data": "base64:mxRB6HDaJu+GYOiQjQpERrspYgrAxX5NbXn4o5PooTg=" + "data": "base64:y408RDsNU5OoiZBViGHmWuBzjjHIDuIjEnZLnIU2kk0=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:kYQQcQ8kIm2q0IYWH16yVvOAWtF/a/xIjLkFxqWP0NM=" + "data": "base64:LcpUZuckalAk6BDO+BY+cj5jni87FFTxRCUugoksRb0=" }, - "target": "8661954473705147229890585982256285683688843183948089657163468232760757", + "target": "8578014013885197249541621619782511586908403269590475119574986225191742", "randomness": "0", - "timestamp": 1708551445152, + "timestamp": 1712340105572, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 33, "work": "0" @@ -4116,29 +4116,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3WvKiP////8AAAAAqnK6nT+8Ax3r+zXH3TfxvEWEd567dmXDgY8KO87gj0GPhWVSdkHdLJdl0mqkWJjOlc5TO1ERkPmgIKtEA/Emds1hy69RWoeH1oLfXZD/2xCmLvYgeR/8aKA5RALhhGp4nTqmXTIqk6kCJVc5F889baNOpdNYh5YlwNygQcMt5bsJ4aea+kMTscuYwBA/551g2QwxOfGhmCKdq8tG2pdpr5AEEAaV2pyZ99muUW5cNRuDhJ0dbRWJngu02miuZJAvX1D9AMr8lJrUYD/RvijeIJ9E7tD7rOlUhsabRtFlQ3x1FEFRnmWHnJ/IT7z+VE7y2um6d8WznnrnOSYJR1j6rBlzT8E6AaFhpxgNTLhbKj8hB/EG8u/Z6I52+SAakV9vdxprdjegyIzeO0+kuLlTB+Mi6X5gDKZzBxWTprdumACGxnvWdHZzREbsfLi5M2dxc7+shen1gC4nKeFC1bArsJaKZV6MOSfy5ivMi/6NiJLPd0GjByP+d2IAtIZIBEdfVuFpNCy2OnieVZ5kHzlUqLprqdMqMxK0HdAElJfa5MrEE+Ad1zNqjbpLLvdVBUI4QqlANOOiIW2b/iv5o50kFx8pJyGus0yCt8oo5h311CseyjHwadhBWklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwpQ6PZrCOqN88fjR01s1t1EAw+UvZkMGonrMZNS3IZMpS3jw+r4YmMYqLywFijs2DRWaxgcCFwdD5yeSUaEW2Cw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3WvKiP////8AAAAAxz57zV52ohuN4qRzJVr/Gzxc7Sge/lFCOQRfYDAW9kqsCbQ/eHpbsQB2OH2xHen3kNibRaxUGXRmKTBkuRkt7N85zJ/UoAbCwXs2A/g7uwyzIDVJGgZQrzoSmWei788W9sMB/+1I9ZQbazZWOOnRdUtl99X2Ignk1hzkBwJNYJIDJzjfJa/Y17p/mWW8ko8h7nVatp3UxHvlfUmt+kqKLSB4mj30dO+umIFQQFPdrI64nI3VtYGWqDMM+4k5/5hbUkfDFma9rNIKSW/LG9kNfHMnPVtlmE6XKNmTfEQWUBUdswSNyJ1ZAMBenFqZMBUoaLxxAYsFIlUyfW/3zn8CcPCLTxuHQBO8HxB3u3emzqhX3gRFJSulg+fSndOzkeJwAclmmLtw8lX+stvDLG/fYI4ja8XhqwYav56fpnn2RXFBpxtRjDYiShDvVA5cG3jY16OP0Kfxj9KMv8qqSkCRZUjZNfvBZ2gnl/xFHvu1K33qVTBa8pypOXKLi9rQ2CUEW7OY8nngXI4u/iHcdUWKUIrfxdPQFV9eXhs0K+ZeDgwm/OP3zuIBUaGxxUF1twOcMCsHlCpHSBEtfkPwrdpBuZbXHYsPJqRgGfRJ4wrcKk4cu4GeDXsg4klyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwtieacRBSZApOwPNp2rk03ETD1zNxS6+xyflR0uGJOHFNsydZJZYdfb+RgtosUGnYZTRugGPyImdANNPcJ7gQDQ==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 29, - "previousBlockHash": "5CE2F5D849EA98C40AFA3427F4B6C543DA04512EF2F84476F7D9CA2CA67E3E62", + "previousBlockHash": "25A541FF4CB6F9B888BA985A09EFE2EEBDB56F553065DE32FAA270CCC1AAACDB", "noteCommitment": { "type": "Buffer", - "data": "base64:lexIKU6f+D9zzgMgCfjADJ5vVAKlhXaJ715c3btlDVo=" + "data": "base64:j0wnWeJRga5OK3mJXsO/vtJAmHdcUCZoR3ew/EWSQnI=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:/mccvoji/gkMr27opAi3tWss9lT2FLJqn9If5wV+DpI=" + "data": "base64:HtAF0ig58sDB9z3ggQmxkQsp9dW2qXiK7GrNM+31oVg=" }, - "target": "8661954473705147229890585982256285683688843183948089657163468232760757", + "target": "8578014013885197249541621619782511586908403269590475119574986225191742", "randomness": "0", - "timestamp": 1708551445426, + "timestamp": 1712340105861, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 31, "work": "0" @@ -4146,25 +4146,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAKR+GrfOm6ke60WPwAyJng6eIpmTDDgMxV4HPh9usY5Kq6ouKzQ04A8wMKfu5VtoQ0MusO1Uav3sbt6noi3scc5iHp+q3fwAesEnrMVzrZ8ePoOSI/Yl30DSVa9W6UhJKRptroXh+6ZGY+xSWxaxSWBNeXQAZQrMbCyPmDYtzEmsZTUtS2A+tEbyURqG6tbp+71q/oSidEjtsjtn863jnx2Z7ThVEnS8Y5d72ZnvDuAe4Tr9qBYoFdSUV0ZVJu1leRu9qlxmCLfYWu8v3Av02R10G1oZ8qds0cLqgW0vW+zQmMZIt6KJG4YxzrQ+NOScTWrZtZd4rwkiJgnt30rNlRTR6ZOAtFiNPZ1KG3O/NhRNJT3Qwxh2L3oHV202Xoj9wmc9BzHq+2DR4Fer9hE6SVjc75vv8UmhoigbK7OHpidgD5fnDuP8/dtbXW0GDb4HH2muEyKTKu/YMF0Yj/VBmZNXQWnaFugX2wY1ce4xXQljU2uZwIZwICyJi7Ai9lrM/ndeKYyaczdZe7EQDORc4CVUaIY8JQrDmDvx/MALh1Q1fcoSD4rDoUstl3a8aJ7C2Xbm3FnUMkiQ2OutlT+Fg0ZsifW1FmEg5fhuUJ+y2v0KVUFK1konwoUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwmSeQ37I05KoNep8dSjSm0a5UA3w4CZt4eqH1b6ZzSWmb7UmRHqwz5pcyQNPPBjNK6y5fcnMYZkINQpLHQjD4AA==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAWcRqAwspLbWt6d1MbnaQoKTiquBB5l7HmS92Xt0unLeWaJ6MRxMhaIFez+iNFsM6qUsOF5GOoyyiZZPmVR1lNntZc39VngYRmPXFOV+koB2K0T5MK/JR7hM1HUyJLOf0dMmKMPqNABjClF257cI392+yFeQTy3On8t7wvM/BMIIOJXEh/J9YgofBkAD5APjf98VNnO7BC8YgZqRx7VWw1nl/5XdjDcoyhyO6P9TLE9iq6NY0mwYAafB4cC/Det4u/Wm488D+uwA5DVOiByq53e92+8SnWkwV2ZxZRMMuPyofGBCTzULiCNNjP5dc0pTNg+66VRcB3SCFUrDsfLU9F7qPabhPfDGdvC0z+fP0xLETFevgET+w9WkC/KPke2c/nQUaqx7SdMOVDTZXjb8rOqlkFgOCAwKGE9OOrKNuo4SfawZzNSQ4uT0XsfvkgB8WSvyDDQgAr7clouly0it8q+7Sf8nZkCmRd+hA9K48hcNfa04Q8SA2HCHTheKKSuA7AhHqZARGoikNzrqrybaY6T2jy7Ztr2qF/qrRWfE1Yj0/kVPB5HDPcPSvpgTtvt6C624dxuIZqccwBcx+8Zi9PUN1FTEsh5zSIALrZAitotGNAybBfn4F4Ulyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbSMpXCrqX4bHLCRoDsdEl7ywWRDFCb8Y490Sb4/jdhpJL/y/fsIs479LtHixR89fOCi3N/KKvJIExgsVLxVpCg==" } ] }, { "header": { "sequence": 30, - "previousBlockHash": "8E2F8BC6493967CB2A95830CD30DD41A9D7535534EC7C5379A02905988A95751", + "previousBlockHash": "6D1E6A1065FF5E49C249534C52826ABA0ABFA0B158F044EAF5D58D95196B307E", "noteCommitment": { "type": "Buffer", - "data": "base64:T57L878+F2PbvxSD+6RcWLtncmS61KLy1/dfyGzy1yA=" + "data": "base64:kPo0lUg/oqNtzJxZDx9dBFCUxjGSS85S0fJJVs6Dp3A=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:7dpM2R9v6imcP5dwl68qs7yLbpIN/nEJAANAwtki7vA=" + "data": "base64:OdEGpzVygWHlAG4/R9Zl1KqK3lCFeDX0Tv56rPGT8EA=" }, - "target": "8636652911520336412674862028523481057531943229418939104860722891581353", + "target": "8552957149661285328679875733491141090686595630339911241086189266377456", "randomness": "0", - "timestamp": 1708551446768, + "timestamp": 1712340107317, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 34, "work": "0" @@ -4172,29 +4172,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+mvKiP////8AAAAA4TcfPXzFDft8NsB0w6TMY7dZiwLkm0HJS+00itxlCfKGJb8jgfPjFLfYKcDc7fw7+YLr/ddewr1VIIcXUUWNsqnnmCcAYOUMtwGpKbDc2yOXJ2UbfTKWlXaOWuKgdaQVJKtJ47z/0S/VtvZ7Vvjx80OcPewKtrufhn2WmAHNFyYHdxbpVk3NQ90fy1G69jqL7ZN8NtL0pkLNX9sh86qIM1EYaWBM6P0r+U18tu7kb+u4CXy+3Yxeyya0H1oRrmk8BgQEIBV1OewdBFNvsyrY5wnKNMfHPLe1+HGtsj7jUMFqwucJWEpOP52NBm6GaJn/jInZgRpJ0uicm9DQQKaHaf0D9bJOubYSd2XXhe0p97VEC2YogVv71RFlRQq3UFBExyDGdIcJhx6lszjfiyOt9S1pSGfn1yWZ7pWvmgQZi0CeI6eHhveYQ+D2zVc7NzzQwwJaXbuCC5zYzM/7J9sSuWN56bxFGZ331UCS4V3sk5cFCEQrAp7i5gK5A8mko4yDMrGrCEisozQHXjmXqXUUCz5FVXuxSmK2iu9e8lMBrzdUnwD0FJ8lbdwH35TGoWbVTEVNzpp8TCf0VPpePiUDXWzBwaQk70TYp3aCOHHyF0h8I8aTn7375Elyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw/2cYhLP/PSh1QRSmKvsCvU3pwYYm1qHctDTgoQpSxREJLRkkyYkpDaUsWGdfks6BfNBrTcJcbi8w5PAtWat0Dg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+mvKiP////8AAAAAWTykSUb2QwFZJylyXGN4RtwekwUji8/JbnXhzacFjWCq2bk5WTisuQId9YKUgURQJrdkyn/eryUjcEvVnVf6SjMljBmYq3vGH3p6bHXDIU2OftjpAusFNNmf8DGhoMuhlpYj8IbtQXOZwpQZzg5dQZjhpKxJh4dGoqEy6ZZeYhwNDXFwXfMmVBgR1t33r51UzGeZmpgoNslKTIyLgq2e2zK5P9qJbZvancMiEBa7PJO0j7GxbRUqwYc+VymdQfz745JoWP/cmfkgILmYNm0PllgRFzmxEQ9xpJR+0kkiF668H2REU39HeXCcjmNzTplqGqPiYwvlzw5e/5LlOqIyl/h8bIv5/oCDz6+ndrdpfZJ/bjWHuWwfefQf9tRtaDwKY3/myEWh48g9G94bn40+B/vIKXckuykCaZOTvGZ5tkB1Oo5lhTh9MTvVHAqqwGsWkfhI3Y+OtrSDEW9ZF0ANhm0voS0KSK3+5IHyyt+ir8k0ki1u/5bAGeF0CghSNxh6Z3ecbQGsAjZVR23KGKAS6NODCifQ2NOD/yl7H2jcyCiiJOAmAKSPEEgGYWS78yKH9bA/g+AXyQ5BoHImH5W9F5fIBCmGd3LLIA6wDdJv25O0NIrjG6dcB0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwnqWLhfvvV/lDP0K7++NV8x5EvSNtbcLowbaPlUB5Cc3ZPnO/uGl1IxzBuPQx7YxpLeA72lpnz3twShHHutuiCg==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 30, - "previousBlockHash": "8E2F8BC6493967CB2A95830CD30DD41A9D7535534EC7C5379A02905988A95751", + "previousBlockHash": "6D1E6A1065FF5E49C249534C52826ABA0ABFA0B158F044EAF5D58D95196B307E", "noteCommitment": { "type": "Buffer", - "data": "base64:h5RUp04Wwf0xIbkuu+/FVbmJBcdsEYJSKgnlf+xW8HI=" + "data": "base64:D6zlwJTriOO8KYLa8DfGHUdZHrGPc/ptIvi1Mq/V/jM=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:OZaUQqnbKwfL6W2Q1LgpH+ADKzddvWA/xKzgGECXsFI=" + "data": "base64:mKT113MAbJID2Azsc7ZCvFPO/6o9+x5vxpLo2IWvUpA=" }, - "target": "8636652911520336412674862028523481057531943229418939104860722891581353", + "target": "8552957149661285328679875733491141090686595630339911241086189266377456", "randomness": "0", - "timestamp": 1708551447037, + "timestamp": 1712340107607, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 32, "work": "0" @@ -4202,25 +4202,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAbPhi3+ZqEf8UruFSHRlV7WjhRA2R5LAmNmUVD7R2UdSZ596/sY+pCjeaxJ6ofHJleNTixAp1b9olGHu/70cAMcEPUpTitVLLbyOhNbMeerKMmyyaEE16XEnL6KroLUvtIpWjJ8WAdz/GHp3QGqn67Y7jdfK9R70iffButfxg3pYW2df/lCYjrf3ASMGeteJMZoLUgpch7awt2Lqyk9U19XDfbarWwAd2eQ36JlShtjGqn8BBVnoYBkCJts9ZK01Xrkm8irNHcJcUYVHJueoUnOnT061wmlfuoidf6FfkM0ZWhkQy2cnUNrQ0FuD2Ts6sNKJeqKhT+RLf0Qu0JAJZq/HOu3R28D67IOqckNnXcSqXf0l/i6n2c3prmx9mHyk6Fs+cwdtCTS3/MXTBzpIHkb0p7EGjaLd9a4DxEm8DxUgwV1Ifmj2D7Dt6HVk9akLKlaChjL8uqn25LRc/qD2mAK1anE6qu9ukTDFfd8/iYfl41SCGYO82AsxlXcmpQtq0BPc3cvOUp/mJzN7tpWCRdhWg76q05172U230yVUTwlvv1r7eX1MNiI3HfPKJ9WvocLACiy6nKha1Xv8YKdNvx2TqPqnkps6YhI/KLlN+Is3rM08UT/UjLklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwyH7FrBuAHWyU0KPEEw67Tf0mdQ2T6uzb6QDNR4xDB7LUsxlWxQ8duHlM8HIKE1SzbEG452G4L1UzQgvKdWR4Dg==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA8WoWwIR7mnqN1CqdqLXQ3oc7iBqRReC1DAW7BgtQUNGmn5++vt3ODDbRCJonAVaBopEe4vWpcDH/gWekEN6KPyVUqt8JoY9bWtaCbzH25DKnnipHa1B4L4kanKBOH+6196D/kSlIKk0N+ntIjTTnGtEAcQLYmLblILU4c8YsCpcZW4TsAO7Q6rUslG3zwKNNp69UItJw+0+pzyq4UnQ+Mw3jew8xb+GBIjsPcuj0SeOF05VeFinA83+JuhxZwGl1EnwSTvoB76d87WdRVyT+qfGMsM+ELIhqJHcxd54GeTjuLYdwWobK3iq5QQ331wcZXGZKE3wvWgO4Jwmgk2j1Db62nZB46f5lz0h6ov2XktmAI+dsTh9rwV5BeKnIc+1xz9mJyhgGHaccGUGMAYpv1OvOc4/PzFp5j8P6sNLpMGjTXDQrO5AZJPufPPVIXQDbZI0RbbthWbMyDkf6NWIc+1u5adkEC5PzXcJfUYQW6kK/RHOzp5H+BHUtd6V7ZJQv/ZuVyGq/LKQgVWRaKUbGFZCCZh0uiws/UPARIPCZdeynTUZ4WMhxIyDXzi8/daRkvwUj9Eb8CdaV2Z3kfdRL7XlamD3xVW0lxh8hvbj6eoK9uAxsUYgqvElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwtZGfLStcXKDDa75HemcL73tZjLVycU9igziCP6R3aMf7lQm4jqo5bnujbGXex7G0DGP0tm2ADu7+p/M8FTKtAA==" } ] }, { "header": { "sequence": 31, - "previousBlockHash": "9C60DB615A511A808478FE0C8F7609C8A52CEAEACAB63D6DF674364BC2A94B9D", + "previousBlockHash": "9B3320E808E269CF366C291EC0A103BCD3CC54ED1457D1DB84504FB442028AB6", "noteCommitment": { "type": "Buffer", - "data": "base64:VPFIEze0KAAq5Nnx2o6Pu/qukpDaJ+nFHhYWyEoxdmw=" + "data": "base64:SoX5LG0h5BxpWe4jtiPtctoWSO+rVwWNs7LFlGlBCEA=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:M8sGjoGRWaaOU16dS2G19DRuydTqMQeN9u85lJT2a1s=" + "data": "base64:2R1uaSlrk9xKGfCF2i1KadeCxzS2K3w55KfC2pcRCu8=" }, - "target": "8611425720956183100608477093134983418025821812643073519191522565998900", + "target": "8527974642737130379366944270126946459313477997621472582784273753424910", "randomness": "0", - "timestamp": 1708551448379, + "timestamp": 1712340109053, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 35, "work": "0" @@ -4228,29 +4228,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4GvKiP////8AAAAA+RjR9oN+D854HJWiIWnHFQhB3dsH0jjUJncTeTUa/NiF+oypGkfEz8hS4Ukf59TZeI+6E5kXlHWYswtGBKJJhbRwflgeufWeSUluT6lxdBOOmsy9+PDqS+nInhR3YKX2DulbFfCT6Tni7uKspj8z3v64aA4SyHVFkTHZNKjRRO4RQ+rTd/ejrjo3y0lXLL0Xbu6/odcnZbWcR9KnuNAiy5bC1IhrZcsx8t65NQuxaTil27ZHC9lnB9EC7VJAm/ISepvhJgqGuEkPdy2kGReFCETIEisLWSWkXVn3uvZZT/j8EtYmZhrnVEImRM7pL2QEk14NUU+Pq6aMVLviXpb68o7cF5VCZ4wWKTWXANKz6lnjlzLBdgP6INvu04b2jBVNaR6DHUFAewzIMWpFmeH9pUEvLyF9TCq4AGV5otQtWdD4vLCUwUt4vFzHZv9Zmbl2NxiW2oW3Q4IX4O4NmUR3cBrBHMTpT5GMMkdJXAge/E8NIgdNGC1YUpZQr13cAEpO1+A4Rlrdp0EqbXgZL2ZpcWuxP1QoTDDYXKkSKDaLNaHS69GPp77TdSsCBUuea6MAerKfEGLsiopyuOh7d0Sz+Bo4zKtBkk6vUT3755ww8yWp3edjRW3lIUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwk2Bbpeea8UTdlMaXqWS6dMj9Q6YVJVBzP0dvJQs5M2aQkSNiOWwWjgGJXrhHSDDMMQ5QYgU0FJ7TdNLh1197Cw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4GvKiP////8AAAAAdUq/wL+2krKkL0r070yVPXRz5vBNWFzxchtiuFOwAU2TfBXTV1TBn/JHD7KHAbfgm4qYiQ65Ig0UrMuAMqXxKDxARYRzDnrhwIRvAbsqGhajFEW5W+Pfq9VCwUEqRb3wGLCB0/uTewe6cf5Sd5ahsKKGgcL/OLPuh7yAnR1qhDcBwiZU5HSslS8BXFk67J00Hurc34dcqLkj6UD0MAAV8VvSddp5gfwcIMGO5jRQPuuD7l/kkLuYKAbuG23pxjeuof51oAZwJ3JrDlVSeCdcbdZHkPovjt3kOYJwn87Gns92wH8SUHq2CLW7ob7n5+SCidCIZBPKBk/8cm9axHLy650xlwh24Fng/8pTsa5EoSfJc8wugyqXHsTb4J/Xk+ldokpN4Op8MNuAxm7w22ZMa4S1Pvdz4tcyU2jAmtK9Wha+exYtzy/1fnJG/Tm7WWZS6pdYA6tFBz3VqWnrYDM9O0y2uIGjbwxFDNRWCc+38MkZNGGhjQK5aI3LtQLErJ/jKo44YnCV5kniHVjrwJ1bKvTCP1hCvygsgEAzc5nwG4ijpuLhiMmAVBzFqhPnpnPdfA/EzZqqvh0g1ULH8CIMJCqbj6IrY27utitRXXrGrf/Q/TFEbDsTpUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJPZ+HSgsf3CQJwIlFzYmeCEXpdVlPsKUI0IKQlbC37JFM9lJVKy/IAlJ1dL9Z/hBIY63Zkv7bzalWdSkHElLBg==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 31, - "previousBlockHash": "9C60DB615A511A808478FE0C8F7609C8A52CEAEACAB63D6DF674364BC2A94B9D", + "previousBlockHash": "9B3320E808E269CF366C291EC0A103BCD3CC54ED1457D1DB84504FB442028AB6", "noteCommitment": { "type": "Buffer", - "data": "base64:7E2Vnl6CWrTiDD7AoZfKVDZVdugv42G1MHVPsQ0XN2E=" + "data": "base64:5/HgUI8N3EAkEy0BSTXHaQV5TcEIlGrwcvEEPbQ1qUw=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:IWUidiiphe+VKzJscsjINMJ52LctgVE4SXBPTO/hUJM=" + "data": "base64:/Crwg4BEkUht+d2AWFxA9+l7fciNPRYCwx3yDwmbzlY=" }, - "target": "8611425720956183100608477093134983418025821812643073519191522565998900", + "target": "8527974642737130379366944270126946459313477997621472582784273753424910", "randomness": "0", - "timestamp": 1708551448737, + "timestamp": 1712340109340, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 33, "work": "0" @@ -4258,25 +4258,25 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAzFsPeKTS+C6AXxab27QSPio49EYKcFGFFpJb4zZkeUWiwlB/xIXRa6ciYdRrfCnzK9zDetlozXf8PU3xOdNROcGUjb5t2BcudxmWxcc0GQWy8+4J3anI05ftJXeSm1F89FRjASEm7RLyjK1wxWfw7+3Zi3p5o2CbHwj5j6LAPDMJHH86Nwk+LAtiDtT5VMWWI36Sa+96vJxtpRHECc5eIYB9wo9g+YGCdEhK6IcK1nG0qEChLc1dUAIzMxA+QwScO9KTzSVisCfyMArHTI3H2Tp2/5mpEWdXfhLlZZemhw2g347yR8YY2EUbTX4qZ2lejjDJG3xeAUgUHm1P7wgoMVDJlJjPD+zzRMEf17piK8tmbcMwRnhlpgje4lN9PLMQN/Aebg1haThlZ/Bk645QDIXfx2SlfCrMvcqJaqx/9OXSw/M7ufCpHheO1mBN8De2roMw1opt35WbuLbqoiE2wOs7ik8+Hp7mTLrpDZsfenT9ohJZq8CuIetOxFILjPh3QTCqw492m8qEROT3T0cpNWgegCYRy8R492ypouybpQ8n9S+w37oWAPrI+QdFhCuKX3s6yLNsu0mH28K1awxgRE5SaP9mqoLLDL0GSyWeofgLOWPheFtvJUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIs8gBuSjifKel5uTzsNZCwBUxCh4R6E2mzkvV6BH0VvS/NeusHto15SmCH8/PklENku/dRjylebdlfJO5kKSBw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAgKwASZKgE2SanxYdcSX1n5ONoYnAlDgGPkXWocXBkLaD7RsnBd3HSH0P5R3/mm7lPri8wJ8NSbC5hEHlrN/kheuLxFOQ9jPeNehNRmFpWXa5QpYrk7EeFmQZGH6t8ePFmaKwdV/LkyVSEeahahilI5T3YMGl1W/dGnzhdqjLOFAFvj2r8gmqoUeZZeqUwgjI/HyGyp8McFziwm7yNCZ3ylJWvulwQxzvQmtAkJ7B9XWiVKSkFj34mYY/C+ITQ/SPh2P6Tg+UyjWfcvXNjstCWs/faNoIdOZ8+QMIEf2h07xO2IwePYNAEtevMj/zH4Fq7N3g3LhNVVNCqAK2y2PPDNyVkSZPTTVBDpPNDYfZRQvGNIXEj9nSS0nVoUfOz9c44FHJbfIlR560Y67fsxj42e2tZR6oAFpAlKqZh9CX9y4cGeQTlDhBKZTHxtVyfPXvm0MgDPMefeyoFDOYAf1QYSwIX1mOKi9jS6HHLLoFL1mgEpxW6XhnyO58LDZ7wtovp3O9y8phrfxbhMSRsKG45FPBqEzpnbCVjomR8CLO5CrXjoKWFO0UodHJ9A2Pa4Ag4IyYs3+n66/dG+VEigpVcYz6tJ35CuoiNKeVkHmJsQ+qdzCem7I2RElyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwUnTGP4XH81qfR+gARlBdTkee7bNgg2NuUp/c6FrRzZC4i+Mw+fFpUzk4BCbsUGNP+a41ghd7iGUXHm3TumLIAg==" } ] }, { "header": { "sequence": 32, - "previousBlockHash": "DB347E658F69398FBA0514E5632ACC08CD5426F572EFD39F2801F196EEA858D9", + "previousBlockHash": "9FED64E2714B2B9D0E8EF4DDAE6F3DDE9E406DEDD5C5A631DE8A899814EB946E", "noteCommitment": { "type": "Buffer", - "data": "base64:DLxVUrW35Fikch3nzRM92Xj6QnTUr3dO3yVWVluK1FQ=" + "data": "base64:qOdp6je3Fgt+AzkQbfeLvlNWC8KrLQDFUxJWPNw2ngg=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:NbPtg7Mc60xb+R6x+GTDehPzS8A5rxGnUhjBhgHYcZw=" + "data": "base64:+kNLuyuspfA0eZ9K4zt4Zm8MD+6klRYdYPOo9CsgZAg=" }, - "target": "8586272891975394081501234046548483488927770027117611058529723807736295", + "target": "8503066470861216466848404714919106509965788950166758437480316700496187", "randomness": "0", - "timestamp": 1708551450398, + "timestamp": 1712340110801, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 36, "work": "0" @@ -4284,29 +4284,29 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5GvKiP////8AAAAAMqnVnw7A9WnjMttQ5NgyhHrTjmGFy0eZlewZcjMExDWqPQ6RLAmjPS4RGAL4MztYHNR2RdJ+b+e3KJYeb1abN4FRuRAV22azmfSmWHCV5QyDGyvWpSV7CQelGETlC54z7UWBGOl7jzfsSL3ZXD27xrFUqRHvQAiElxulMho7MSoPDYtiQaN62htjEIB2rrYBZafyN8wd0fUMBTkVYslqF4+F7b7P21gfgpcjkibz1JOhWoKyzm7RS0wpF//GFXv+WAjLYisqITx3zYjWGYg0TNNNiMraahsbMR+jowBjSXfFxuDuAG0IGCyyu399ToWuDYROta95/YaXOxB4ZQ9wYOT+w58pjJm7bzpKGa4SFhEjY63iy122F8iQZChKCsJNBIRCREcDow1JlaWUnain7O9Vitq785RFJv4d2+YxXRG5tzfxDC5B6hwOrFIraYYpOtE2i4mTYrH0EPs/ETHn69MyWCgeY3ButtOKXk9DCGvtH7VnBmtfp6lzbGsvkC48QODG7nVWuakQEV4GBmga16MVNYqHP8w824SglK+0/E7sWmP8QBLHZVccZxJjypkd4xch1B9r4pYq7XjhDpFe1HNKpjSv6MxLMdPldMThj+E0jFgCJ3FXMUlyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwj2o00XqcQYwI77r9rpj1o0TVMFmd6uHMboqNruf8CSxUCo8ZwIK8kKe7cXjaIm759gnvPL8zbsBLpR2AUHrwAQ==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5GvKiP////8AAAAAPKLjUEzdvZw5bNRQRGsgCHdQBft1+4KrOM4MCukNSXGSSN8FtZJ2BZUAklLOpupEnsjikoxdCWop9l/4+nxAQaFNSjiruiUkZWmP1ydz+8+gZ9b7sS+bVy1q8KJ+YmZeuE6L8/XgYxRNdNo46+ZSmz5wtJ1JvgWTPEUdHI7yoX0W03HW6qwkzeSj0lEz5a/qU0kVWmPltp6KgIS6yptq9eRMM6f1c6EAt44XyoMiJdaX5zcnucDEG2cK7c0jFTE+TMCfjJE7IfY685nOyBxhtmKHmcCssuYlUFcwiVGf1ICu/SrDt06E7g0iGGjTVON+Qx7UlEKzULFv6XLWOZc0qbaJMqLiDiKS+kqk3argx4FsFkOukLZmvJjyCgTROac9UFdPPkhG2F23wwaYNhYsS6mQuEeLsicnsCOj64thuSxrgsJeuURmtkxlt+SBt7KpXdJApdaZgLvqIm8QnU68WnUss84v2aFE75rKTba2cfttsZbgBN+segLHJIWzNr/YE6Zy6BRIcDR/cHcrHTRMLUEphzbO+ba0LMEkEZgqPjGsCHwQPs2TnK5cYEYOg7CeqwLlg0KzHxlyq1CYQyQxvfkKm2OxFUiyja7YUtggdO5y9BHbZz7VHklyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwttkn8WlkXSK4KO6rkljmYez/dpBqD//GGcgy34ZWIRupvmsfPC8VgWilAutw1h8wUXYS5LQ3gU07hj2bASOzBw==" }, { "type": "Buffer", - "data": "base64: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" + "data": "base64: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" } ] }, { "header": { "sequence": 32, - "previousBlockHash": "DB347E658F69398FBA0514E5632ACC08CD5426F572EFD39F2801F196EEA858D9", + "previousBlockHash": "9FED64E2714B2B9D0E8EF4DDAE6F3DDE9E406DEDD5C5A631DE8A899814EB946E", "noteCommitment": { "type": "Buffer", - "data": "base64:0EHe0lrJHG1eoAFlioeGLeiDIjE2WsxuFuSgbuk9AT4=" + "data": "base64:+HL8j1ES9PueqF5grsciqFGHju0BlJVXC/BKg1/o0mo=" }, "transactionCommitment": { "type": "Buffer", - "data": "base64:FsPkl95AkV505NLQfTnrQkciCV55ghm/QZ5M6MuXUQE=" + "data": "base64:ASjjw7dXfFI+ONMElHRMIAGeP34JZqeVm+ASwiOu/LM=" }, - "target": "8586272891975394081501234046548483488927770027117611058529723807736295", + "target": "8503066470861216466848404714919106509965788950166758437480316700496187", "randomness": "0", - "timestamp": 1708551450702, + "timestamp": 1712340111094, "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", "noteSize": 34, "work": "0" @@ -4314,7 +4314,7 @@ "transactions": [ { "type": "Buffer", - "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAA65ZP8yZ6KOneK47tuvwT6ziB/HKNrTuRZ1ywZf6q8cq0KaeelxomKtPhGVpa76kUzzKEXxBpYHbMVbYWhbf9XXsqbKN8cTwz1okFhjgfmkmjgdnihFW2FWRELyHNJNcwtO/JoJPOL6eaeBr4y8YeCPcS7MzNd+1FVp2iH/j4u4oATyWzkIC/LtfpFV1NMRa3F5Zn7L7G8q5TOrZHeTbbrsv6NVndBPcnHGyj1H4KFG6NmuFYI7/IdVTtShgm7u5iGmNHjHp8pwghbEbPMudNtxqcqYCrYA7Lc5qi2k49jqocxbFL1bSDDBaDQe2YCxTgBz61KixTCp1IlR8zgzI2O94kZyxf1y7ME0L2XOw5FNibBan2cqDnIRkU+s80EX9XduYUY7HXmOWX3SGoRNnrmiLU89WjNoNT1UNa5Mdgy+8Cqdsar3vPhX+Q/84cvhGbfnXU49mcjifpDup9L4BJqvQ5IKbzRhOA2NLI16jRpkp3tHhyc099g2m1elMFIhgEnyUdZR7803TEG3RZSvEy24lq5nN+wunwxDKU7MuHm2BQ3BMT9lz90ndIRx55SutQVuDwuTOZ8JbXHh4SMxt+XjgU66dy/XCnTNjKEQl0Vmq/1ZAVAaL73klyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwuL8OAwdYgXNujssLSQwOKl0Qj1NliN26bxk40oxaQQJIj6JZjuPZsfp/BhedK1l0Uvt2Ror6CYohsB8HFZjdCw==" + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAZQBd/gxiXU7vyQC4re/gwQgJ4j+VSGzC6gdeR5ashYmXgl6MhhR+1qZjvbZQhuVgSDbNhmye+LN3CDDC90P/RDvNnR0TagHbh2kA26NhYE+hj/vMYt8BC2CuKlqmQOawn/ECZzB4cm54mpWiRL8IokTK/DBqsNcyzmveOuthLwcSwllZwfpKz38D/21eK6pVMfopRUf3akjoIRowm/qHQAyGQ7hsyd9VOYpdQc2SjIS27v+K1UWCY5cWbSbcTQCWXDfVkzB9bSsy9VqyqDk0SrJ9Y54A9o81dMC7QMX2srZxbGVaob5mMVotcrmIzgAwifbZG6bo1TzHy4aoqz4/0L3h7T+YBRgXsUgymBkGM9V5ldhyYrmZWNQfb4XFVWgL2OFWGm7bEOF8nmg/c+1A9iFCCv+BwIpoE8mcUsnMDNGIr2g2wIVUAaga6Sk7YJ+cbd8TSOKCQWxq1hNvyz6b96zi7PW0hum7HzScrN0b+rZv8uYPXRQ7NZVd04UxYrK9NezcWt8EOGp0Ty6887YRPHDUKBU7/7sem9J7ELNgaprJJj8Tl3HrfZ6mT/4/ty6flTHwSKycM1RCOP9qJi4g6dCButOk52ZwVGgn6jQevP+rq3lNCxFx+0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwf+r0xLtGN2l9AADym5/pNBxE4eaP+szzc188evXG4lPOs97rD07ubjPQ5FoNohgZN8BkJGx9uZGHpXudK/9gAQ==" } ] } diff --git a/ironfish/src/memPool/memPool.test.ts b/ironfish/src/memPool/memPool.test.ts index abd7999187..582b9116e5 100644 --- a/ironfish/src/memPool/memPool.test.ts +++ b/ironfish/src/memPool/memPool.test.ts @@ -17,7 +17,7 @@ import { useMinerBlockFixture, useTxFixture, } from '../testUtilities' -import { Account } from '../wallet' +import { Account, TransactionOutput } from '../wallet' import { getPreciseFeeRate } from './feeEstimator' import { mempoolEntryComparator } from './memPool' @@ -146,11 +146,13 @@ describe('MemPool', () => { it('returns transactions sorted by fee rate deterministically', async () => { const from = await useAccountFixture(nodeTest.wallet, 'account') - const outputs = Array(10).fill({ - publicAddress: from.publicAddress, - amount: 1n, - assetId: Asset.nativeId(), - memo: '', + const outputs: TransactionOutput[] = [...new Array(10)].map(() => { + return { + publicAddress: from.publicAddress, + amount: 1n, + assetId: Asset.nativeId(), + memo: Buffer.alloc(32, '', 'hex'), + } }) const transactionInputs = [ diff --git a/ironfish/src/migrations/data/016-sequence-to-tx.ts b/ironfish/src/migrations/data/016-sequence-to-tx.ts index b85a4a46c5..19dfb9aac0 100644 --- a/ironfish/src/migrations/data/016-sequence-to-tx.ts +++ b/ironfish/src/migrations/data/016-sequence-to-tx.ts @@ -2,10 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { Logger } from '../../logger' -import { IDatabase, IDatabaseTransaction } from '../../storage' +import { IDatabase } from '../../storage' import { Database, Migration, MigrationContext } from '../migration' -import { GetOldAccounts } from './021-add-version-to-accounts/schemaOld' export class Migration016 extends Migration { path = __filename @@ -15,41 +13,18 @@ export class Migration016 extends Migration { return context.wallet.walletDb.db } - async forward( - context: MigrationContext, - db: IDatabase, - tx: IDatabaseTransaction | undefined, - logger: Logger, - ): Promise { - const accounts = await GetOldAccounts(context, db, tx) + /* + * This migration pre-dated the network reset in f483d9aeb87eda3101ae2c602e19d3ebb88897b6 + * + * All assets, transactions, and notes from before the reset are no longer valid. + * + * These data need to be deleted before the node can run, so there is no need + * to run this migration. + */ - logger.info(`Indexing on-chain transactions for ${accounts.length} accounts`) + // eslint-disable-next-line @typescript-eslint/no-empty-function + async forward(): Promise {} - for (const account of accounts) { - let onChainCount = 0 - let offChainCount = 0 - - logger.info(`Indexing on-chain transactions for account ${account.name}`) - for await (const transaction of account.getTransactions()) { - if (transaction.sequence === null) { - offChainCount++ - continue - } - - await context.wallet.walletDb.saveSequenceToTransactionHash( - account, - transaction.sequence, - transaction.transaction.hash(), - ) - onChainCount++ - } - - logger.info(` Indexed ${onChainCount} on-chain transactions`) - logger.info(` Skipped ${offChainCount} transactions that haven't been added to the chain`) - } - } - - async backward(context: MigrationContext): Promise { - await context.wallet.walletDb.sequenceToTransactionHash.clear() - } + // eslint-disable-next-line @typescript-eslint/no-empty-function + async backward(): Promise {} } diff --git a/ironfish/src/migrations/data/017-sequence-encoding.ts b/ironfish/src/migrations/data/017-sequence-encoding.ts index 899110cd36..2c19be8f1f 100644 --- a/ironfish/src/migrations/data/017-sequence-encoding.ts +++ b/ironfish/src/migrations/data/017-sequence-encoding.ts @@ -14,7 +14,6 @@ import { U32_ENCODING_BE, } from '../../storage' import { Database, Migration, MigrationContext } from '../migration' -import { GetOldAccounts } from './021-add-version-to-accounts/schemaOld' export class Migration017 extends Migration { path = __filename @@ -30,30 +29,7 @@ export class Migration017 extends Migration { tx: IDatabaseTransaction | undefined, logger: Logger, ): Promise { - const accounts = await GetOldAccounts(context, db, tx) - - logger.info(`Re-indexing transactions for ${accounts.length} accounts`) - logger.info('') - - for (const account of accounts) { - let transactionCount = 0 - - logger.info(`Indexing on-chain transactions for account ${account.name}`) - for await (const transactionValue of account.getTransactions()) { - await context.wallet.walletDb.saveTransaction( - account, - transactionValue.transaction.hash(), - transactionValue, - ) - transactionCount++ - } - - logger.info(` Indexed ${transactionCount} transactions for account ${account.name}`) - logger.info('') - } - logger.info('Clearing data from old datastores...') - const { sequenceToNoteHash, sequenceToTransactionHash, pendingTransactionHashes } = this.getOldStores(db) @@ -62,46 +38,8 @@ export class Migration017 extends Migration { await pendingTransactionHashes.clear() } - async backward(context: MigrationContext, db: IDatabase): Promise { - const accounts = await GetOldAccounts(context, db) - - const { sequenceToNoteHash, sequenceToTransactionHash, pendingTransactionHashes } = - this.getOldStores(db) - - for (const account of accounts) { - for await (const transactionValue of account.getTransactions()) { - const transactionHash = transactionValue.transaction.hash() - - for (const note of transactionValue.transaction.notes) { - if (transactionValue.sequence !== null) { - const sequence = transactionValue.sequence - - const decryptedNoteValue = await account.getDecryptedNote(note.hash()) - - if (decryptedNoteValue === undefined) { - continue - } - - await sequenceToNoteHash.put([account.prefix, [sequence, note.hash()]], null) - await sequenceToTransactionHash.put( - [account.prefix, [sequence, transactionHash]], - null, - ) - } else { - const expiration = transactionValue.transaction.expiration() - await pendingTransactionHashes.put( - [account.prefix, [expiration, transactionHash]], - null, - ) - } - } - } - } - - await context.wallet.walletDb.sequenceToNoteHash.clear() - await context.wallet.walletDb.sequenceToTransactionHash.clear() - await context.wallet.walletDb.pendingTransactionHashes.clear() - } + // eslint-disable-next-line @typescript-eslint/no-empty-function + async backward(): Promise {} getOldStores(db: IDatabase): { sequenceToNoteHash: IDatabaseStore diff --git a/ironfish/src/migrations/data/018-backfill-wallet-assets.ts b/ironfish/src/migrations/data/018-backfill-wallet-assets.ts index 17b95f59ad..1d7ce71f88 100644 --- a/ironfish/src/migrations/data/018-backfill-wallet-assets.ts +++ b/ironfish/src/migrations/data/018-backfill-wallet-assets.ts @@ -1,10 +1,8 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { Logger } from '../../logger' -import { IDatabase, IDatabaseTransaction } from '../../storage' +import { IDatabase } from '../../storage' import { Database, Migration, MigrationContext } from '../migration' -import { GetOldAccounts } from './021-add-version-to-accounts/schemaOld' export class Migration018 extends Migration { path = __filename @@ -14,42 +12,18 @@ export class Migration018 extends Migration { return context.wallet.walletDb.db } - async forward( - context: MigrationContext, - _db: IDatabase, - tx: IDatabaseTransaction | undefined, - logger: Logger, - ): Promise { - // Ensure there are no corrupted records for users who might have failed - // running this migration - await context.wallet.walletDb.assets.clear() + /* + * This migration pre-dated the network reset in f483d9aeb87eda3101ae2c602e19d3ebb88897b6 + * + * All assets, transactions, and notes from before the reset are no longer valid. + * + * These data need to be deleted before the node can run, so there is no need + * to run this migration. + */ - const accounts = await GetOldAccounts(context, _db, tx) + // eslint-disable-next-line @typescript-eslint/no-empty-function + async forward(): Promise {} - logger.info(`Backfilling assets for ${accounts.length} accounts`) - - for (const account of accounts) { - logger.info('') - logger.info(` Backfilling assets for account ${account.name}`) - - for await (const transactionValue of account.getTransactionsOrderedBySequence(tx)) { - await account.saveMintsToAssetsStore(transactionValue, null, tx) - await account.saveConnectedBurnsToAssetsStore(transactionValue.transaction, tx) - } - - let assetCount = 0 - for await (const _ of account.getAssets(tx)) { - assetCount++ - } - - const assetsString = assetCount === 1 ? `${assetCount} asset` : `${assetCount} : assets` - logger.info(` Completed backfilling ${assetsString} for account ${account.name}`) - } - - logger.info('') - } - - async backward(context: MigrationContext): Promise { - await context.wallet.walletDb.assets.clear() - } + // eslint-disable-next-line @typescript-eslint/no-empty-function + async backward(): Promise {} } diff --git a/ironfish/src/migrations/data/019-backfill-wallet-assets-from-chain.ts b/ironfish/src/migrations/data/019-backfill-wallet-assets-from-chain.ts index 1e1b24949c..10b6add281 100644 --- a/ironfish/src/migrations/data/019-backfill-wallet-assets-from-chain.ts +++ b/ironfish/src/migrations/data/019-backfill-wallet-assets-from-chain.ts @@ -1,17 +1,8 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { Assert } from '../../assert' -import { AssetValueEncoding } from '../../blockchain/database/assetValue' -import { AssetSchema } from '../../blockchain/schema' -import { Logger } from '../../logger' -import { FullNode } from '../../node' -import { BUFFER_ENCODING, IDatabase, IDatabaseStore, IDatabaseTransaction } from '../../storage' -import { createDB } from '../../storage/utils' -import { BufferUtils } from '../../utils' -import { Account } from '../../wallet' +import { IDatabase } from '../../storage' import { Database, Migration, MigrationContext } from '../migration' -import { GetOldAccounts } from './021-add-version-to-accounts/schemaOld' export class Migration019 extends Migration { path = __filename @@ -21,77 +12,17 @@ export class Migration019 extends Migration { return context.wallet.walletDb.db } - async forward( - context: MigrationContext, - _db: IDatabase, - tx: IDatabaseTransaction | undefined, - logger: Logger, - ): Promise { - const accounts = await GetOldAccounts(context, _db, tx) + /* + * This migration pre-dated the network reset in f483d9aeb87eda3101ae2c602e19d3ebb88897b6 + * + * All assets, transactions, and notes from before the reset are no longer valid. + * + * These data need to be deleted before the node can run, so there is no need + * to run this migration. + */ - logger.info(`Backfilling assets for ${accounts.length} accounts`) - - const assetsToBackfill: { - account: Account - assets: { id: Buffer; sequence: number | null; hash: Buffer | null }[] - }[] = [] - - for (const account of accounts) { - const assets = [] - - for await (const { note, sequence, blockHash: hash } of account.getNotes()) { - const asset = await context.wallet.walletDb.getAsset(account, note.assetId(), tx) - if (!asset) { - assets.push({ id: note.assetId(), sequence, hash }) - } - } - - assetsToBackfill.push({ account, assets }) - } - - if (assetsToBackfill.length) { - Assert.isInstanceOf(context, FullNode) - const chainDb = createDB({ location: context.config.chainDatabasePath }) - await chainDb.open() - - const chainAssets: IDatabaseStore = chainDb.addStore({ - name: 'bA', - keyEncoding: BUFFER_ENCODING, - valueEncoding: new AssetValueEncoding(), - }) - - for (const { account, assets } of assetsToBackfill) { - logger.info('') - logger.info(` Backfilling assets for account ${account.name}`) - - for (const { id, hash, sequence } of assets) { - const chainAsset = await chainAssets.get(id) - Assert.isNotUndefined(chainAsset, 'Asset must be non-null in the chain') - - logger.info(` Backfilling ${BufferUtils.toHuman(chainAsset.name)} from chain`) - await account.saveAssetFromChain( - chainAsset.createdTransactionHash, - chainAsset.id, - chainAsset.metadata, - chainAsset.name, - chainAsset.nonce, - chainAsset.creator, - // this migration was created before asset ownership, therefore - // owner and creator are the same in the context of this migration - chainAsset.creator, - { hash, sequence }, - tx, - ) - } - - logger.info(` Completed backfilling assets for account ${account.name}`) - } - - await chainDb.close() - } - - logger.info('') - } + // eslint-disable-next-line @typescript-eslint/no-empty-function + async forward(): Promise {} // eslint-disable-next-line @typescript-eslint/no-empty-function async backward(): Promise {} diff --git a/ironfish/src/migrations/data/020-backfill-null-asset-supplies.ts b/ironfish/src/migrations/data/020-backfill-null-asset-supplies.ts index c42f89ba96..a9c8bff118 100644 --- a/ironfish/src/migrations/data/020-backfill-null-asset-supplies.ts +++ b/ironfish/src/migrations/data/020-backfill-null-asset-supplies.ts @@ -1,11 +1,8 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { Logger } from '../../logger' -import { IDatabase, IDatabaseTransaction } from '../../storage' -import { BufferUtils } from '../../utils' +import { IDatabase } from '../../storage' import { Database, Migration, MigrationContext } from '../migration' -import { GetOldAccounts } from './021-add-version-to-accounts/schemaOld' export class Migration020 extends Migration { path = __filename @@ -15,42 +12,17 @@ export class Migration020 extends Migration { return context.wallet.walletDb.db } - async forward( - context: MigrationContext, - _db: IDatabase, - tx: IDatabaseTransaction | undefined, - logger: Logger, - ): Promise { - const accounts = await GetOldAccounts(context, _db, tx) + /* + * This migration pre-dated the network reset in f483d9aeb87eda3101ae2c602e19d3ebb88897b6 + * + * All assets, transactions, and notes from before the reset are no longer valid. + * + * These data need to be deleted before the node can run, so there is no need + * to run this migration. + */ - logger.info(`Backfilling assets for ${accounts.length} accounts`) - - for (const account of accounts) { - logger.info('') - - let assetCount = 0 - logger.info(` Clearing assets for account ${account.name}`) - for await (const asset of account.getAssets(tx)) { - if (asset.creator.toString('hex') !== account.publicAddress) { - continue - } - - logger.info(` Re-syncing asset ${BufferUtils.toHuman(asset.name)}`) - await context.wallet.walletDb.deleteAsset(account, asset.id, tx) - assetCount++ - } - - for await (const transactionValue of account.getTransactionsOrderedBySequence(tx)) { - await account.saveMintsToAssetsStore(transactionValue, null, tx) - await account.saveConnectedBurnsToAssetsStore(transactionValue.transaction, tx) - } - - const assetsString = assetCount === 1 ? `${assetCount} asset` : `${assetCount} assets` - logger.info(` Completed backfilling ${assetsString} for account ${account.name}`) - } - - logger.info('') - } + // eslint-disable-next-line @typescript-eslint/no-empty-function + async forward(): Promise {} // eslint-disable-next-line @typescript-eslint/no-empty-function async backward(): Promise {} diff --git a/ironfish/src/migrations/data/024-unspent-notes.ts b/ironfish/src/migrations/data/024-unspent-notes.ts index c925edcb43..d0f5cfe274 100644 --- a/ironfish/src/migrations/data/024-unspent-notes.ts +++ b/ironfish/src/migrations/data/024-unspent-notes.ts @@ -2,12 +2,9 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { Logger } from '../../logger' -import { IDatabase, IDatabaseTransaction } from '../../storage' +import { IDatabase } from '../../storage' import { createDB } from '../../storage/utils' -import { Account } from '../../wallet' import { Database, Migration, MigrationContext } from '../migration' -import { GetStores } from './024-unspent-notes/stores' export class Migration024 extends Migration { path = __filename @@ -17,55 +14,18 @@ export class Migration024 extends Migration { return createDB({ location: context.config.walletDatabasePath }) } - async forward( - context: MigrationContext, - db: IDatabase, - tx: IDatabaseTransaction | undefined, - logger: Logger, - ): Promise { - const stores = GetStores(db) + /* + * This migration pre-dated the network reset in f483d9aeb87eda3101ae2c602e19d3ebb88897b6 + * + * All assets, transactions, and notes from before the reset are no longer valid. + * + * These data need to be deleted before the node can run, so there is no need + * to run this migration. + */ - const accounts = [] + // eslint-disable-next-line @typescript-eslint/no-empty-function + async forward(): Promise {} - for await (const accountValue of stores.old.accounts.getAllValuesIter()) { - accounts.push( - new Account({ - ...accountValue, - createdAt: null, - proofAuthorizingKey: null, - walletDb: context.wallet.walletDb, - }), - ) - } - - logger.info(`Indexing unspent notes for ${accounts.length} accounts`) - - for (const account of accounts) { - let unspentNotes = 0 - - logger.info(` Indexing unspent notes for account ${account.name}`) - for await (const [[, noteHash], note] of stores.old.decryptedNotes.getAllIter( - undefined, - account.prefixRange, - )) { - if (note.sequence === null || note.spent) { - continue - } - - await stores.new.unspentNoteHashes.put( - [account.prefix, note.note.assetId(), note.sequence, note.note.value(), noteHash], - null, - ) - unspentNotes++ - } - - logger.info(` Indexed ${unspentNotes} unspent notes for account ${account.name}`) - } - } - - async backward(context: MigrationContext, db: IDatabase): Promise { - const stores = GetStores(db) - - await stores.new.unspentNoteHashes.clear() - } + // eslint-disable-next-line @typescript-eslint/no-empty-function + async backward(): Promise {} } diff --git a/ironfish/src/migrations/data/024-unspent-notes/new/index.ts b/ironfish/src/migrations/data/024-unspent-notes/new/index.ts deleted file mode 100644 index 0f32cd175d..0000000000 --- a/ironfish/src/migrations/data/024-unspent-notes/new/index.ts +++ /dev/null @@ -1,37 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { - BigU64BEEncoding, - BufferEncoding, - IDatabase, - IDatabaseStore, - NULL_ENCODING, - PrefixArrayEncoding, - U32_ENCODING_BE, -} from '../../../../storage' -import { Account } from '../../../../wallet' - -export function GetNewStores(db: IDatabase): { - unspentNoteHashes: IDatabaseStore<{ - key: [Account['prefix'], Buffer, number, bigint, Buffer] - value: null - }> -} { - const unspentNoteHashes: IDatabaseStore<{ - key: [Account['prefix'], Buffer, number, bigint, Buffer] - value: null - }> = db.addStore({ - name: 'un', - keyEncoding: new PrefixArrayEncoding([ - [new BufferEncoding(), 4], // account prefix - [new BufferEncoding(), 32], // asset ID - [U32_ENCODING_BE, 4], // sequence - [new BigU64BEEncoding(), 8], // value - [new BufferEncoding(), 32], // note hash - ]), - valueEncoding: NULL_ENCODING, - }) - - return { unspentNoteHashes } -} diff --git a/ironfish/src/migrations/data/024-unspent-notes/old/AccountValue.ts b/ironfish/src/migrations/data/024-unspent-notes/old/AccountValue.ts deleted file mode 100644 index dc2fd64a3b..0000000000 --- a/ironfish/src/migrations/data/024-unspent-notes/old/AccountValue.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { PUBLIC_ADDRESS_LENGTH } from '@ironfish/rust-nodejs' -import bufio from 'bufio' -import { IDatabaseEncoding } from '../../../../storage' - -const KEY_LENGTH = 32 -const VIEW_KEY_LENGTH = 64 -const VERSION_LENGTH = 2 - -export interface AccountValue { - version: number - id: string - name: string - spendingKey: string | null - viewKey: string - incomingViewKey: string - outgoingViewKey: string - publicAddress: string -} - -export class AccountValueEncoding implements IDatabaseEncoding { - serialize(value: AccountValue): Buffer { - const bw = bufio.write(this.getSize(value)) - let flags = 0 - flags |= Number(!!value.spendingKey) << 0 - bw.writeU8(flags) - bw.writeU16(value.version) - bw.writeVarString(value.id, 'utf8') - bw.writeVarString(value.name, 'utf8') - if (value.spendingKey) { - bw.writeBytes(Buffer.from(value.spendingKey, 'hex')) - } - bw.writeBytes(Buffer.from(value.viewKey, 'hex')) - bw.writeBytes(Buffer.from(value.incomingViewKey, 'hex')) - bw.writeBytes(Buffer.from(value.outgoingViewKey, 'hex')) - bw.writeBytes(Buffer.from(value.publicAddress, 'hex')) - - return bw.render() - } - - deserialize(buffer: Buffer): AccountValue { - const reader = bufio.read(buffer, true) - const flags = reader.readU8() - const version = reader.readU16() - const hasSpendingKey = flags & (1 << 0) - const id = reader.readVarString('utf8') - const name = reader.readVarString('utf8') - const spendingKey = hasSpendingKey ? reader.readBytes(KEY_LENGTH).toString('hex') : null - const viewKey = reader.readBytes(VIEW_KEY_LENGTH).toString('hex') - const incomingViewKey = reader.readBytes(KEY_LENGTH).toString('hex') - const outgoingViewKey = reader.readBytes(KEY_LENGTH).toString('hex') - const publicAddress = reader.readBytes(PUBLIC_ADDRESS_LENGTH).toString('hex') - - return { - version, - id, - name, - viewKey, - incomingViewKey, - outgoingViewKey, - spendingKey, - publicAddress, - } - } - - getSize(value: AccountValue): number { - let size = 0 - size += 1 - size += VERSION_LENGTH - size += bufio.sizeVarString(value.id, 'utf8') - size += bufio.sizeVarString(value.name, 'utf8') - if (value.spendingKey) { - size += KEY_LENGTH - } - size += VIEW_KEY_LENGTH - size += KEY_LENGTH - size += KEY_LENGTH - size += PUBLIC_ADDRESS_LENGTH - - return size - } -} diff --git a/ironfish/src/migrations/data/024-unspent-notes/old/decryptedNoteValue.ts b/ironfish/src/migrations/data/024-unspent-notes/old/decryptedNoteValue.ts deleted file mode 100644 index 7761330a9d..0000000000 --- a/ironfish/src/migrations/data/024-unspent-notes/old/decryptedNoteValue.ts +++ /dev/null @@ -1,129 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { DECRYPTED_NOTE_LENGTH } from '@ironfish/rust-nodejs' -import bufio from 'bufio' -import { Note } from '../../../../primitives/note' -import { IDatabaseEncoding } from '../../../../storage' - -export interface DecryptedNoteValue { - accountId: string - note: Note - spent: boolean - transactionHash: Buffer - // These fields are populated once the note's transaction is on the main chain - index: number | null - nullifier: Buffer | null - blockHash: Buffer | null - sequence: number | null -} - -export class DecryptedNoteValueEncoding implements IDatabaseEncoding { - serialize(value: DecryptedNoteValue): Buffer { - const { accountId, nullifier, index, note, spent, transactionHash, blockHash, sequence } = - value - const bw = bufio.write(this.getSize(value)) - - let flags = 0 - flags |= Number(!!index) << 0 - flags |= Number(!!nullifier) << 1 - flags |= Number(spent) << 2 - flags |= Number(!!blockHash) << 3 - flags |= Number(!!sequence) << 4 - bw.writeU8(flags) - - bw.writeVarString(accountId, 'utf8') - bw.writeBytes(note.serialize()) - bw.writeHash(transactionHash) - - if (index) { - bw.writeU32(index) - } - if (nullifier) { - bw.writeHash(nullifier) - } - if (blockHash) { - bw.writeHash(blockHash) - } - if (sequence) { - bw.writeU32(sequence) - } - - return bw.render() - } - - deserialize(buffer: Buffer): DecryptedNoteValue { - const reader = bufio.read(buffer, true) - - const flags = reader.readU8() - const hasIndex = flags & (1 << 0) - const hasNullifier = flags & (1 << 1) - const spent = Boolean(flags & (1 << 2)) - const hasBlockHash = flags & (1 << 3) - const hasSequence = flags & (1 << 4) - - const accountId = reader.readVarString('utf8') - const serializedNote = reader.readBytes(DECRYPTED_NOTE_LENGTH) - const transactionHash = reader.readHash() - - let index = null - if (hasIndex) { - index = reader.readU32() - } - - let nullifier = null - if (hasNullifier) { - nullifier = reader.readHash() - } - - let blockHash = null - if (hasBlockHash) { - blockHash = reader.readHash() - } - - let sequence = null - if (hasSequence) { - sequence = reader.readU32() - } - - const note = new Note(serializedNote) - - return { - accountId, - index, - nullifier, - note, - spent, - transactionHash, - blockHash, - sequence, - } - } - - getSize(value: DecryptedNoteValue): number { - let size = 1 - size += bufio.sizeVarString(value.accountId, 'utf8') - size += DECRYPTED_NOTE_LENGTH - - // transaction hash - size += 32 - - if (value.index) { - size += 4 - } - - if (value.nullifier) { - size += 32 - } - - if (value.blockHash) { - size += 32 - } - - if (value.sequence) { - size += 4 - } - - return size - } -} diff --git a/ironfish/src/migrations/data/024-unspent-notes/old/index.ts b/ironfish/src/migrations/data/024-unspent-notes/old/index.ts deleted file mode 100644 index 274d1c06c7..0000000000 --- a/ironfish/src/migrations/data/024-unspent-notes/old/index.ts +++ /dev/null @@ -1,42 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { NoteEncryptedHash } from '../../../../primitives/noteEncrypted' -import { - BufferEncoding, - IDatabase, - IDatabaseStore, - PrefixEncoding, - StringEncoding, -} from '../../../../storage' -import { Account } from '../../../../wallet' -import { AccountValue, AccountValueEncoding } from './AccountValue' -import { DecryptedNoteValue, DecryptedNoteValueEncoding } from './decryptedNoteValue' - -export function GetOldStores(db: IDatabase): { - accounts: IDatabaseStore<{ key: string; value: AccountValue }> - decryptedNotes: IDatabaseStore<{ - key: [Account['prefix'], NoteEncryptedHash] - value: DecryptedNoteValue - }> -} { - const accounts: IDatabaseStore<{ key: string; value: AccountValue }> = db.addStore( - { - name: 'a', - keyEncoding: new StringEncoding(), - valueEncoding: new AccountValueEncoding(), - }, - false, - ) - - const decryptedNotes: IDatabaseStore<{ - key: [Account['prefix'], NoteEncryptedHash] - value: DecryptedNoteValue - }> = db.addStore({ - name: 'd', - keyEncoding: new PrefixEncoding(new BufferEncoding(), new BufferEncoding(), 4), - valueEncoding: new DecryptedNoteValueEncoding(), - }) - - return { accounts, decryptedNotes } -} diff --git a/ironfish/src/migrations/data/024-unspent-notes/stores.ts b/ironfish/src/migrations/data/024-unspent-notes/stores.ts deleted file mode 100644 index b046b7c66f..0000000000 --- a/ironfish/src/migrations/data/024-unspent-notes/stores.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { IDatabase } from '../../../storage' -import { GetNewStores } from './new' -import { GetOldStores } from './old' - -export function GetStores(db: IDatabase): { - old: ReturnType - new: ReturnType -} { - const oldStores = GetOldStores(db) - const newStores = GetNewStores(db) - - return { old: oldStores, new: newStores } -} diff --git a/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash.ts b/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash.ts index e21642140b..97aa8a87a9 100644 --- a/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash.ts +++ b/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash.ts @@ -1,12 +1,9 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { Logger } from '../../logger' -import { IDatabase, IDatabaseTransaction } from '../../storage' +import { IDatabase } from '../../storage' import { createDB } from '../../storage/utils' -import { Account } from '../../wallet' import { Database, Migration, MigrationContext } from '../migration' -import { GetStores } from './025-backfill-wallet-nullifier-to-transaction-hash/stores' export class Migration025 extends Migration { path = __filename @@ -16,88 +13,18 @@ export class Migration025 extends Migration { return createDB({ location: context.config.walletDatabasePath }) } - async forward( - context: MigrationContext, - db: IDatabase, - _tx: IDatabaseTransaction | undefined, - logger: Logger, - ): Promise { - const accounts = [] - const stores = GetStores(db) + /* + * This migration pre-dated the network reset in f483d9aeb87eda3101ae2c602e19d3ebb88897b6 + * + * All assets, transactions, and notes from before the reset are no longer valid. + * + * These data need to be deleted before the node can run, so there is no need + * to run this migration. + */ - for await (const account of stores.old.accounts.getAllValuesIter()) { - accounts.push( - new Account({ - ...account, - createdAt: null, - proofAuthorizingKey: null, - walletDb: context.wallet.walletDb, - }), - ) - } + // eslint-disable-next-line @typescript-eslint/no-empty-function + async forward(): Promise {} - const accountsString = - accounts.length === 1 ? `${accounts.length} account` : `${accounts.length} accounts` - logger.info(`Backfilling nullifier to transaction hashes for ${accountsString}`) - - for (const account of accounts) { - logger.info('') - logger.info(` Backfilling nullifier to transaction hashes for account ${account.name}`) - - const head = await stores.old.heads.get(account.id) - // If the account has not scanned, we can skip the backfill - if (!head) { - continue - } - - let transactionCount = 0 - for await (const { blockHash, transaction } of stores.old.transactions.getAllValuesIter( - undefined, - account.prefixRange, - )) { - // If the transaction is expired, we can skip the backfill - if ( - !blockHash && - transaction.expiration() !== 0 && - transaction.expiration() <= head.sequence - ) { - continue - } - - // Backfill the mappings from all transaction spends - for (const spend of transaction.spends) { - const existingNullifierToTransactionHash = - await stores.new.nullifierToTransactionHash.get([account.prefix, spend.nullifier]) - // Upsert a record for connected transactions or if a mapping doesn't already exist - if (blockHash || !existingNullifierToTransactionHash) { - await stores.new.nullifierToTransactionHash.put( - [account.prefix, spend.nullifier], - transaction.hash(), - ) - } - } - - transactionCount++ - } - - const transactionsString = - transactionCount === 1 - ? `${transactionCount} transaction` - : `${transactionCount} transactions` - logger.info(` Completed backfilling ${transactionsString} for account ${account.name}`) - } - - logger.info('') - } - - async backward( - _context: MigrationContext, - db: IDatabase, - tx: IDatabaseTransaction | undefined, - logger: Logger, - ): Promise { - const stores = GetStores(db) - logger.info('Clearing nullifierToTransactionHash') - await stores.new.nullifierToTransactionHash.clear(tx) - } + // eslint-disable-next-line @typescript-eslint/no-empty-function + async backward(): Promise {} } diff --git a/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash/new/index.ts b/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash/new/index.ts deleted file mode 100644 index 39f4e115e7..0000000000 --- a/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash/new/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { BufferEncoding, IDatabase, IDatabaseStore, PrefixEncoding } from '../../../../storage' - -export function GetNewStores(db: IDatabase): { - nullifierToTransactionHash: IDatabaseStore<{ - key: [Buffer, Buffer] - value: Buffer - }> -} { - const nullifierToTransactionHash: IDatabaseStore<{ key: [Buffer, Buffer]; value: Buffer }> = - db.addStore({ - name: 'nt', - keyEncoding: new PrefixEncoding(new BufferEncoding(), new BufferEncoding(), 4), - valueEncoding: new BufferEncoding(), - }) - - return { nullifierToTransactionHash } -} diff --git a/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash/old/accountValue.ts b/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash/old/accountValue.ts deleted file mode 100644 index dedebec152..0000000000 --- a/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash/old/accountValue.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { PUBLIC_ADDRESS_LENGTH } from '@ironfish/rust-nodejs' -import bufio from 'bufio' -import { IDatabaseEncoding } from '../../../../storage' - -const KEY_LENGTH = 32 -export const VIEW_KEY_LENGTH = 64 -const VERSION_LENGTH = 2 - -export interface AccountValue { - version: number - id: string - name: string - spendingKey: string | null - viewKey: string - incomingViewKey: string - outgoingViewKey: string - publicAddress: string -} - -export class AccountValueEncoding implements IDatabaseEncoding { - serialize(value: AccountValue): Buffer { - const bw = bufio.write(this.getSize(value)) - let flags = 0 - flags |= Number(!!value.spendingKey) << 0 - bw.writeU8(flags) - bw.writeU16(value.version) - bw.writeVarString(value.id, 'utf8') - bw.writeVarString(value.name, 'utf8') - if (value.spendingKey) { - bw.writeBytes(Buffer.from(value.spendingKey, 'hex')) - } - bw.writeBytes(Buffer.from(value.viewKey, 'hex')) - bw.writeBytes(Buffer.from(value.incomingViewKey, 'hex')) - bw.writeBytes(Buffer.from(value.outgoingViewKey, 'hex')) - bw.writeBytes(Buffer.from(value.publicAddress, 'hex')) - - return bw.render() - } - - deserialize(buffer: Buffer): AccountValue { - const reader = bufio.read(buffer, true) - const flags = reader.readU8() - const version = reader.readU16() - const hasSpendingKey = flags & (1 << 0) - const id = reader.readVarString('utf8') - const name = reader.readVarString('utf8') - const spendingKey = hasSpendingKey ? reader.readBytes(KEY_LENGTH).toString('hex') : null - const viewKey = reader.readBytes(VIEW_KEY_LENGTH).toString('hex') - const incomingViewKey = reader.readBytes(KEY_LENGTH).toString('hex') - const outgoingViewKey = reader.readBytes(KEY_LENGTH).toString('hex') - const publicAddress = reader.readBytes(PUBLIC_ADDRESS_LENGTH).toString('hex') - - return { - version, - id, - name, - viewKey, - incomingViewKey, - outgoingViewKey, - spendingKey, - publicAddress, - } - } - - getSize(value: AccountValue): number { - let size = 0 - size += 1 - size += VERSION_LENGTH - size += bufio.sizeVarString(value.id, 'utf8') - size += bufio.sizeVarString(value.name, 'utf8') - if (value.spendingKey) { - size += KEY_LENGTH - } - size += VIEW_KEY_LENGTH - size += KEY_LENGTH - size += KEY_LENGTH - size += PUBLIC_ADDRESS_LENGTH - - return size - } -} diff --git a/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash/old/headValue.ts b/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash/old/headValue.ts deleted file mode 100644 index b1cc494d3e..0000000000 --- a/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash/old/headValue.ts +++ /dev/null @@ -1,43 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import bufio from 'bufio' -import { IDatabaseEncoding } from '../../../../storage' - -export type HeadValue = { - hash: Buffer - sequence: number -} - -export class NullableHeadValueEncoding implements IDatabaseEncoding { - serialize(value: HeadValue | null): Buffer { - const bw = bufio.write(this.getSize(value)) - - if (value) { - bw.writeHash(value.hash) - bw.writeU32(value.sequence) - } - - return bw.render() - } - - deserialize(buffer: Buffer): HeadValue | null { - const reader = bufio.read(buffer, true) - - if (reader.left()) { - const hash = reader.readHash() - const sequence = reader.readU32() - return { hash, sequence } - } - - return null - } - - getSize(value: HeadValue | null): number { - if (!value) { - return 0 - } - - return 32 + 4 - } -} diff --git a/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash/old/index.ts b/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash/old/index.ts deleted file mode 100644 index b94b70ba11..0000000000 --- a/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash/old/index.ts +++ /dev/null @@ -1,45 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { - BufferEncoding, - IDatabase, - IDatabaseStore, - PrefixEncoding, - StringEncoding, -} from '../../../../storage' -import { AccountValue, AccountValueEncoding } from './accountValue' -import { HeadValue, NullableHeadValueEncoding } from './headValue' -import { TransactionValue, TransactionValueEncoding } from './transactionValue' - -export function GetOldStores(db: IDatabase): { - accounts: IDatabaseStore<{ key: string; value: AccountValue }> - heads: IDatabaseStore<{ key: string; value: HeadValue | null }> - transactions: IDatabaseStore<{ key: [Buffer, Buffer]; value: TransactionValue }> -} { - const accounts: IDatabaseStore<{ key: string; value: AccountValue }> = db.addStore({ - name: 'a', - keyEncoding: new StringEncoding(), - valueEncoding: new AccountValueEncoding(), - }) - - const heads: IDatabaseStore<{ - key: string - value: HeadValue | null - }> = db.addStore({ - name: 'h', - keyEncoding: new StringEncoding(), - valueEncoding: new NullableHeadValueEncoding(), - }) - - const transactions: IDatabaseStore<{ - key: [Buffer, Buffer] - value: TransactionValue - }> = db.addStore({ - name: 't', - keyEncoding: new PrefixEncoding(new BufferEncoding(), new BufferEncoding(), 4), - valueEncoding: new TransactionValueEncoding(), - }) - - return { accounts, heads, transactions } -} diff --git a/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash/old/transactionValue.ts b/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash/old/transactionValue.ts deleted file mode 100644 index 083ba413e8..0000000000 --- a/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash/old/transactionValue.ts +++ /dev/null @@ -1,112 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import type { IDatabaseEncoding } from '../../../../storage/database/types' -import { BufferMap } from 'buffer-map' -import bufio from 'bufio' -import { Transaction } from '../../../../primitives' - -const ASSET_ID_LENGTH = 32 - -export interface TransactionValue { - transaction: Transaction - timestamp: Date - // These fields are populated once the transaction is on the main chain - blockHash: Buffer | null - sequence: number | null - // This is populated when we create a transaction to track when we should - // rebroadcast. This can be null if we created it on another node, or the - // transaction was created for us by another person. - submittedSequence: number - assetBalanceDeltas: BufferMap -} - -export class TransactionValueEncoding implements IDatabaseEncoding { - serialize(value: TransactionValue): Buffer { - const { transaction, blockHash, sequence, submittedSequence, timestamp } = value - - const bw = bufio.write(this.getSize(value)) - bw.writeVarBytes(transaction.serialize()) - bw.writeU64(timestamp.getTime()) - - let flags = 0 - flags |= Number(!!blockHash) << 0 - flags |= Number(!!sequence) << 1 - bw.writeU8(flags) - - if (blockHash) { - bw.writeHash(blockHash) - } - if (sequence) { - bw.writeU32(sequence) - } - - bw.writeU32(submittedSequence) - - const assetCount = value.assetBalanceDeltas.size - bw.writeU32(assetCount) - - for (const [assetId, balanceDelta] of value.assetBalanceDeltas) { - bw.writeHash(assetId) - bw.writeBigI64(balanceDelta) - } - - return bw.render() - } - - deserialize(buffer: Buffer): TransactionValue { - const reader = bufio.read(buffer, true) - const transaction = new Transaction(reader.readVarBytes()) - const timestamp = new Date(reader.readU64()) - - const flags = reader.readU8() - const hasBlockHash = flags & (1 << 0) - const hasSequence = flags & (1 << 1) - - let blockHash = null - if (hasBlockHash) { - blockHash = reader.readHash() - } - - let sequence = null - if (hasSequence) { - sequence = reader.readU32() - } - - const submittedSequence = reader.readU32() - - const assetBalanceDeltas = new BufferMap() - const assetCount = reader.readU32() - - for (let i = 0; i < assetCount; i++) { - const assetId = reader.readHash() - const balanceDelta = reader.readBigI64() - assetBalanceDeltas.set(assetId, balanceDelta) - } - - return { - transaction, - blockHash, - submittedSequence, - sequence, - timestamp, - assetBalanceDeltas, - } - } - - getSize(value: TransactionValue): number { - let size = bufio.sizeVarBytes(value.transaction.serialize()) - size += 8 - size += 1 - if (value.blockHash) { - size += 32 - } - if (value.sequence) { - size += 4 - } - size += 4 - size += 4 - size += value.assetBalanceDeltas.size * (ASSET_ID_LENGTH + 8) - return size - } -} diff --git a/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash/stores.ts b/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash/stores.ts deleted file mode 100644 index b046b7c66f..0000000000 --- a/ironfish/src/migrations/data/025-backfill-wallet-nullifier-to-transaction-hash/stores.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { IDatabase } from '../../../storage' -import { GetNewStores } from './new' -import { GetOldStores } from './old' - -export function GetStores(db: IDatabase): { - old: ReturnType - new: ReturnType -} { - const oldStores = GetOldStores(db) - const newStores = GetNewStores(db) - - return { old: oldStores, new: newStores } -} diff --git a/ironfish/src/migrations/data/026-timestamp-to-transactions.ts b/ironfish/src/migrations/data/026-timestamp-to-transactions.ts index 25e12368ff..3961e77bec 100644 --- a/ironfish/src/migrations/data/026-timestamp-to-transactions.ts +++ b/ironfish/src/migrations/data/026-timestamp-to-transactions.ts @@ -1,12 +1,16 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { Logger } from '../../logger' -import { IDatabase, IDatabaseTransaction } from '../../storage' +import { + BufferEncoding, + IDatabase, + IDatabaseStore, + IDatabaseTransaction, + PrefixEncoding, + U64_ENCODING, +} from '../../storage' import { createDB } from '../../storage/utils' -import { Account } from '../../wallet' import { Database, Migration, MigrationContext } from '../migration' -import { GetStores } from './026-timestamp-to-transactions/stores' export class Migration026 extends Migration { path = __filename @@ -16,85 +20,30 @@ export class Migration026 extends Migration { return createDB({ location: context.config.walletDatabasePath }) } + /* + * This migration pre-dated the network reset in f483d9aeb87eda3101ae2c602e19d3ebb88897b6 + * + * All assets, transactions, and notes from before the reset are no longer valid. + * + * These data need to be deleted before the node can run, so there is no need + * to run this migration. + */ + async forward( context: MigrationContext, db: IDatabase, _tx: IDatabaseTransaction | undefined, - logger: Logger, ): Promise { - const accounts = [] - const stores = GetStores(db) - - for await (const account of stores.old.accounts.getAllValuesIter()) { - accounts.push( - new Account({ - ...account, - createdAt: null, - proofAuthorizingKey: null, - walletDb: context.wallet.walletDb, - }), - ) - } - - const accountsString = - accounts.length === 1 ? `${accounts.length} account` : `${accounts.length} accounts` - logger.info(`Indexing transaction timestamps for ${accountsString}`) - - for (const account of accounts) { - logger.info('') - logger.info(` Indexing transaction timestamps for account ${account.name}`) - - let transactionCount = 0 - for await (const { timestamp, transaction } of stores.old.transactions.getAllValuesIter( - undefined, - account.prefixRange, - )) { - await stores.new.timestampToTransactionHash.put( - [account.prefix, [timestamp.getTime(), transaction.hash()]], - null, - ) - - transactionCount++ - } - - const transactionsString = - transactionCount === 1 - ? `${transactionCount} transaction` - : `${transactionCount} transactions` - logger.info(` Completed indexing ${transactionsString} for account ${account.name}`) - } - - await stores.old.timestampToTransactionHash.clear() - logger.info('') + const timestampToTransactionHash: IDatabaseStore<{ key: [Buffer, number]; value: Buffer }> = + db.addStore({ + name: 'T', + keyEncoding: new PrefixEncoding(new BufferEncoding(), U64_ENCODING, 4), + valueEncoding: new BufferEncoding(), + }) + + await timestampToTransactionHash.clear() } - async backward(context: MigrationContext, db: IDatabase): Promise { - const accounts = [] - const stores = GetStores(db) - - for await (const account of stores.old.accounts.getAllValuesIter()) { - accounts.push( - new Account({ - ...account, - createdAt: null, - proofAuthorizingKey: null, - walletDb: context.wallet.walletDb, - }), - ) - } - - for (const account of accounts) { - for await (const { timestamp, transaction } of stores.old.transactions.getAllValuesIter( - undefined, - account.prefixRange, - )) { - await stores.old.timestampToTransactionHash.put( - [account.prefix, timestamp.getTime()], - transaction.hash(), - ) - } - - await stores.new.timestampToTransactionHash.clear() - } - } + // eslint-disable-next-line @typescript-eslint/no-empty-function + async backward(): Promise {} } diff --git a/ironfish/src/migrations/data/026-timestamp-to-transactions/new/index.ts b/ironfish/src/migrations/data/026-timestamp-to-transactions/new/index.ts deleted file mode 100644 index ba95bdb2c2..0000000000 --- a/ironfish/src/migrations/data/026-timestamp-to-transactions/new/index.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { - BufferEncoding, - IDatabase, - IDatabaseStore, - NULL_ENCODING, - PrefixEncoding, - U64_ENCODING, -} from '../../../../storage' - -export function GetNewStores(db: IDatabase): { - timestampToTransactionHash: IDatabaseStore<{ - key: [Buffer, [number, Buffer]] - value: null - }> -} { - const timestampToTransactionHash: IDatabaseStore<{ - key: [Buffer, [number, Buffer]] - value: null - }> = db.addStore({ - name: 'TT', - keyEncoding: new PrefixEncoding( - new BufferEncoding(), - new PrefixEncoding(U64_ENCODING, new BufferEncoding(), 8), - 4, - ), - valueEncoding: NULL_ENCODING, - }) - - return { timestampToTransactionHash } -} diff --git a/ironfish/src/migrations/data/026-timestamp-to-transactions/old/accountValue.ts b/ironfish/src/migrations/data/026-timestamp-to-transactions/old/accountValue.ts deleted file mode 100644 index dedebec152..0000000000 --- a/ironfish/src/migrations/data/026-timestamp-to-transactions/old/accountValue.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { PUBLIC_ADDRESS_LENGTH } from '@ironfish/rust-nodejs' -import bufio from 'bufio' -import { IDatabaseEncoding } from '../../../../storage' - -const KEY_LENGTH = 32 -export const VIEW_KEY_LENGTH = 64 -const VERSION_LENGTH = 2 - -export interface AccountValue { - version: number - id: string - name: string - spendingKey: string | null - viewKey: string - incomingViewKey: string - outgoingViewKey: string - publicAddress: string -} - -export class AccountValueEncoding implements IDatabaseEncoding { - serialize(value: AccountValue): Buffer { - const bw = bufio.write(this.getSize(value)) - let flags = 0 - flags |= Number(!!value.spendingKey) << 0 - bw.writeU8(flags) - bw.writeU16(value.version) - bw.writeVarString(value.id, 'utf8') - bw.writeVarString(value.name, 'utf8') - if (value.spendingKey) { - bw.writeBytes(Buffer.from(value.spendingKey, 'hex')) - } - bw.writeBytes(Buffer.from(value.viewKey, 'hex')) - bw.writeBytes(Buffer.from(value.incomingViewKey, 'hex')) - bw.writeBytes(Buffer.from(value.outgoingViewKey, 'hex')) - bw.writeBytes(Buffer.from(value.publicAddress, 'hex')) - - return bw.render() - } - - deserialize(buffer: Buffer): AccountValue { - const reader = bufio.read(buffer, true) - const flags = reader.readU8() - const version = reader.readU16() - const hasSpendingKey = flags & (1 << 0) - const id = reader.readVarString('utf8') - const name = reader.readVarString('utf8') - const spendingKey = hasSpendingKey ? reader.readBytes(KEY_LENGTH).toString('hex') : null - const viewKey = reader.readBytes(VIEW_KEY_LENGTH).toString('hex') - const incomingViewKey = reader.readBytes(KEY_LENGTH).toString('hex') - const outgoingViewKey = reader.readBytes(KEY_LENGTH).toString('hex') - const publicAddress = reader.readBytes(PUBLIC_ADDRESS_LENGTH).toString('hex') - - return { - version, - id, - name, - viewKey, - incomingViewKey, - outgoingViewKey, - spendingKey, - publicAddress, - } - } - - getSize(value: AccountValue): number { - let size = 0 - size += 1 - size += VERSION_LENGTH - size += bufio.sizeVarString(value.id, 'utf8') - size += bufio.sizeVarString(value.name, 'utf8') - if (value.spendingKey) { - size += KEY_LENGTH - } - size += VIEW_KEY_LENGTH - size += KEY_LENGTH - size += KEY_LENGTH - size += PUBLIC_ADDRESS_LENGTH - - return size - } -} diff --git a/ironfish/src/migrations/data/026-timestamp-to-transactions/old/index.ts b/ironfish/src/migrations/data/026-timestamp-to-transactions/old/index.ts deleted file mode 100644 index f0c6e87d4d..0000000000 --- a/ironfish/src/migrations/data/026-timestamp-to-transactions/old/index.ts +++ /dev/null @@ -1,46 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { - BufferEncoding, - IDatabase, - IDatabaseStore, - PrefixEncoding, - StringEncoding, - U64_ENCODING, -} from '../../../../storage' -import { AccountValue, AccountValueEncoding } from './accountValue' -import { TransactionValue, TransactionValueEncoding } from './transactionValue' - -export function GetOldStores(db: IDatabase): { - accounts: IDatabaseStore<{ key: string; value: AccountValue }> - transactions: IDatabaseStore<{ key: [Buffer, Buffer]; value: TransactionValue }> - timestampToTransactionHash: IDatabaseStore<{ - key: [Buffer, number] - value: Buffer - }> -} { - const accounts: IDatabaseStore<{ key: string; value: AccountValue }> = db.addStore({ - name: 'a', - keyEncoding: new StringEncoding(), - valueEncoding: new AccountValueEncoding(), - }) - - const transactions: IDatabaseStore<{ - key: [Buffer, Buffer] - value: TransactionValue - }> = db.addStore({ - name: 't', - keyEncoding: new PrefixEncoding(new BufferEncoding(), new BufferEncoding(), 4), - valueEncoding: new TransactionValueEncoding(), - }) - - const timestampToTransactionHash: IDatabaseStore<{ key: [Buffer, number]; value: Buffer }> = - db.addStore({ - name: 'T', - keyEncoding: new PrefixEncoding(new BufferEncoding(), U64_ENCODING, 4), - valueEncoding: new BufferEncoding(), - }) - - return { accounts, transactions, timestampToTransactionHash } -} diff --git a/ironfish/src/migrations/data/026-timestamp-to-transactions/old/transactionValue.ts b/ironfish/src/migrations/data/026-timestamp-to-transactions/old/transactionValue.ts deleted file mode 100644 index 083ba413e8..0000000000 --- a/ironfish/src/migrations/data/026-timestamp-to-transactions/old/transactionValue.ts +++ /dev/null @@ -1,112 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import type { IDatabaseEncoding } from '../../../../storage/database/types' -import { BufferMap } from 'buffer-map' -import bufio from 'bufio' -import { Transaction } from '../../../../primitives' - -const ASSET_ID_LENGTH = 32 - -export interface TransactionValue { - transaction: Transaction - timestamp: Date - // These fields are populated once the transaction is on the main chain - blockHash: Buffer | null - sequence: number | null - // This is populated when we create a transaction to track when we should - // rebroadcast. This can be null if we created it on another node, or the - // transaction was created for us by another person. - submittedSequence: number - assetBalanceDeltas: BufferMap -} - -export class TransactionValueEncoding implements IDatabaseEncoding { - serialize(value: TransactionValue): Buffer { - const { transaction, blockHash, sequence, submittedSequence, timestamp } = value - - const bw = bufio.write(this.getSize(value)) - bw.writeVarBytes(transaction.serialize()) - bw.writeU64(timestamp.getTime()) - - let flags = 0 - flags |= Number(!!blockHash) << 0 - flags |= Number(!!sequence) << 1 - bw.writeU8(flags) - - if (blockHash) { - bw.writeHash(blockHash) - } - if (sequence) { - bw.writeU32(sequence) - } - - bw.writeU32(submittedSequence) - - const assetCount = value.assetBalanceDeltas.size - bw.writeU32(assetCount) - - for (const [assetId, balanceDelta] of value.assetBalanceDeltas) { - bw.writeHash(assetId) - bw.writeBigI64(balanceDelta) - } - - return bw.render() - } - - deserialize(buffer: Buffer): TransactionValue { - const reader = bufio.read(buffer, true) - const transaction = new Transaction(reader.readVarBytes()) - const timestamp = new Date(reader.readU64()) - - const flags = reader.readU8() - const hasBlockHash = flags & (1 << 0) - const hasSequence = flags & (1 << 1) - - let blockHash = null - if (hasBlockHash) { - blockHash = reader.readHash() - } - - let sequence = null - if (hasSequence) { - sequence = reader.readU32() - } - - const submittedSequence = reader.readU32() - - const assetBalanceDeltas = new BufferMap() - const assetCount = reader.readU32() - - for (let i = 0; i < assetCount; i++) { - const assetId = reader.readHash() - const balanceDelta = reader.readBigI64() - assetBalanceDeltas.set(assetId, balanceDelta) - } - - return { - transaction, - blockHash, - submittedSequence, - sequence, - timestamp, - assetBalanceDeltas, - } - } - - getSize(value: TransactionValue): number { - let size = bufio.sizeVarBytes(value.transaction.serialize()) - size += 8 - size += 1 - if (value.blockHash) { - size += 32 - } - if (value.sequence) { - size += 4 - } - size += 4 - size += 4 - size += value.assetBalanceDeltas.size * (ASSET_ID_LENGTH + 8) - return size - } -} diff --git a/ironfish/src/migrations/data/026-timestamp-to-transactions/stores.ts b/ironfish/src/migrations/data/026-timestamp-to-transactions/stores.ts deleted file mode 100644 index b046b7c66f..0000000000 --- a/ironfish/src/migrations/data/026-timestamp-to-transactions/stores.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { IDatabase } from '../../../storage' -import { GetNewStores } from './new' -import { GetOldStores } from './old' - -export function GetStores(db: IDatabase): { - old: ReturnType - new: ReturnType -} { - const oldStores = GetOldStores(db) - const newStores = GetNewStores(db) - - return { old: oldStores, new: newStores } -} diff --git a/ironfish/src/mining/pool.ts b/ironfish/src/mining/pool.ts index 8682db73d4..024aaecb91 100644 --- a/ironfish/src/mining/pool.ts +++ b/ironfish/src/mining/pool.ts @@ -438,19 +438,6 @@ export class MiningPool { ), ) - // Target might be the same if there is a slight timing issue or if the block is at max target. - // In this case, it is detrimental to send out new work as it will needlessly reset miner's search - // space, resulting in duplicated work. - const existingTarget = BigIntUtils.fromBytesBE( - Buffer.from(latestBlock.header.target, 'hex'), - ) - if (newTarget.asBigInt() === existingTarget) { - this.logger.debug( - `New target ${newTarget.asBigInt()} is the same as the existing target, no need to send out new work.`, - ) - return - } - latestBlock.header.target = BigIntUtils.writeBigU256BE(newTarget.asBigInt()).toString('hex') latestBlock.header.timestamp = newTime.getTime() this.distributeNewBlock(latestBlock) diff --git a/ironfish/src/mining/webhooks/webhookNotifier.ts b/ironfish/src/mining/webhooks/webhookNotifier.ts index c6ab70e244..e636b1e54a 100644 --- a/ironfish/src/mining/webhooks/webhookNotifier.ts +++ b/ironfish/src/mining/webhooks/webhookNotifier.ts @@ -54,10 +54,11 @@ export abstract class WebhookNotifier { ): void { const total = outputs.reduce((m, c) => BigInt(c.amount) + m, BigInt(0)) + const renderedValue = CurrencyUtils.render(total, true) this.sendText( `Successfully created payout of ${shareCount} shares to ${ outputs.length - } users for ${CurrencyUtils.renderIron(total, true)} in transaction ${ + } users for ${renderedValue} in transaction ${ this.explorer?.getTransactionUrl(transactionHashHex) ?? `\`${transactionHashHex}\`` }. Transaction pending (${payoutPeriodId})`, ) @@ -76,10 +77,9 @@ export abstract class WebhookNotifier { ): void { const total = outputs.reduce((m, c) => BigInt(c.amount) + m, BigInt(0)) + const renderedValue = CurrencyUtils.render(total, true) this.sendText( - `Creating payout of ${shareCount} shares to ${ - outputs.length - } users for ${CurrencyUtils.renderIron(total, true)} (${payoutPeriodId})`, + `Creating payout of ${shareCount} shares to ${outputs.length} users for ${renderedValue} (${payoutPeriodId})`, ) } diff --git a/ironfish/src/network/blockFetcher.test.ts b/ironfish/src/network/blockFetcher.test.ts index d9e60294b2..8231b412c5 100644 --- a/ironfish/src/network/blockFetcher.test.ts +++ b/ironfish/src/network/blockFetcher.test.ts @@ -160,7 +160,7 @@ describe('BlockFetcher', () => { // Block should be one ahead of our current chain expect(block.header.sequence - chain.head.sequence).toEqual(1) - // We accept one of the the transaction in our mempool + // We accept one of the transaction in our mempool node.memPool.acceptTransaction(transactions[2]) // Create 5 connected peers diff --git a/ironfish/src/networks/definitions/mainnet.ts b/ironfish/src/networks/definitions/mainnet.ts index 14805762b3..60b329832f 100644 --- a/ironfish/src/networks/definitions/mainnet.ts +++ b/ironfish/src/networks/definitions/mainnet.ts @@ -18,7 +18,12 @@ const MAINNET_CONSENSUS: ConsensusParameters = { enforceSequentialBlockTime: HARDFORK_1_ACTIVATION_MAINNET, enableFishHash: HARDFORK_1_ACTIVATION_MAINNET, enableIncreasedDifficultyChange: HARDFORK_1_ACTIVATION_MAINNET, - checkpoints: [], + checkpoints: [ + { + sequence: HARDFORK_1_ACTIVATION_MAINNET, + hash: '00000000000045885508f3c1455d676fe8749433dc71a748d07719fdde39aeb2', + }, + ], } export const MAINNET_GENESIS = { diff --git a/ironfish/src/primitives/rawTransaction.ts b/ironfish/src/primitives/rawTransaction.ts index 4343c3bd9c..9f24f5b8e7 100644 --- a/ironfish/src/primitives/rawTransaction.ts +++ b/ironfish/src/primitives/rawTransaction.ts @@ -132,10 +132,10 @@ export class RawTransaction { for (const mint of this.mints) { if (mint.value > MAX_MINT_OR_BURN_VALUE) { + const renderedValue = CurrencyUtils.renderOre(mint.value) + const renderedMax = CurrencyUtils.renderOre(MAX_MINT_OR_BURN_VALUE) throw new Error( - `Cannot post transaction. Mint value ${CurrencyUtils.renderIron( - mint.value, - )} exceededs maximum ${CurrencyUtils.renderIron(MAX_MINT_OR_BURN_VALUE)}. `, + `Cannot post transaction. Mint value ${renderedValue} exceededs maximum ${renderedMax}.`, ) } const asset = new Asset(mint.creator, mint.name, mint.metadata) @@ -145,10 +145,10 @@ export class RawTransaction { for (const burn of this.burns) { if (burn.value > MAX_MINT_OR_BURN_VALUE) { + const renderedValue = CurrencyUtils.renderOre(burn.value) + const renderedMax = CurrencyUtils.renderOre(MAX_MINT_OR_BURN_VALUE) throw new Error( - `Cannot post transaction. Burn value ${CurrencyUtils.renderIron( - burn.value, - )} exceededs maximum ${CurrencyUtils.renderIron(MAX_MINT_OR_BURN_VALUE)}`, + `Cannot post transaction. Burn value ${renderedValue} exceededs maximum ${renderedMax}`, ) } diff --git a/ironfish/src/rpc/adapters/socketAdapter/socketAdapter.ts b/ironfish/src/rpc/adapters/socketAdapter/socketAdapter.ts index 57919e5325..a0f56f4f02 100644 --- a/ironfish/src/rpc/adapters/socketAdapter/socketAdapter.ts +++ b/ironfish/src/rpc/adapters/socketAdapter/socketAdapter.ts @@ -201,14 +201,14 @@ export abstract class RpcSocketAdapter implements IRpcAdapter { const [parsed, error] = JSONUtils.tryParse(rpcMessage) if (error) { this.emitResponse(client, this.constructMalformedRequest(data)) - return + continue } const result = await YupUtils.tryValidate(RpcSocketClientMessageSchema, parsed) if (result.error) { this.emitResponse(client, this.constructMalformedRequest(parsed)) - return + continue } const message = result.result.data @@ -253,7 +253,7 @@ export abstract class RpcSocketAdapter implements IRpcAdapter { }) this.emitResponse(client, response, requestId) - return + continue } throw error diff --git a/ironfish/src/rpc/clients/client.ts b/ironfish/src/rpc/clients/client.ts index a161debb4e..2e8abab174 100644 --- a/ironfish/src/rpc/clients/client.ts +++ b/ironfish/src/rpc/clients/client.ts @@ -33,6 +33,10 @@ import type { CreateTransactionResponse, CreateTrustedDealerKeyPackageRequest, CreateTrustedDealerKeyPackageResponse, + DkgRound1Request, + DkgRound1Response, + DkgRound2Request, + DkgRound2Response, EstimateFeeRateRequest, EstimateFeeRateResponse, EstimateFeeRatesRequest, @@ -271,6 +275,22 @@ export abstract class RpcClient { params, ).waitForEnd() }, + + dkg: { + round1: (params: DkgRound1Request): Promise> => { + return this.request( + `${ApiNamespace.wallet}/multisig/dkg/round1`, + params, + ).waitForEnd() + }, + + round2: (params: DkgRound2Request): Promise> => { + return this.request( + `${ApiNamespace.wallet}/multisig/dkg/round2`, + params, + ).waitForEnd() + }, + }, }, getAccounts: ( diff --git a/ironfish/src/rpc/routes/chain/getBlock.test.ts b/ironfish/src/rpc/routes/chain/getBlock.test.ts index 3f80fb9b63..2098567e33 100644 --- a/ironfish/src/rpc/routes/chain/getBlock.test.ts +++ b/ironfish/src/rpc/routes/chain/getBlock.test.ts @@ -5,8 +5,6 @@ import { Assert } from '../../../assert' import { useBlockWithTx, useMinerBlockFixture } from '../../../testUtilities' import { createRouteTest } from '../../../testUtilities/routeTest' import { RPC_ERROR_CODES } from '../../adapters' -import { RpcRequestError } from '../../clients/errors' -import { GetBlockResponse } from './getBlock' describe('Route chain/getBlock', () => { const routeTest = createRouteTest() @@ -27,10 +25,7 @@ describe('Route chain/getBlock', () => { const hash2 = blockA2.header.hash.toString('hex') // Find block matching hash - let response = await routeTest.client - .request('chain/getBlock', { search: hash2 }) - .waitForEnd() - + let response = await routeTest.client.chain.getBlock({ search: hash2 }) expect(response.content).toMatchObject({ block: { hash: hash2, @@ -39,26 +34,20 @@ describe('Route chain/getBlock', () => { }) // Now miss on a hash check - try { - await routeTest.client - .request('chain/getBlock', { - search: '123405c7492bd000d6a8312f7592737e869967c890aac22247ede00678d4a2b2', - }) - .waitForEnd() - } catch (e: unknown) { - if (!(e instanceof RpcRequestError)) { - throw e - } - expect(e.status).toBe(404) - expect(e.code).toBe(RPC_ERROR_CODES.NOT_FOUND) - expect(e.message).toContain('No block found with hash') - } + await expect( + routeTest.client.chain.getBlock({ + search: '123405c7492bd000d6a8312f7592737e869967c890aac22247ede00678d4a2b2', + }), + ).rejects.toThrow( + expect.objectContaining({ + status: 404, + code: RPC_ERROR_CODES.NOT_FOUND, + message: expect.stringContaining('No block found with hash'), + }), + ) // Find block matching sequence - response = await routeTest.client - .request('chain/getBlock', { search: '2' }) - .waitForEnd() - + response = await routeTest.client.chain.getBlock({ search: '2' }) expect(response.content).toMatchObject({ block: { hash: hash1, @@ -67,10 +56,7 @@ describe('Route chain/getBlock', () => { }) // Find block matching sequence - response = await routeTest.client - .request('chain/getBlock', { search: '-1' }) - .waitForEnd() - + response = await routeTest.client.chain.getBlock({ search: '-1' }) expect(response.content).toMatchObject({ block: { hash: hash2, @@ -79,34 +65,23 @@ describe('Route chain/getBlock', () => { }) // Now miss on a sequence check - try { - await routeTest.client - .request('chain/getBlock', { search: '1234' }) - .waitForEnd() - } catch (e: unknown) { - if (!(e instanceof RpcRequestError)) { - throw e - } - expect(e.status).toBe(404) - expect(e.code).toBe(RPC_ERROR_CODES.NOT_FOUND) - expect(e.message).toContain('No block found with sequence') - } + await expect(routeTest.client.chain.getBlock({ search: '1234' })).rejects.toThrow( + expect.objectContaining({ + status: 404, + code: RPC_ERROR_CODES.NOT_FOUND, + message: expect.stringContaining('No block found with sequence'), + }), + ) // Force failure of getBlock() jest.spyOn(chain, 'getBlock').mockResolvedValue(null) - - try { - await routeTest.client - .request('chain/getBlock', { search: hash0 }) - .waitForEnd() - } catch (e: unknown) { - if (!(e instanceof RpcRequestError)) { - throw e - } - expect(e.status).toBe(404) - expect(e.code).toBe(RPC_ERROR_CODES.NOT_FOUND) - expect(e.message).toContain('No block with header') - } + await expect(routeTest.client.chain.getBlock({ search: hash0 })).rejects.toThrow( + expect.objectContaining({ + status: 404, + code: RPC_ERROR_CODES.NOT_FOUND, + message: expect.stringContaining('No block with header'), + }), + ) }) it('Receives transactions from a matched block', async () => { @@ -117,10 +92,7 @@ describe('Route chain/getBlock', () => { await expect(node.chain).toAddBlock(block) const hash = block.header.hash.toString('hex') - const response = await routeTest.client - .request('chain/getBlock', { search: '3' }) - .waitForEnd() - + const response = await routeTest.client.chain.getBlock({ search: '3' }) expect(response.content).toMatchObject({ block: { hash: hash, @@ -138,10 +110,7 @@ describe('Route chain/getBlock', () => { await expect(node.chain).toAddBlock(block) const hash = block.header.hash.toString('hex') - const response = await routeTest.client - .request('chain/getBlock', { search: '3' }) - .waitForEnd() - + const response = await routeTest.client.chain.getBlock({ search: '3' }) expect(response.content).toMatchObject({ block: { hash: hash, @@ -152,10 +121,10 @@ describe('Route chain/getBlock', () => { }, }) - const unconfirmedResponse = await routeTest.client - .request('chain/getBlock', { search: '3', confirmations: 10 }) - .waitForEnd() - + const unconfirmedResponse = await routeTest.client.chain.getBlock({ + search: '3', + confirmations: 10, + }) expect(unconfirmedResponse.content).toMatchObject({ block: { hash: hash, @@ -173,10 +142,7 @@ describe('Route chain/getBlock', () => { const { block, transaction } = await useBlockWithTx(node) await expect(node.chain).toAddBlock(block) - const response = await routeTest.client - .request('chain/getBlock', { search: '3', serialized: true }) - .waitForEnd() - + const response = await routeTest.client.chain.getBlock({ search: '3', serialized: true }) const serialized = response.content.block.transactions[1].serialized Assert.isNotUndefined(serialized) expect(Buffer.from(serialized, 'hex')).toEqual(transaction.serialize()) diff --git a/ironfish/src/rpc/routes/chain/getChainInfo.test.ts b/ironfish/src/rpc/routes/chain/getChainInfo.test.ts index a2f3766ea6..6506fbcd7d 100644 --- a/ironfish/src/rpc/routes/chain/getChainInfo.test.ts +++ b/ironfish/src/rpc/routes/chain/getChainInfo.test.ts @@ -1,17 +1,13 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - import { createRouteTest } from '../../../testUtilities/routeTest' -import { GetChainInfoResponse } from './getChainInfo' describe('Route chain.getChainInfo', () => { const routeTest = createRouteTest() it('returns the right object with hash', async () => { - const response = await routeTest.client - .request('chain/getChainInfo') - .waitForEnd() + const response = await routeTest.client.chain.getChainInfo() expect(response.content.currentBlockIdentifier.index).toEqual( routeTest.chain.latest.sequence.toString(), diff --git a/ironfish/src/rpc/routes/chain/getConsensusParameters.test.ts b/ironfish/src/rpc/routes/chain/getConsensusParameters.test.ts index 333bce500f..f74be0c308 100644 --- a/ironfish/src/rpc/routes/chain/getConsensusParameters.test.ts +++ b/ironfish/src/rpc/routes/chain/getConsensusParameters.test.ts @@ -1,17 +1,13 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - import { createRouteTest } from '../../../testUtilities/routeTest' -import { GetConsensusParametersResponse } from './getConsensusParameters' describe('Route chain.getConsensusParameters', () => { const routeTest = createRouteTest() it('returns the right parameters', async () => { - const response = await routeTest.client - .request('chain/getConsensusParameters') - .waitForEnd() + const response = await routeTest.client.chain.getConsensusParameters() const chainParams = routeTest.chain.consensus.parameters expect(response.content).toEqual(chainParams) diff --git a/ironfish/src/rpc/routes/chain/getNetworkInfo.test.ts b/ironfish/src/rpc/routes/chain/getNetworkInfo.test.ts index fe100c8448..3e67532c42 100644 --- a/ironfish/src/rpc/routes/chain/getNetworkInfo.test.ts +++ b/ironfish/src/rpc/routes/chain/getNetworkInfo.test.ts @@ -1,17 +1,13 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - import { createRouteTest } from '../../../testUtilities/routeTest' -import { GetNetworkInfoResponse } from './getNetworkInfo' describe('Route chain.getNetworkInfo', () => { const routeTest = createRouteTest() it('returns the network id', async () => { - const response = await routeTest.client - .request('chain/getNetworkInfo') - .waitForEnd() + const response = await routeTest.client.chain.getNetworkInfo() expect(response.content.networkId).toEqual(routeTest.node.internal.config.networkId) }) diff --git a/ironfish/src/rpc/routes/chain/getNoteWitness.test.ts b/ironfish/src/rpc/routes/chain/getNoteWitness.test.ts index fd5d7eecae..f3f7032347 100644 --- a/ironfish/src/rpc/routes/chain/getNoteWitness.test.ts +++ b/ironfish/src/rpc/routes/chain/getNoteWitness.test.ts @@ -6,7 +6,6 @@ import { Witness } from '../../../merkletree' import { NoteEncrypted } from '../../../primitives/noteEncrypted' import { useMinerBlockFixture } from '../../../testUtilities' import { createRouteTest } from '../../../testUtilities/routeTest' -import { GetNoteWitnessResponse } from './getNoteWitness' describe('Route chain/getNoteWitness', () => { const routeTest = createRouteTest() @@ -23,9 +22,7 @@ describe('Route chain/getNoteWitness', () => { const noteSize = await chain.notes.size() for (const index of Array.from(Array(noteSize).keys())) { - const response = await routeTest.client - .request('chain/getNoteWitness', { index }) - .waitForEnd() + const response = await routeTest.client.chain.getNoteWitness({ index }) const witness: Witness | null = await chain.notes.witness(index) @@ -61,9 +58,7 @@ describe('Route chain/getNoteWitness', () => { const confirmations = 1 for (let index = 0; index < noteSize; index++) { - const response = await routeTest.client - .request('chain/getNoteWitness', { index, confirmations }) - .waitForEnd() + const response = await routeTest.client.chain.getNoteWitness({ index, confirmations }) const witness: Witness | null = await chain.notes.witness(index, noteSize) @@ -87,10 +82,8 @@ describe('Route chain/getNoteWitness', () => { // Notes on block2 are not confirmed for (let index = noteSize; index < block2NoteSize; index++) { - await expect(() => - routeTest.client - .request('chain/getNoteWitness', { index, confirmations }) - .waitForEnd(), + await expect( + routeTest.client.chain.getNoteWitness({ index, confirmations }), ).rejects.toThrow(`No confirmed notes exist with index ${index}`) } }) diff --git a/ironfish/src/rpc/routes/config/getConfig.test.ts b/ironfish/src/rpc/routes/config/getConfig.test.ts index 01bf37d1d3..d471d70e1b 100644 --- a/ironfish/src/rpc/routes/config/getConfig.test.ts +++ b/ironfish/src/rpc/routes/config/getConfig.test.ts @@ -11,11 +11,9 @@ describe('Route config/getConfig', () => { }) it('returns value of the requested ConfigOptions', async () => { - const response = await routeTest.client - .request('config/getConfig', { - name: 'minerBatchSize', - }) - .waitForEnd() + const response = await routeTest.client.config.getConfig({ + name: 'minerBatchSize', + }) expect(response.status).toBe(200) expect(response.content).toEqual({ minerBatchSize: routeTest.node.config.get('minerBatchSize'), @@ -24,12 +22,10 @@ describe('Route config/getConfig', () => { it('returns nothing when no datadir exists', async () => { const target = {} - const response = await routeTest.client - .request('config/getConfig', { - name: 'minerBatchSize', - user: true, - }) - .waitForEnd() + const response = await routeTest.client.config.getConfig({ + name: 'minerBatchSize', + user: true, + }) expect(response.status).toBe(200) expect(response.content).toEqual(target) }) diff --git a/ironfish/src/rpc/routes/config/setConfig.test.ts b/ironfish/src/rpc/routes/config/setConfig.test.ts index 86affdfb45..068f9f4eb1 100644 --- a/ironfish/src/rpc/routes/config/setConfig.test.ts +++ b/ironfish/src/rpc/routes/config/setConfig.test.ts @@ -10,36 +10,28 @@ describe('Route config/setConfig', () => { it('should error if the config name does not exist', async () => { await expect( - routeTest.client - .request('config/setConfig', { name: 'asdf', value: 'asdf' }) - .waitForEnd(), + routeTest.client.config.setConfig({ name: 'asdf', value: 'asdf' }), ).rejects.toThrow() }) describe('Convert string to array', () => { it('does not special-case brackets', async () => { - const response = await routeTest.client - .request('config/setConfig', { - name: 'bootstrapNodes', - value: '[]', - }) - .waitForEnd() - const content = await response.content + const response = await routeTest.client.config.setConfig({ + name: 'bootstrapNodes', + value: '[]', + }) expect(response.status).toBe(200) - expect(content).toBeUndefined() + expect(response.content).toBeUndefined() expect(routeTest.sdk.config.get('bootstrapNodes')).toEqual(['[]']) }) it('should convert strings to arrays', async () => { - const response = await routeTest.client - .request('config/setConfig', { - name: 'bootstrapNodes', - value: 'test.node.com,test2.node.com', - }) - .waitForEnd() - const content = await response.content + const response = await routeTest.client.config.setConfig({ + name: 'bootstrapNodes', + value: 'test.node.com,test2.node.com', + }) expect(response.status).toBe(200) - expect(content).toBeUndefined() + expect(response.content).toBeUndefined() expect(routeTest.sdk.config.get('bootstrapNodes')).toEqual([ 'test.node.com', 'test2.node.com', @@ -47,41 +39,32 @@ describe('Route config/setConfig', () => { }) it('handles single values', async () => { - const response = await routeTest.client - .request('config/setConfig', { - name: 'bootstrapNodes', - value: 'test.node.com', - }) - .waitForEnd() - const content = await response.content + const response = await routeTest.client.config.setConfig({ + name: 'bootstrapNodes', + value: 'test.node.com', + }) expect(response.status).toBe(200) - expect(content).toBeUndefined() + expect(response.content).toBeUndefined() expect(routeTest.sdk.config.get('bootstrapNodes')).toEqual(['test.node.com']) }) it('should strip leading and trailing whitespace', async () => { - const response = await routeTest.client - .request('config/setConfig', { - name: 'bootstrapNodes', - value: ' node1 , node2 ', - }) - .waitForEnd() - const content = await response.content + const response = await routeTest.client.config.setConfig({ + name: 'bootstrapNodes', + value: ' node1 , node2 ', + }) expect(response.status).toBe(200) - expect(content).toBeUndefined() + expect(response.content).toBeUndefined() expect(routeTest.sdk.config.get('bootstrapNodes')).toEqual(['node1', 'node2']) }) it('should leave quotes', async () => { - const response = await routeTest.client - .request('config/setConfig', { - name: 'bootstrapNodes', - value: ' \' node1 \' , " node2 " ', - }) - .waitForEnd() - const content = await response.content + const response = await routeTest.client.config.setConfig({ + name: 'bootstrapNodes', + value: ' \' node1 \' , " node2 " ', + }) expect(response.status).toBe(200) - expect(content).toBeUndefined() + expect(response.content).toBeUndefined() expect(routeTest.sdk.config.get('bootstrapNodes')).toEqual(["' node1 '", '" node2 "']) }) }) diff --git a/ironfish/src/rpc/routes/types.ts b/ironfish/src/rpc/routes/types.ts index d2dc4ef347..906b9f0a02 100644 --- a/ironfish/src/rpc/routes/types.ts +++ b/ironfish/src/rpc/routes/types.ts @@ -3,12 +3,16 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ import * as yup from 'yup' -import { AssetVerification } from '../../assets' +import { AssetVerification, VerifiedAssetMetadata } from '../../assets' import { Connection } from '../../network' import { Features } from '../../network/peers/peerFeatures' import { BlockHeader } from '../../primitives' import { RpcTransaction, RpcTransactionSchema } from './chain/types' +export type RpcAssetVerification = { + status: AssetVerification['status'] +} & Partial + export type RpcBurn = { assetId: string value: string @@ -78,7 +82,7 @@ export type RpcAsset = { creator: string metadata: string createdTransactionHash: string - verification: AssetVerification + verification: RpcAssetVerification supply?: string /** * @deprecated query for the transaction to find it's status @@ -94,7 +98,13 @@ export const RpcAssetSchema: yup.ObjectSchema = yup nonce: yup.number().required(), creator: yup.string().required(), verification: yup - .object({ status: yup.string().oneOf(['verified', 'unverified', 'unknown']).defined() }) + .object({ + status: yup.string().oneOf(['verified', 'unverified', 'unknown']).defined(), + symbol: yup.string().optional(), + decimals: yup.number().optional(), + logoURI: yup.string().optional(), + website: yup.string().optional(), + }) .defined(), status: yup.string().defined(), supply: yup.string().optional(), diff --git a/ironfish/src/rpc/routes/wallet/burnAsset.ts b/ironfish/src/rpc/routes/wallet/burnAsset.ts index 337f942bac..286d5d35cd 100644 --- a/ironfish/src/rpc/routes/wallet/burnAsset.ts +++ b/ironfish/src/rpc/routes/wallet/burnAsset.ts @@ -105,11 +105,11 @@ routes.register( nonce: asset.nonce, creator: asset.creator.toString('hex'), owner: asset.owner.toString('hex'), - verification: context.assetsVerifier.verify(asset.id), status: await context.wallet.getAssetStatus(account, asset, { confirmations: request.data.confirmations, }), createdTransactionHash: asset.createdTransactionHash.toString('hex'), + verification: context.assetsVerifier.verify(asset.id), }, transaction: await serializeRpcWalletTransaction( context.config, diff --git a/ironfish/src/rpc/routes/wallet/createTransaction.ts b/ironfish/src/rpc/routes/wallet/createTransaction.ts index d0f2ee1114..ca99db54ab 100644 --- a/ironfish/src/rpc/routes/wallet/createTransaction.ts +++ b/ironfish/src/rpc/routes/wallet/createTransaction.ts @@ -112,7 +112,7 @@ routes.register => { - AssertHasRpcContext(request, node, 'wallet') + AssertHasRpcContext(request, node, 'wallet', 'assetsVerifier') const account = getAccount(node.wallet, request.data.account) @@ -227,7 +227,17 @@ routes.register { const routeTest = createRouteTest(true) @@ -23,12 +21,10 @@ describe('Route wallet/exportAccount', () => { }) it('should export a default account', async () => { - const response = await routeTest.client - .request('wallet/exportAccount', { - account: account.name, - viewOnly: false, - }) - .waitForEnd() + const response = await routeTest.client.wallet.exportAccount({ + account: account.name, + viewOnly: false, + }) expect(response.status).toBe(200) expect(response.content).toMatchObject({ @@ -45,12 +41,10 @@ describe('Route wallet/exportAccount', () => { }) it('should omit spending key when view only account is requested', async () => { - const response = await routeTest.client - .request('wallet/exportAccount', { - account: account.name, - viewOnly: true, - }) - .waitForEnd() + const response = await routeTest.client.wallet.exportAccount({ + account: account.name, + viewOnly: true, + }) expect(response.status).toBe(200) expect(response.content).toMatchObject({ @@ -67,12 +61,10 @@ describe('Route wallet/exportAccount', () => { }) it('should export an account as a json string if requested', async () => { - const response = await routeTest.client - .request('wallet/exportAccount', { - account: account.name, - format: AccountFormat.JSON, - }) - .waitForEnd() + const response = await routeTest.client.wallet.exportAccount({ + account: account.name, + format: AccountFormat.JSON, + }) expect(response.status).toBe(200) @@ -81,12 +73,10 @@ describe('Route wallet/exportAccount', () => { }) it('should export an account as a base64 string if requested', async () => { - const response = await routeTest.client - .request('wallet/exportAccount', { - account: account.name, - format: AccountFormat.Base64Json, - }) - .waitForEnd() + const response = await routeTest.client.wallet.exportAccount({ + account: account.name, + format: AccountFormat.Base64Json, + }) const { id: _, ...accountImport } = account.serialize() @@ -95,12 +85,10 @@ describe('Route wallet/exportAccount', () => { }) it('should export an account as a spending key string if requested', async () => { - const response = await routeTest.client - .request('wallet/exportAccount', { - account: account.name, - format: AccountFormat.SpendingKey, - }) - .waitForEnd() + const response = await routeTest.client.wallet.exportAccount({ + account: account.name, + format: AccountFormat.SpendingKey, + }) expect(response.status).toBe(200) expect(response.content.account).toEqual(new SpendingKeyEncoder().encode(account)) @@ -108,23 +96,19 @@ describe('Route wallet/exportAccount', () => { it('should return an error when exporting a view only account in the spending key format', async () => { await expect(() => - routeTest.client - .request('wallet/exportAccount', { - account: account.name, - format: AccountFormat.SpendingKey, - viewOnly: true, - }) - .waitForEnd(), + routeTest.client.wallet.exportAccount({ + account: account.name, + format: AccountFormat.SpendingKey, + viewOnly: true, + }), ).rejects.toThrow() }) it('should export an account as a mnemonic phrase string if requested', async () => { - const response = await routeTest.client - .request('wallet/exportAccount', { - account: account.name, - format: AccountFormat.Mnemonic, - }) - .waitForEnd() + const response = await routeTest.client.wallet.exportAccount({ + account: account.name, + format: AccountFormat.Mnemonic, + }) expect(response.status).toBe(200) expect(response.content.account).toEqual(new MnemonicEncoder().encode(account, {})) @@ -132,13 +116,11 @@ describe('Route wallet/exportAccount', () => { it('should return an error when exporting a view only account in the mnemonic format', async () => { await expect(() => - routeTest.client - .request('wallet/exportAccount', { - account: account.name, - format: AccountFormat.Mnemonic, - viewOnly: true, - }) - .waitForEnd(), + routeTest.client.wallet.exportAccount({ + account: account.name, + format: AccountFormat.Mnemonic, + viewOnly: true, + }), ).rejects.toThrow() }) @@ -148,9 +130,7 @@ describe('Route wallet/exportAccount', () => { accountNames.map( async (name) => ( - await routeTest.client - .request('wallet/multisig/createParticipant', { name }) - .waitForEnd() + await routeTest.client.wallet.multisig.createParticipant({ name }) ).content, ), ) @@ -178,12 +158,10 @@ describe('Route wallet/exportAccount', () => { account: importAccount!.account, }) - const response = await routeTest.client - .request('wallet/exportAccount', { - account: accountNames[0], - viewOnly: false, - }) - .waitForEnd() + const response = await routeTest.client.wallet.exportAccount({ + account: accountNames[0], + viewOnly: false, + }) expect(response.status).toBe(200) expect(response.content).toMatchObject({ @@ -211,9 +189,7 @@ describe('Route wallet/exportAccount', () => { accountNames.map( async (name) => ( - await routeTest.client - .request('wallet/multisig/createParticipant', { name }) - .waitForEnd() + await routeTest.client.wallet.multisig.createParticipant({ name }) ).content, ), ) @@ -241,12 +217,10 @@ describe('Route wallet/exportAccount', () => { account: importAccount!.account, }) - const response = await routeTest.client - .request('wallet/exportAccount', { - account: accountNames[0], - viewOnly: true, - }) - .waitForEnd() + const response = await routeTest.client.wallet.exportAccount({ + account: accountNames[0], + viewOnly: false, + }) expect(response.status).toBe(200) expect(response.content).toMatchObject({ diff --git a/ironfish/src/rpc/routes/wallet/getAccountNotesStream.ts b/ironfish/src/rpc/routes/wallet/getAccountNotesStream.ts index 82a53f64c6..a078bfa2f1 100644 --- a/ironfish/src/rpc/routes/wallet/getAccountNotesStream.ts +++ b/ironfish/src/rpc/routes/wallet/getAccountNotesStream.ts @@ -50,6 +50,7 @@ routes.register { setCreatedAt: true, setDefault: true, }) - const response = await routeTest.client - .request('wallet/getAccountStatus', { - account: account.name, - }) - .waitForEnd() + const response = await routeTest.client.wallet.getAccountStatus({ + account: account.name, + }) expect(response.status).toBe(200) expect(response.content).toMatchObject({ @@ -38,12 +36,10 @@ describe('Route wallet/getAccountStatus', () => { }) it('errors if no account exists', async () => { - await expect(() => { - return routeTest.client - .request('wallet/getAccountStatus', { - account: 'asdf', - }) - .waitForEnd() - }).rejects.toThrow('No account with name asdf') + await expect( + routeTest.client.wallet.getAccountStatus({ + account: 'asdf', + }), + ).rejects.toThrow('No account with name asdf') }) }) diff --git a/ironfish/src/rpc/routes/wallet/getAccountTransaction.test.ts b/ironfish/src/rpc/routes/wallet/getAccountTransaction.test.ts index b5e9537cf1..bf8faab08e 100644 --- a/ironfish/src/rpc/routes/wallet/getAccountTransaction.test.ts +++ b/ironfish/src/rpc/routes/wallet/getAccountTransaction.test.ts @@ -35,5 +35,8 @@ describe('Route wallet/getAccountTransaction', () => { })), ) expect(responseTransaction.notes).toHaveLength(transaction.notes.length) + + // each note should include a hex representation of the memo in memoHex + responseTransaction.notes?.map((note) => expect(note.memoHex).toBeDefined()) }) }) diff --git a/ironfish/src/rpc/routes/wallet/getAccountTransactions.test.ts b/ironfish/src/rpc/routes/wallet/getAccountTransactions.test.ts index 7f0b56ed93..2bb016839b 100644 --- a/ironfish/src/rpc/routes/wallet/getAccountTransactions.test.ts +++ b/ironfish/src/rpc/routes/wallet/getAccountTransactions.test.ts @@ -11,10 +11,7 @@ import { } from '../../../testUtilities' import { createRouteTest } from '../../../testUtilities/routeTest' import { AsyncUtils } from '../../../utils' -import { - GetAccountTransactionsRequest, - GetAccountTransactionsResponse, -} from './getAccountTransactions' +import { GetAccountTransactionsRequest } from './getAccountTransactions' describe('Route wallet/getAccountTransactions', () => { const routeTest = createRouteTest(true) @@ -41,8 +38,8 @@ describe('Route wallet/getAccountTransactions', () => { const node = routeTest.node const account = await useAccountFixture(node.wallet, 'invalid-sequence') - const response = routeTest.client - .request('wallet/getAccountTransactions', { + const response = routeTest.client.wallet + .getAccountTransactionsStream({ account: account.name, sequence: 0, }) @@ -78,13 +75,10 @@ describe('Route wallet/getAccountTransactions', () => { await expect(node.chain).toAddBlock(block) await node.wallet.updateHead() - const response = routeTest.client.request( - 'wallet/getAccountTransactions', - { - account: account.name, - sequence: block.header.sequence, - }, - ) + const response = routeTest.client.wallet.getAccountTransactionsStream({ + account: account.name, + sequence: block.header.sequence, + }) const blockTransactionHashes = block.transactions .map((transaction) => transaction.hash()) @@ -109,12 +103,9 @@ describe('Route wallet/getAccountTransactions', () => { await expect(node.chain).toAddBlock(blockB) await node.wallet.updateHead() - const response = routeTest.client.request( - 'wallet/getAccountTransactions', - { - account: account.name, - }, - ) + const response = routeTest.client.wallet.getAccountTransactionsStream({ + account: account.name, + }) const transactions = await AsyncUtils.materialize(response.contentStream()) expect(transactions).toHaveLength(2) @@ -128,13 +119,10 @@ describe('Route wallet/getAccountTransactions', () => { await expect(node.chain).toAddBlock(blockA) await node.wallet.updateHead() - const response = routeTest.client.request( - 'wallet/getAccountTransactions', - { - account: account.name, - notes: true, - }, - ) + const response = routeTest.client.wallet.getAccountTransactionsStream({ + account: account.name, + notes: true, + }) const transactions = await AsyncUtils.materialize(response.contentStream()) expect(transactions).toHaveLength(1) @@ -151,13 +139,10 @@ describe('Route wallet/getAccountTransactions', () => { const { transaction } = await useTxSpendsFixture(node, { account }) - const response = routeTest.client.request( - 'wallet/getAccountTransactions', - { - account: account.name, - spends: true, - }, - ) + const response = routeTest.client.wallet.getAccountTransactionsStream({ + account: account.name, + spends: true, + }) const transactions = await AsyncUtils.materialize(response.contentStream()) expect(transactions).toHaveLength(2) @@ -197,10 +182,8 @@ describe('Route wallet/getAccountTransactions', () => { account: account.name, } - const defaultSortResponse = routeTest.client.request< - unknown, - GetAccountTransactionsResponse - >('wallet/getAccountTransactions', defaultSort) + const defaultSortResponse = + routeTest.client.wallet.getAccountTransactionsStream(defaultSort) const defaultSortTransactions = await AsyncUtils.materialize( defaultSortResponse.contentStream(), @@ -215,10 +198,8 @@ describe('Route wallet/getAccountTransactions', () => { reverse: true, } - const reverseSortResponse = routeTest.client.request< - unknown, - GetAccountTransactionsResponse - >('wallet/getAccountTransactions', reverseSort) + const reverseSortResponse = + routeTest.client.wallet.getAccountTransactionsStream(reverseSort) const reverseSortTransactions = await AsyncUtils.materialize( reverseSortResponse.contentStream(), @@ -233,10 +214,8 @@ describe('Route wallet/getAccountTransactions', () => { reverse: false, } - const forwardSortResponse = routeTest.client.request< - unknown, - GetAccountTransactionsResponse - >('wallet/getAccountTransactions', forwardSort) + const forwardSortResponse = + routeTest.client.wallet.getAccountTransactionsStream(forwardSort) const forwardSortTransactions = await AsyncUtils.materialize( forwardSortResponse.contentStream(), diff --git a/ironfish/src/rpc/routes/wallet/getAccountsStatus.test.ts b/ironfish/src/rpc/routes/wallet/getAccountsStatus.test.ts index 50401f8225..11267f0a6e 100644 --- a/ironfish/src/rpc/routes/wallet/getAccountsStatus.test.ts +++ b/ironfish/src/rpc/routes/wallet/getAccountsStatus.test.ts @@ -23,9 +23,7 @@ describe('Route wallet/getAccountsStatus', () => { await expect(routeTest.chain).toAddBlock(block) await routeTest.wallet.updateHead() - const response = await routeTest.client - .request('wallet/getAccountsStatus', {}) - .waitForEnd() + const response = await routeTest.client.wallet.getAccountsStatus() expect(response.status).toBe(200) expect(response.content).toMatchObject({ @@ -53,9 +51,7 @@ describe('Route wallet/getAccountsStatus', () => { spendingKey: null, }) - const response = await routeTest.client - .request('wallet/getAccountsStatus', {}) - .waitForEnd() + const response = await routeTest.client.wallet.getAccountsStatus() expect(response.status).toBe(200) expect(response.content).toMatchObject({ diff --git a/ironfish/src/rpc/routes/wallet/getAssets.test.ts b/ironfish/src/rpc/routes/wallet/getAssets.test.ts index a7ec9dee18..0f7f140674 100644 --- a/ironfish/src/rpc/routes/wallet/getAssets.test.ts +++ b/ironfish/src/rpc/routes/wallet/getAssets.test.ts @@ -149,7 +149,7 @@ describe('Route wallet/getAssets', () => { assetId = assetId.toString('hex') } if (assetId === verifiedAsset.id().toString('hex')) { - return { status: 'verified' } + return { status: 'verified', symbol: 'FOO' } } else { return { status: 'unverified' } } @@ -185,7 +185,7 @@ describe('Route wallet/getAssets', () => { owner: account.publicAddress, status: AssetStatus.CONFIRMED, supply: '123', - verification: { status: 'verified' }, + verification: { status: 'verified', symbol: 'FOO' }, }, ]), ) diff --git a/ironfish/src/rpc/routes/wallet/getAssets.ts b/ironfish/src/rpc/routes/wallet/getAssets.ts index 4b9e178f96..0e51beb0d6 100644 --- a/ironfish/src/rpc/routes/wallet/getAssets.ts +++ b/ironfish/src/rpc/routes/wallet/getAssets.ts @@ -51,8 +51,8 @@ routes.register( confirmations: request.data.confirmations, }), supply: asset.supply !== null ? CurrencyUtils.encode(asset.supply) : undefined, - verification: node.assetsVerifier.verify(asset.id), createdTransactionHash: asset.createdTransactionHash.toString('hex'), + verification: node.assetsVerifier.verify(asset.id), }) } diff --git a/ironfish/src/rpc/routes/wallet/getBalance.test.ts b/ironfish/src/rpc/routes/wallet/getBalance.test.ts index 04c8150b7e..3ad6eb636e 100644 --- a/ironfish/src/rpc/routes/wallet/getBalance.test.ts +++ b/ironfish/src/rpc/routes/wallet/getBalance.test.ts @@ -141,7 +141,7 @@ describe('Route wallet/getBalance', () => { const verifyAsset = jest .spyOn(node.assetsVerifier, 'verify') - .mockReturnValueOnce({ status: 'verified' }) + .mockReturnValueOnce({ status: 'verified', symbol: 'FOO' }) const response = await routeTest.client.wallet.getAccountBalance({ account: account.name, diff --git a/ironfish/src/rpc/routes/wallet/getBalance.ts b/ironfish/src/rpc/routes/wallet/getBalance.ts index 4ee4f2afe4..959bc58cae 100644 --- a/ironfish/src/rpc/routes/wallet/getBalance.ts +++ b/ironfish/src/rpc/routes/wallet/getBalance.ts @@ -32,7 +32,7 @@ export type GetBalanceResponse = { /** * @deprecated Please use getAsset endpoint to get this information * */ - assetVerification: AssetVerification + assetVerification: { status: AssetVerification['status'] } } export const GetBalanceRequestSchema: yup.ObjectSchema = yup @@ -84,7 +84,7 @@ routes.register( request.end({ account: account.name, assetId: assetId.toString('hex'), - assetVerification: node.assetsVerifier.verify(assetId), + assetVerification: { status: node.assetsVerifier.verify(assetId).status }, confirmed: balance.confirmed.toString(), unconfirmed: balance.unconfirmed.toString(), unconfirmedCount: balance.unconfirmedCount, diff --git a/ironfish/src/rpc/routes/wallet/getBalances.test.ts b/ironfish/src/rpc/routes/wallet/getBalances.test.ts index 16aaf6c975..514d038317 100644 --- a/ironfish/src/rpc/routes/wallet/getBalances.test.ts +++ b/ironfish/src/rpc/routes/wallet/getBalances.test.ts @@ -165,7 +165,7 @@ describe('Route wallet/getBalances', () => { const verifyAsset = jest .spyOn(node.assetsVerifier, 'verify') .mockReturnValueOnce({ status: 'unverified' }) - .mockReturnValueOnce({ status: 'verified' }) + .mockReturnValueOnce({ status: 'verified', symbol: 'FOO' }) const response = await routeTest.client.wallet.getAccountBalances({ account: account.name, diff --git a/ironfish/src/rpc/routes/wallet/getBalances.ts b/ironfish/src/rpc/routes/wallet/getBalances.ts index e5c28bf185..0054ed10c9 100644 --- a/ironfish/src/rpc/routes/wallet/getBalances.ts +++ b/ironfish/src/rpc/routes/wallet/getBalances.ts @@ -41,7 +41,7 @@ export interface GetBalancesResponse { /** * @deprecated Please use getAsset endpoint to get this information * */ - assetVerification: AssetVerification + assetVerification: { status: AssetVerification['status'] } }[] } @@ -109,7 +109,7 @@ routes.register( assetName: asset?.name.toString('hex') ?? '', assetCreator: asset?.creator.toString('hex') ?? '', assetOwner: asset?.owner.toString('hex') ?? '', - assetVerification: context.assetsVerifier.verify(balance.assetId), + assetVerification: { status: context.assetsVerifier.verify(balance.assetId).status }, blockHash: balance.blockHash?.toString('hex') ?? null, confirmed: CurrencyUtils.encode(balance.confirmed), sequence: balance.sequence, diff --git a/ironfish/src/rpc/routes/wallet/getPublicKey.test.ts b/ironfish/src/rpc/routes/wallet/getPublicKey.test.ts index 9dce181c91..1af5977e96 100644 --- a/ironfish/src/rpc/routes/wallet/getPublicKey.test.ts +++ b/ironfish/src/rpc/routes/wallet/getPublicKey.test.ts @@ -32,12 +32,9 @@ describe('Route wallet/getPublicKey', () => { }) it('should return the account data', async () => { - const response = await routeTest.client - .request('wallet/getPublicKey', { - account: account.name, - generate: false, - }) - .waitForEnd() + const response = await routeTest.client.wallet.getAccountPublicKey({ + account: account.name, + }) expect(response.status).toBe(200) expect(response.content).toMatchObject({ diff --git a/ironfish/src/rpc/routes/wallet/importAccount.test.ts b/ironfish/src/rpc/routes/wallet/importAccount.test.ts index e4b98f5968..cc956f7869 100644 --- a/ironfish/src/rpc/routes/wallet/importAccount.test.ts +++ b/ironfish/src/rpc/routes/wallet/importAccount.test.ts @@ -11,8 +11,6 @@ import { Bech32Encoder } from '../../../wallet/account/encoder/bech32' import { Bech32JsonEncoder } from '../../../wallet/account/encoder/bech32json' import { AccountFormat } from '../../../wallet/account/encoder/encoder' import { RpcClient } from '../../clients' -import { ImportResponse } from './importAccount' -import { CreateParticipantResponse } from './multisig/createParticipant' describe('Route wallet/importAccount', () => { const routeTest = createRouteTest(true) @@ -27,21 +25,20 @@ describe('Route wallet/importAccount', () => { const key = generateKey() const accountName = 'foo' - const response = await routeTest.client - .request('wallet/importAccount', { - account: { - name: accountName, - viewKey: key.viewKey, - spendingKey: null, - publicAddress: key.publicAddress, - incomingViewKey: key.incomingViewKey, - outgoingViewKey: key.outgoingViewKey, - version: 1, - createdAt: null, - }, - rescan: false, - }) - .waitForEnd() + const response = await routeTest.client.wallet.importAccount({ + account: { + name: accountName, + viewKey: key.viewKey, + spendingKey: null, + publicAddress: key.publicAddress, + incomingViewKey: key.incomingViewKey, + outgoingViewKey: key.outgoingViewKey, + proofAuthorizingKey: null, + version: 1, + createdAt: null, + }, + rescan: false, + }) expect(response.status).toBe(200) expect(response.content).toMatchObject({ @@ -54,25 +51,23 @@ describe('Route wallet/importAccount', () => { const trustedDealerPackages = createTrustedDealerKeyPackages() const accountName = 'multisig' - const response = await routeTest.client - .request('wallet/importAccount', { - account: { - version: 1, - name: accountName, - viewKey: trustedDealerPackages.viewKey, - incomingViewKey: trustedDealerPackages.incomingViewKey, - outgoingViewKey: trustedDealerPackages.outgoingViewKey, - publicAddress: trustedDealerPackages.publicAddress, - spendingKey: null, - createdAt: null, - proofAuthorizingKey: trustedDealerPackages.proofAuthorizingKey, - multisigKeys: { - publicKeyPackage: trustedDealerPackages.publicKeyPackage, - }, + const response = await routeTest.client.wallet.importAccount({ + account: { + version: 1, + name: accountName, + viewKey: trustedDealerPackages.viewKey, + incomingViewKey: trustedDealerPackages.incomingViewKey, + outgoingViewKey: trustedDealerPackages.outgoingViewKey, + publicAddress: trustedDealerPackages.publicAddress, + spendingKey: null, + createdAt: null, + proofAuthorizingKey: trustedDealerPackages.proofAuthorizingKey, + multisigKeys: { + publicKeyPackage: trustedDealerPackages.publicKeyPackage, }, - rescan: false, - }) - .waitForEnd() + }, + rescan: false, + }) expect(response.status).toBe(200) expect(response.content).toMatchObject({ @@ -85,21 +80,20 @@ describe('Route wallet/importAccount', () => { const key = generateKey() const accountName = 'bar' - const response = await routeTest.client - .request('wallet/importAccount', { - account: { - name: accountName, - viewKey: key.viewKey, - spendingKey: key.spendingKey, - publicAddress: key.publicAddress, - incomingViewKey: key.incomingViewKey, - outgoingViewKey: key.outgoingViewKey, - version: 1, - createdAt: null, - }, - rescan: false, - }) - .waitForEnd() + const response = await routeTest.client.wallet.importAccount({ + account: { + name: accountName, + viewKey: key.viewKey, + spendingKey: key.spendingKey, + publicAddress: key.publicAddress, + incomingViewKey: key.incomingViewKey, + outgoingViewKey: key.outgoingViewKey, + proofAuthorizingKey: null, + version: 1, + createdAt: null, + }, + rescan: false, + }) expect(response.status).toBe(200) expect(response.content).toMatchObject({ @@ -129,22 +123,21 @@ describe('Route wallet/importAccount', () => { const skipRescanSpy = jest.spyOn(routeTest.node.wallet, 'skipRescan') const accountName = 'baz' - const response = await routeTest.client - .request('wallet/importAccount', { - account: { - name: accountName, - viewKey: key.viewKey, - spendingKey: key.spendingKey, - publicAddress: key.publicAddress, - incomingViewKey: key.incomingViewKey, - outgoingViewKey: key.outgoingViewKey, - version: 1, - createdAt: null, - }, - // set rescan to true so that skipRescan should not be called - rescan: true, - }) - .waitForEnd() + const response = await routeTest.client.wallet.importAccount({ + account: { + name: accountName, + viewKey: key.viewKey, + spendingKey: key.spendingKey, + publicAddress: key.publicAddress, + incomingViewKey: key.incomingViewKey, + outgoingViewKey: key.outgoingViewKey, + proofAuthorizingKey: null, + version: 1, + createdAt: null, + }, + // set rescan to true so that skipRescan should not be called + rescan: true, + }) expect(response.status).toBe(200) expect(response.content).toMatchObject({ @@ -176,12 +169,10 @@ describe('Route wallet/importAccount', () => { const name = 'json' const jsonString = encodeAccount(createAccountImport(name), AccountFormat.JSON) - const response = await routeTest.client - .request('wallet/importAccount', { - account: jsonString, - rescan: false, - }) - .waitForEnd() + const response = await routeTest.client.wallet.importAccount({ + account: jsonString, + rescan: false, + }) expect(response.status).toBe(200) expect(response.content).toMatchObject({ @@ -194,12 +185,10 @@ describe('Route wallet/importAccount', () => { const name = 'bech32json' const bech32Json = new Bech32JsonEncoder().encode(createAccountImport(name)) - const response = await routeTest.client - .request('wallet/importAccount', { - account: bech32Json, - rescan: false, - }) - .waitForEnd() + const response = await routeTest.client.wallet.importAccount({ + account: bech32Json, + rescan: false, + }) expect(response.status).toBe(200) expect(response.content).toMatchObject({ @@ -212,12 +201,10 @@ describe('Route wallet/importAccount', () => { const name = 'bech32' const bech32 = new Bech32Encoder().encode(createAccountImport(name)) - const response = await routeTest.client - .request('wallet/importAccount', { - account: bech32, - rescan: false, - }) - .waitForEnd() + const response = await routeTest.client.wallet.importAccount({ + account: bech32, + rescan: false, + }) expect(response.status).toBe(200) expect(response.content).toMatchObject({ @@ -230,12 +217,10 @@ describe('Route wallet/importAccount', () => { const name = 'base64' const base64 = encodeAccount(createAccountImport(name), AccountFormat.Base64Json) - const response = await routeTest.client - .request('wallet/importAccount', { - account: base64, - rescan: false, - }) - .waitForEnd() + const response = await routeTest.client.wallet.importAccount({ + account: base64, + rescan: false, + }) expect(response.status).toBe(200) expect(response.content).toMatchObject({ @@ -248,13 +233,11 @@ describe('Route wallet/importAccount', () => { const name = 'spendingKey' const spendingKey = generateKey().spendingKey - const response = await routeTest.client - .request('wallet/importAccount', { - account: spendingKey, - name: name, - rescan: false, - }) - .waitForEnd() + const response = await routeTest.client.wallet.importAccount({ + account: spendingKey, + name: name, + rescan: false, + }) expect(response.status).toBe(200) expect(response.content).toMatchObject({ @@ -267,13 +250,11 @@ describe('Route wallet/importAccount', () => { const name = 'mnemonic' const mnemonic = spendingKeyToWords(generateKey().spendingKey, LanguageCode.English) - const response = await routeTest.client - .request('wallet/importAccount', { - account: mnemonic, - name: name, - rescan: false, - }) - .waitForEnd() + const response = await routeTest.client.wallet.importAccount({ + account: mnemonic, + name: name, + rescan: false, + }) expect(response.status).toBe(200) expect(response.content).toMatchObject({ @@ -296,12 +277,10 @@ describe('Route wallet/importAccount', () => { path.join(testCaseDir, testCaseFile), ) - const response = await routeTest.client - .request('wallet/importAccount', { - account: testCase, - name: testCaseFile, - }) - .waitForEnd() + const response = await routeTest.client.wallet.importAccount({ + account: testCase, + name: testCaseFile, + }) expect(response.status).toBe(200) expect(response.content.name).not.toBeNull() @@ -312,22 +291,17 @@ describe('Route wallet/importAccount', () => { it('should import a base64 encoded account', async () => { const name = 'multisig-encrypted-base64' - const identity = ( - await routeTest.client - .request('wallet/multisig/createParticipant', { name }) - .waitForEnd() - ).content.identity + const identity = (await routeTest.client.wallet.multisig.createParticipant({ name })) + .content.identity const base64 = encodeAccount(createAccountImport(name), AccountFormat.Base64Json, { encryptWith: { kind: 'MultisigIdentity', identity: Buffer.from(identity, 'hex') }, }) - const response = await routeTest.client - .request('wallet/importAccount', { - name, - account: base64, - rescan: false, - }) - .waitForEnd() + const response = await routeTest.client.wallet.importAccount({ + name, + account: base64, + rescan: false, + }) expect(response.status).toBe(200) expect(response.content).toMatchObject({ @@ -345,13 +319,11 @@ describe('Route wallet/importAccount', () => { }) await expect( - routeTest.client - .request('wallet/importAccount', { - name, - account: base64, - rescan: false, - }) - .waitForEnd(), + routeTest.client.wallet.importAccount({ + name, + account: base64, + rescan: false, + }), ).rejects.toThrow( expect.objectContaining({ message: expect.stringContaining( @@ -365,22 +337,18 @@ describe('Route wallet/importAccount', () => { it('should fail to import a base64 encode account if the wrong multisig identity is used', async () => { const name = 'multisig-encrypted-base64 (wrong key)' - await routeTest.client - .request('wallet/multisig/createParticipant', { name }) - .waitForEnd() + await routeTest.client.wallet.multisig.createParticipant({ name }) const encryptingParticipant = multisig.ParticipantSecret.random().toIdentity() const base64 = encodeAccount(createAccountImport(name), AccountFormat.Base64Json, { encryptWith: { kind: 'MultisigIdentity', identity: encryptingParticipant }, }) await expect( - routeTest.client - .request('wallet/importAccount', { - name, - account: base64, - rescan: false, - }) - .waitForEnd(), + routeTest.client.wallet.importAccount({ + name, + account: base64, + rescan: false, + }), ).rejects.toThrow( expect.objectContaining({ message: expect.stringContaining( @@ -422,12 +390,10 @@ describe('Route wallet/importAccount', () => { name: testCaseFile, }) - const response = await routeTest.client - .request('wallet/importAccount', { - account: testCase, - name: testCaseFile, - }) - .waitForEnd() + const response = await routeTest.client.wallet.importAccount({ + account: testCase, + name: testCaseFile, + }) expect(response.status).toBe(200) expect(response.content.name).not.toBeNull() diff --git a/ironfish/src/rpc/routes/wallet/mintAsset.ts b/ironfish/src/rpc/routes/wallet/mintAsset.ts index 7b2da269e9..ee09163ffa 100644 --- a/ironfish/src/rpc/routes/wallet/mintAsset.ts +++ b/ironfish/src/rpc/routes/wallet/mintAsset.ts @@ -143,11 +143,11 @@ routes.register( nonce: asset.nonce, creator: asset.creator.toString('hex'), owner: asset.owner.toString('hex'), - verification: context.assetsVerifier.verify(mint.asset.id()), status: await context.wallet.getAssetStatus(account, asset, { confirmations: request.data.confirmations, }), createdTransactionHash: asset.createdTransactionHash.toString('hex'), + verification: context.assetsVerifier.verify(mint.asset.id()), }, transaction: await serializeRpcWalletTransaction( context.config, diff --git a/ironfish/src/rpc/routes/wallet/multisig/__fixtures__/createSigningPackage.test.ts.fixture b/ironfish/src/rpc/routes/wallet/multisig/__fixtures__/createSigningPackage.test.ts.fixture index 8f22b832d8..f5e01d1638 100644 --- a/ironfish/src/rpc/routes/wallet/multisig/__fixtures__/createSigningPackage.test.ts.fixture +++ b/ironfish/src/rpc/routes/wallet/multisig/__fixtures__/createSigningPackage.test.ts.fixture @@ -252,5 +252,55 @@ "type": "Buffer", "data": "base64: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" } + ], + "Route multisig/createSigningPackage should create signing package with a subset of signers": [ + { + "version": 4, + "id": "43585337-87e7-4c4c-9144-5e7e48a70792", + "name": "test", + "spendingKey": "a4e693d1f0b17686d54df1fe0735c8ca200e2b8a17f4d9bc9a478fca3c69a461", + "viewKey": "beed29e75780dfeba70d209f70ee88b870f4acfd250e0b6f37258bb8371e65606d7f02030f6e81227615d6894b22463fc71b3abf6dc790c21b295b6f20171bbf", + "incomingViewKey": "771b68d4672ff4d04fc926ad9394c202a503964f3daffa2c6be8e91f79b56806", + "outgoingViewKey": "9820a552c54d72a514b06c58bc3cf84903f688023e0b6d67e8605f842e70a41f", + "publicAddress": "e400d626984962dee2fc447346136da420f5ccc26f22fc5705c3c43bd1463484", + "createdAt": { + "hash": { + "type": "Buffer", + "data": "base64:R5HXrp+X3xAO8VWOhHctagm0N2I4goP3XG8goyqIqoY=" + }, + "sequence": 1 + }, + "proofAuthorizingKey": "e598e873cbb1ab25de4f0984bc11a6c3a11dcc44af631d8821cc17d66bebfa01" + }, + { + "header": { + "sequence": 2, + "previousBlockHash": "4791D7AE9F97DF100EF1558E84772D6A09B43762388283F75C6F20A32A88AA86", + "noteCommitment": { + "type": "Buffer", + "data": "base64:OGXubovLj9B2u0nQQe2bQeL5290XRqu30PnboloY0xI=" + }, + "transactionCommitment": { + "type": "Buffer", + "data": "base64:X0rg5Cl6jvtRhccXoEY7b5cElFk3HgxzW4Bup9Zg2mc=" + }, + "target": "9282972777491357380673661573939192202192629606981189395159182914949423", + "randomness": "0", + "timestamp": 1711580700747, + "graffiti": "0000000000000000000000000000000000000000000000000000000000000000", + "noteSize": 4, + "work": "0" + }, + "transactions": [ + { + "type": "Buffer", + "data": "base64:AQAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzKiP////8AAAAAz6GExBTAt60fDoQqklQvKEmnbiw6DTmd5qZd3NpmY4eNbR9Y+LWJj6A1BgWvOA0jEtehv0VMCMKY81jEjNfi6spmIOfHQEnqeCJTGuPFfZO5B35y3k0xm5EDO/eXa0Sr2p1CpiC+EGOsi4SkkY501DGNlZl7SPoVb8agycMC4IUP6Y4eVcJx+GOemaS78ApzhD2q2nwnk1OPRrF1xfcCo5hAHIS/OFaNb/3PUmiTyByP5djatefY0DB5kttSgm0r6VhbGiDDIpyYzH+1ADH7pMb/TOdF/x8/nG94pymnTrya+5kNWVi3V6wHGYdMNKNvj3cFc3dDqv7G/5+djI4ysuhAitgpjzk+iNxyv4Gt1/M3MDMxs9Vdd4bnoHmUshcxS6Pm00faV2RqGQakvGxp0rZt8WExZNXiHGvaHIfhJTZdwVvtSZBBB+r5EoHa/FXYXwTkGGvjr2hd7kHsgYaIc9TfgT2BFgLSMmAGwxh8+G0o/QV2n+dT6nEULog+RGTDK6ojyMpk0z3HaxrB+pcSoEgBbdXs+LoqOx/BtGwA9/kXxgNv5JTFbc63N1lUS1Zy1vKRB6vg33khGk2TDp9ltCjaHys0nN+IeC8dxvT4S9EYChvs+Sm8Z0lyb24gRmlzaCBub3RlIGVuY3J5cHRpb24gbWluZXIga2V5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwEsAUHPW/f80iQhsI5Bl7baHd0YMg7nz1W1hYG2HozgZDT2fcZtmB7e8eg1MW/EipLgab5MwgXWwPILVdGMSBDA==" + } + ] + }, + { + "type": "Buffer", + "data": "base64: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" + } ] } \ No newline at end of file diff --git a/ironfish/src/rpc/routes/wallet/multisig/createSigningCommitment.test.ts b/ironfish/src/rpc/routes/wallet/multisig/createSigningCommitment.test.ts index 040287cce7..9253929fb8 100644 --- a/ironfish/src/rpc/routes/wallet/multisig/createSigningCommitment.test.ts +++ b/ironfish/src/rpc/routes/wallet/multisig/createSigningCommitment.test.ts @@ -5,7 +5,6 @@ import { multisig } from '@ironfish/rust-nodejs' import { useAccountAndAddFundsFixture, useUnsignedTxFixture } from '../../../../testUtilities' import { createRouteTest } from '../../../../testUtilities/routeTest' import { ACCOUNT_SCHEMA_VERSION } from '../../../../wallet' -import { CreateParticipantResponse } from './createParticipant' describe('Route wallet/multisig/createSigningCommitment', () => { const routeTest = createRouteTest() @@ -92,9 +91,7 @@ describe('Route wallet/multisig/createSigningCommitment', () => { accountNames.map( async (name) => ( - await routeTest.client - .request('wallet/multisig/createParticipant', { name }) - .waitForEnd() + await routeTest.client.wallet.multisig.createParticipant({ name }) ).content, ), ) diff --git a/ironfish/src/rpc/routes/wallet/multisig/createSigningPackage.test.ts b/ironfish/src/rpc/routes/wallet/multisig/createSigningPackage.test.ts index a68071a32c..6061aa2d66 100644 --- a/ironfish/src/rpc/routes/wallet/multisig/createSigningPackage.test.ts +++ b/ironfish/src/rpc/routes/wallet/multisig/createSigningPackage.test.ts @@ -3,7 +3,6 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ import { useAccountAndAddFundsFixture, useUnsignedTxFixture } from '../../../../testUtilities' import { createRouteTest } from '../../../../testUtilities/routeTest' -import { CreateParticipantResponse } from './createParticipant' describe('Route multisig/createSigningPackage', () => { const routeTest = createRouteTest() @@ -13,11 +12,8 @@ describe('Route multisig/createSigningPackage', () => { const accountNames = Array.from({ length: 3 }, (_, index) => `test-account-${index}`) const participants = await Promise.all( accountNames.map(async (name) => { - const identity = ( - await routeTest.client - .request('wallet/multisig/createParticipant', { name }) - .waitForEnd() - ).content.identity + const identity = (await routeTest.client.wallet.multisig.createParticipant({ name })) + .content.identity return { name, identity } }), ) @@ -71,17 +67,74 @@ describe('Route multisig/createSigningPackage', () => { }) }) + it('should create signing package with a subset of signers', async () => { + // Create a bunch of multisig identities + const accountNames = Array.from({ length: 3 }, (_, index) => `test-account-${index}`) + const participants = await Promise.all( + accountNames.map(async (name) => { + const identity = (await routeTest.client.wallet.multisig.createParticipant({ name })) + .content.identity + return { name, identity } + }), + ) + + // Initialize the group though TDK and import the accounts generated + const trustedDealerPackage = ( + await routeTest.client.wallet.multisig.createTrustedDealerKeyPackage({ + minSigners: 2, + participants, + }) + ).content + for (const { name, identity } of participants) { + const importAccount = trustedDealerPackage.participantAccounts.find( + (account) => account.identity === identity, + ) + expect(importAccount).not.toBeUndefined() + await routeTest.client.wallet.importAccount({ + name, + account: importAccount!.account, + }) + } + + // Create an unsigned transaction + const txAccount = await useAccountAndAddFundsFixture(routeTest.wallet, routeTest.chain) + const unsignedTransaction = ( + await useUnsignedTxFixture(routeTest.wallet, txAccount, txAccount) + ) + .serialize() + .toString('hex') + + // Create signing commitments for 2 of 3 participants + const commitments = await Promise.all( + accountNames.slice(0, 2).map(async (accountName) => { + const signingCommitment = + await routeTest.client.wallet.multisig.createSigningCommitment({ + account: accountName, + unsignedTransaction, + signers: participants.slice(0, 2), + }) + return signingCommitment.content.commitment + }), + ) + + // Create the signing package + const responseSigningPackage = await routeTest.client.wallet.multisig.createSigningPackage({ + commitments, + unsignedTransaction, + }) + expect(responseSigningPackage.content).toMatchObject({ + signingPackage: expect.any(String), + }) + }) + describe('should verify commitment consistency', () => { it('of identities', async () => { // Create a bunch of multisig identities const accountNames = Array.from({ length: 4 }, (_, index) => `test-account-${index}`) const participants = await Promise.all( accountNames.map(async (name) => { - const identity = ( - await routeTest.client - .request('wallet/multisig/createParticipant', { name }) - .waitForEnd() - ).content.identity + const identity = (await routeTest.client.wallet.multisig.createParticipant({ name })) + .content.identity return { name, identity } }), ) @@ -185,11 +238,8 @@ describe('Route multisig/createSigningPackage', () => { const accountNames = Array.from({ length: 4 }, (_, index) => `test-account-${index}`) const participants = await Promise.all( accountNames.map(async (name) => { - const identity = ( - await routeTest.client - .request('wallet/multisig/createParticipant', { name }) - .waitForEnd() - ).content.identity + const identity = (await routeTest.client.wallet.multisig.createParticipant({ name })) + .content.identity return { name, identity } }), ) @@ -231,14 +281,14 @@ describe('Route multisig/createSigningPackage', () => { await routeTest.client.wallet.multisig.createSigningCommitment({ account: participants[0].name, unsignedTransaction: unsignedTransaction1, - signers: participants, + signers: participants.slice(0, 2), }) ).content.commitment, ( await routeTest.client.wallet.multisig.createSigningCommitment({ account: participants[1].name, unsignedTransaction: unsignedTransaction2, - signers: participants, + signers: participants.slice(0, 2), }) ).content.commitment, ] @@ -265,11 +315,8 @@ describe('Route multisig/createSigningPackage', () => { const accountNames = Array.from({ length: 4 }, (_, index) => `test-account-${index}`) const participants = await Promise.all( accountNames.map(async (name) => { - const identity = ( - await routeTest.client - .request('wallet/multisig/createParticipant', { name }) - .waitForEnd() - ).content.identity + const identity = (await routeTest.client.wallet.multisig.createParticipant({ name })) + .content.identity return { name, identity } }), ) @@ -328,7 +375,7 @@ describe('Route multisig/createSigningPackage', () => { ).rejects.toThrow( expect.objectContaining({ message: expect.stringContaining( - 'Commitment 1 was not generated for the given unsigned transaction and signer set', + 'Commitment 0 was not generated for the given unsigned transaction and signer set', ), status: 400, }), diff --git a/ironfish/src/rpc/routes/wallet/multisig/createSigningPackage.ts b/ironfish/src/rpc/routes/wallet/multisig/createSigningPackage.ts index c0aba68427..a1cb8d7ba7 100644 --- a/ironfish/src/rpc/routes/wallet/multisig/createSigningPackage.ts +++ b/ironfish/src/rpc/routes/wallet/multisig/createSigningPackage.ts @@ -72,6 +72,7 @@ routes.register { identity: multisig.ParticipantSecret.random().toIdentity().serialize().toString('hex'), })) const request = { minSigners: 2, participants } - const response = await routeTest.client - .request('wallet/multisig/createTrustedDealerKeyPackage', request) - .waitForEnd() + const response = await routeTest.client.wallet.multisig.createTrustedDealerKeyPackage( + request, + ) expect(response.content).toMatchObject({ publicAddress: expect.any(String), diff --git a/ironfish/src/rpc/routes/wallet/multisig/dkg/index.ts b/ironfish/src/rpc/routes/wallet/multisig/dkg/index.ts new file mode 100644 index 0000000000..eaa1f3a468 --- /dev/null +++ b/ironfish/src/rpc/routes/wallet/multisig/dkg/index.ts @@ -0,0 +1,5 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +export * from './round1' +export * from './round2' diff --git a/ironfish/src/rpc/routes/wallet/multisig/dkg/round1.test.ts b/ironfish/src/rpc/routes/wallet/multisig/dkg/round1.test.ts new file mode 100644 index 0000000000..813230bd7c --- /dev/null +++ b/ironfish/src/rpc/routes/wallet/multisig/dkg/round1.test.ts @@ -0,0 +1,122 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +import { multisig } from '@ironfish/rust-nodejs' +import { Assert } from '../../../../../assert' +import { createRouteTest } from '../../../../../testUtilities/routeTest' + +describe('Route multisig/dkg/round1', () => { + const routeTest = createRouteTest() + + it('should create round 1 packages', async () => { + const secretName = 'name' + await routeTest.client.wallet.multisig.createParticipant({ name: secretName }) + + const identity = (await routeTest.client.wallet.multisig.getIdentity({ name: secretName })) + .content.identity + const otherParticipants = Array.from({ length: 2 }, () => ({ + identity: multisig.ParticipantSecret.random().toIdentity().serialize().toString('hex'), + })) + const participants = [{ identity }, ...otherParticipants] + + const request = { secretName, minSigners: 2, participants } + const response = await routeTest.client.wallet.multisig.dkg.round1(request) + + expect(response.content).toMatchObject({ + encryptedSecretPackage: expect.any(String), + publicPackage: expect.any(String), + }) + + // Ensure that the encrypted secret package can be decrypted + const secretValue = await routeTest.node.wallet.walletDb.getMultisigSecretByName(secretName) + Assert.isNotUndefined(secretValue) + const secret = new multisig.ParticipantSecret(secretValue.secret) + secret.decryptData(Buffer.from(response.content.encryptedSecretPackage, 'hex')) + }) + + it('should fail if the named secret does not exist', async () => { + const secretName = 'name' + await routeTest.client.wallet.multisig.createParticipant({ name: secretName }) + + const identity = (await routeTest.client.wallet.multisig.getIdentity({ name: secretName })) + .content.identity + const otherParticipants = Array.from({ length: 2 }, () => ({ + identity: multisig.ParticipantSecret.random().toIdentity().serialize().toString('hex'), + })) + const participants = [{ identity }, ...otherParticipants] + + const request = { secretName: 'otherName', minSigners: 2, participants } + + await expect(routeTest.client.wallet.multisig.dkg.round1(request)).rejects.toThrow( + expect.objectContaining({ + message: expect.stringContaining("Multisig secret with name 'otherName' not found"), + status: 400, + }), + ) + }) + + it('should add the named identity if it is not in the list of participants', async () => { + const secretName = 'name' + await routeTest.client.wallet.multisig.createParticipant({ name: secretName }) + + // only pass in one participant + const participants = [ + { + identity: multisig.ParticipantSecret.random().toIdentity().serialize().toString('hex'), + }, + ] + + const request = { secretName, minSigners: 2, participants } + + const response = await routeTest.client.wallet.multisig.dkg.round1(request) + + expect(response.content).toMatchObject({ + encryptedSecretPackage: expect.any(String), + publicPackage: expect.any(String), + }) + }) + + it('should fail if minSigners is too low', async () => { + const secretName = 'name' + await routeTest.client.wallet.multisig.createParticipant({ name: secretName }) + + const identity = (await routeTest.client.wallet.multisig.getIdentity({ name: secretName })) + .content.identity + const otherParticipants = Array.from({ length: 2 }, () => ({ + identity: multisig.ParticipantSecret.random().toIdentity().serialize().toString('hex'), + })) + const participants = [{ identity }, ...otherParticipants] + + const request = { secretName, minSigners: 1, participants } + + await expect(routeTest.client.wallet.multisig.dkg.round1(request)).rejects.toThrow( + expect.objectContaining({ + message: expect.stringContaining('minSigners must be 2 or greater, got 1'), + status: 400, + }), + ) + }) + + it('should fail if minSigners exceeds the number of participants', async () => { + const secretName = 'name' + await routeTest.client.wallet.multisig.createParticipant({ name: secretName }) + + const identity = (await routeTest.client.wallet.multisig.getIdentity({ name: secretName })) + .content.identity + const otherParticipants = Array.from({ length: 2 }, () => ({ + identity: multisig.ParticipantSecret.random().toIdentity().serialize().toString('hex'), + })) + const participants = [{ identity }, ...otherParticipants] + + const request = { secretName, minSigners: 4, participants } + + await expect(routeTest.client.wallet.multisig.dkg.round1(request)).rejects.toThrow( + expect.objectContaining({ + message: expect.stringContaining( + 'minSigners (4) exceeds the number of participants (3)', + ), + status: 400, + }), + ) + }) +}) diff --git a/ironfish/src/rpc/routes/wallet/multisig/dkg/round1.ts b/ironfish/src/rpc/routes/wallet/multisig/dkg/round1.ts new file mode 100644 index 0000000000..66502eebea --- /dev/null +++ b/ironfish/src/rpc/routes/wallet/multisig/dkg/round1.ts @@ -0,0 +1,87 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +import { multisig } from '@ironfish/rust-nodejs' +import * as yup from 'yup' +import { RPC_ERROR_CODES, RpcValidationError } from '../../../../adapters' +import { ApiNamespace } from '../../../namespaces' +import { routes } from '../../../router' +import { AssertHasRpcContext } from '../../../rpcContext' + +export type DkgRound1Request = { + secretName: string + minSigners: number + participants: Array<{ identity: string }> +} + +export type DkgRound1Response = { + encryptedSecretPackage: string + publicPackage: string +} + +export const DkgRound1RequestSchema: yup.ObjectSchema = yup + .object({ + secretName: yup.string().defined(), + minSigners: yup.number().defined(), + participants: yup + .array() + .of(yup.object({ identity: yup.string().defined() }).defined()) + .defined(), + }) + .defined() + +export const DkgRound1ResponseSchema: yup.ObjectSchema = yup + .object({ + encryptedSecretPackage: yup.string().defined(), + publicPackage: yup.string().defined(), + }) + .defined() + +routes.register( + `${ApiNamespace.wallet}/multisig/dkg/round1`, + DkgRound1RequestSchema, + async (request, node): Promise => { + AssertHasRpcContext(request, node, 'wallet') + + const { secretName, minSigners, participants } = request.data + const multisigSecret = await node.wallet.walletDb.getMultisigSecretByName(secretName) + + if (!multisigSecret) { + throw new RpcValidationError( + `Multisig secret with name '${secretName}' not found`, + 400, + RPC_ERROR_CODES.MULTISIG_SECRET_NOT_FOUND, + ) + } + + const participantIdentities = participants.map((p) => p.identity) + const selfIdentity = new multisig.ParticipantSecret(multisigSecret.secret) + .toIdentity() + .serialize() + .toString('hex') + + if (!participantIdentities.includes(selfIdentity)) { + participantIdentities.push(selfIdentity) + } + + if (minSigners < 2) { + throw new RpcValidationError( + `minSigners must be 2 or greater, got ${minSigners}`, + 400, + RPC_ERROR_CODES.VALIDATION, + ) + } + + if (minSigners > participantIdentities.length) { + throw new RpcValidationError( + `minSigners (${minSigners}) exceeds the number of participants (${participantIdentities.length})`, + 400, + RPC_ERROR_CODES.VALIDATION, + ) + } + + const packages = multisig.dkgRound1(selfIdentity, minSigners, participantIdentities) + + request.end(packages) + }, +) diff --git a/ironfish/src/rpc/routes/wallet/multisig/dkg/round2.test.ts b/ironfish/src/rpc/routes/wallet/multisig/dkg/round2.test.ts new file mode 100644 index 0000000000..05cf72cd63 --- /dev/null +++ b/ironfish/src/rpc/routes/wallet/multisig/dkg/round2.test.ts @@ -0,0 +1,59 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +import { createRouteTest } from '../../../../../testUtilities/routeTest' + +describe('Route multisig/dkg/round2', () => { + const routeTest = createRouteTest() + + it('should create round 2 packages', async () => { + const secretName1 = 'name1' + await routeTest.client.wallet.multisig.createParticipant({ name: secretName1 }) + const secretName2 = 'name2' + await routeTest.client.wallet.multisig.createParticipant({ name: secretName2 }) + + const identity1 = ( + await routeTest.client.wallet.multisig.getIdentity({ name: secretName1 }) + ).content.identity + const identity2 = ( + await routeTest.client.wallet.multisig.getIdentity({ name: secretName2 }) + ).content.identity + const participants = [{ identity: identity1 }, { identity: identity2 }] + + const round1Request1 = { secretName: secretName1, minSigners: 2, participants } + const round1Response1 = await routeTest.client.wallet.multisig.dkg.round1(round1Request1) + + const round1Request2 = { secretName: secretName2, minSigners: 2, participants } + const round1Response2 = await routeTest.client.wallet.multisig.dkg.round1(round1Request2) + + const round2Request = { + secretName: secretName1, + encryptedSecretPackage: round1Response1.content.encryptedSecretPackage, + publicPackages: [ + round1Response1.content.publicPackage, + round1Response2.content.publicPackage, + ], + } + + const round2Response = await routeTest.client.wallet.multisig.dkg.round2(round2Request) + + expect(round2Response.content).toMatchObject({ + encryptedSecretPackage: expect.any(String), + }) + }) + + it('should fail if the named secret does not exist', async () => { + const request = { + secretName: 'fakeName', + encryptedSecretPackage: 'foo', + publicPackages: ['bar', 'baz'], + } + + await expect(routeTest.client.wallet.multisig.dkg.round2(request)).rejects.toThrow( + expect.objectContaining({ + message: expect.stringContaining("Multisig secret with name 'fakeName' not found"), + status: 400, + }), + ) + }) +}) diff --git a/ironfish/src/rpc/routes/wallet/multisig/dkg/round2.ts b/ironfish/src/rpc/routes/wallet/multisig/dkg/round2.ts new file mode 100644 index 0000000000..2b5aff4f1b --- /dev/null +++ b/ironfish/src/rpc/routes/wallet/multisig/dkg/round2.ts @@ -0,0 +1,69 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +import { multisig } from '@ironfish/rust-nodejs' +import * as yup from 'yup' +import { RPC_ERROR_CODES, RpcValidationError } from '../../../../adapters' +import { ApiNamespace } from '../../../namespaces' +import { routes } from '../../../router' +import { AssertHasRpcContext } from '../../../rpcContext' + +export type DkgRound2Request = { + secretName: string + encryptedSecretPackage: string + publicPackages: Array +} + +export type DkgRound2Response = { + encryptedSecretPackage: string + publicPackages: Array<{ recipientIdentity: string; publicPackage: string }> +} + +export const DkgRound2RequestSchema: yup.ObjectSchema = yup + .object({ + secretName: yup.string().defined(), + encryptedSecretPackage: yup.string().defined(), + publicPackages: yup.array().of(yup.string().defined()).defined(), + }) + .defined() + +export const DkgRound2ResponseSchema: yup.ObjectSchema = yup + .object({ + encryptedSecretPackage: yup.string().defined(), + publicPackages: yup + .array( + yup + .object({ + recipientIdentity: yup.string().defined(), + publicPackage: yup.string().defined(), + }) + .defined(), + ) + .defined(), + }) + .defined() + +routes.register( + `${ApiNamespace.wallet}/multisig/dkg/round2`, + DkgRound2RequestSchema, + async (request, node): Promise => { + AssertHasRpcContext(request, node, 'wallet') + + const { secretName, encryptedSecretPackage, publicPackages } = request.data + const multisigSecret = await node.wallet.walletDb.getMultisigSecretByName(secretName) + + if (!multisigSecret) { + throw new RpcValidationError( + `Multisig secret with name '${secretName}' not found`, + 400, + RPC_ERROR_CODES.MULTISIG_SECRET_NOT_FOUND, + ) + } + + const secret = multisigSecret.secret.toString('hex') + + const packages = multisig.dkgRound2(secret, encryptedSecretPackage, publicPackages) + + request.end(packages) + }, +) diff --git a/ironfish/src/rpc/routes/wallet/multisig/index.ts b/ironfish/src/rpc/routes/wallet/multisig/index.ts index d0a65e191b..ec6f0dd92f 100644 --- a/ironfish/src/rpc/routes/wallet/multisig/index.ts +++ b/ironfish/src/rpc/routes/wallet/multisig/index.ts @@ -11,3 +11,4 @@ export * from './createParticipant' export * from './getIdentity' export * from './getIdentities' export * from './getAccountIdentities' +export * from './dkg' diff --git a/ironfish/src/rpc/routes/wallet/multisig/integration.test.slow.ts b/ironfish/src/rpc/routes/wallet/multisig/integration.test.slow.ts index ddc99bd32e..7b5419e015 100644 --- a/ironfish/src/rpc/routes/wallet/multisig/integration.test.slow.ts +++ b/ironfish/src/rpc/routes/wallet/multisig/integration.test.slow.ts @@ -38,7 +38,8 @@ describe('multisig RPC integration', () => { }) } - const participantAccounts = accountNames.map((accountName) => { + // select only the first 2 accounts to sign (2 of 3) + const participantAccounts = accountNames.slice(0, 2).map((accountName) => { const participantAccount = routeTest.wallet.getAccountByName(accountName) Assert.isNotNull(participantAccount) return participantAccount diff --git a/ironfish/src/rpc/routes/wallet/sendTransaction.ts b/ironfish/src/rpc/routes/wallet/sendTransaction.ts index 0f6c5b0dd3..df1c9eca0e 100644 --- a/ironfish/src/rpc/routes/wallet/sendTransaction.ts +++ b/ironfish/src/rpc/routes/wallet/sendTransaction.ts @@ -77,7 +77,7 @@ routes.register( `${ApiNamespace.wallet}/sendTransaction`, SendTransactionRequestSchema, async (request, context): Promise => { - AssertHasRpcContext(request, context, 'wallet') + AssertHasRpcContext(request, context, 'wallet', 'assetsVerifier') Assert.isNotNull(context.wallet.nodeClient) const account = getAccount(context.wallet, request.data.account) @@ -165,7 +165,17 @@ routes.register( }) } catch (e) { if (e instanceof NotEnoughFundsError) { - throw new RpcValidationError(e.message, 400, RPC_ERROR_CODES.INSUFFICIENT_BALANCE) + // We are overriding the error message from the node to include verified assets in their appropriate denomination. + const assetData = context.assetsVerifier.getAssetData(e.assetId) + const renderedAmountNeeded = CurrencyUtils.render( + e.amountNeeded, + true, + e.assetId, + assetData, + ) + const renderedAmount = CurrencyUtils.render(e.amount, false, e.assetId, assetData) + const message = `Insufficient funds: Needed ${renderedAmountNeeded} but have ${renderedAmount} available to spend. Please fund your account and/or wait for any pending transactions to be confirmed.'` + throw new RpcValidationError(message, 400, RPC_ERROR_CODES.INSUFFICIENT_BALANCE) } throw e } diff --git a/ironfish/src/rpc/routes/wallet/types.ts b/ironfish/src/rpc/routes/wallet/types.ts index ea1b6b5257..07516b026b 100644 --- a/ironfish/src/rpc/routes/wallet/types.ts +++ b/ironfish/src/rpc/routes/wallet/types.ts @@ -50,6 +50,7 @@ export type RpcWalletNote = { assetId: string value: string memo: string + memoHex: string sender: string owner: string noteHash: string @@ -77,6 +78,7 @@ export const RpcWalletNoteSchema: yup.ObjectSchema = yup assetId: yup.string().defined(), assetName: yup.string().defined(), memo: yup.string().defined(), + memoHex: yup.string().defined(), sender: yup.string().defined(), owner: yup.string().defined(), noteHash: yup.string().defined(), diff --git a/ironfish/src/rpc/routes/wallet/utils.ts b/ironfish/src/rpc/routes/wallet/utils.ts index e4c19c1e6b..f850eb25a0 100644 --- a/ironfish/src/rpc/routes/wallet/utils.ts +++ b/ironfish/src/rpc/routes/wallet/utils.ts @@ -248,6 +248,7 @@ export function serializeRpcWalletNote( assetId: note.note.assetId().toString('hex'), assetName: asset?.name.toString('hex') || '', memo: BufferUtils.toHuman(note.note.memo()), + memoHex: note.note.memo().toString('hex'), owner: note.note.owner(), sender: note.note.sender(), noteHash: note.note.hash().toString('hex'), diff --git a/ironfish/src/rpc/routes/worker/getStatus.test.ts b/ironfish/src/rpc/routes/worker/getStatus.test.ts index 3e6019a2e6..f2234ef195 100644 --- a/ironfish/src/rpc/routes/worker/getStatus.test.ts +++ b/ironfish/src/rpc/routes/worker/getStatus.test.ts @@ -9,9 +9,7 @@ describe('Route worker/getStatus', () => { it('should get status', async () => { const request: GetWorkersStatusRequest = { stream: false } - const response = await routeTest.client - .request('worker/getStatus', { request }) - .waitForEnd() + const response = await routeTest.client.worker.getWorkersStatus(request) expect(response.status).toBe(200) diff --git a/ironfish/src/storage/database/store.ts b/ironfish/src/storage/database/store.ts index 6b271806f1..ea45bb92d2 100644 --- a/ironfish/src/storage/database/store.ts +++ b/ironfish/src/storage/database/store.ts @@ -110,7 +110,7 @@ export interface IDatabaseStore { ): Promise | undefined> /** - * Used to check if the the database has a given key + * Used to check if the database has a given key * @param key - The key to check * @param transaction - If provided, the operation will use the transaction. diff --git a/ironfish/src/storage/levelup/store.ts b/ironfish/src/storage/levelup/store.ts index d1cc7b2459..0359016ef4 100644 --- a/ironfish/src/storage/levelup/store.ts +++ b/ironfish/src/storage/levelup/store.ts @@ -18,7 +18,6 @@ import { SchemaKey, SchemaValue, } from '../database' -import { BufferToStringEncoding } from '../database/encoding' import { StorageUtils } from '../database/utils' import { LevelupTransaction } from './transaction' @@ -73,11 +72,11 @@ export class LevelupStore extends DatabaseStore, SchemaValue]> { + ): AsyncGenerator<[Buffer, SchemaValue | Buffer]> { if (keyRange) { keyRange = StorageUtils.addPrefixToRange(keyRange, this.prefixBuffer) } else { @@ -85,18 +84,18 @@ export class LevelupStore extends DatabaseStore }>( - ({ key: a }, { key: b }) => - iteratorOptions?.reverse ? b.compare(a) < 0 : a.compare(b) < 0, + const cacheElements = new FastPriorityQueue<{ + key: Buffer + value: SchemaValue | Buffer + }>(({ key: a }, { key: b }) => + iteratorOptions?.reverse ? b.compare(a) < 0 : a.compare(b) < 0, ) if (ENABLE_TRANSACTIONS && transaction) { Assert.isInstanceOf(transaction, LevelupTransaction) await transaction.acquireLock() - for (const [keyString, value] of transaction.cache.entries()) { - const key = BufferToStringEncoding.deserialize(keyString) - + for (const [key, value] of transaction.cache.entries()) { if (!StorageUtils.hasPrefix(key, this.prefixBuffer)) { continue } @@ -112,9 +111,9 @@ export class LevelupStore extends DatabaseStore }) + cacheElements.add({ key, value }) } else { - yield [this.decodeKey(key), value as SchemaValue] + yield [key, value] } } } @@ -130,21 +129,31 @@ export class LevelupStore extends DatabaseStore, SchemaValue]> { + for await (const [key, value] of this._getAllIter(transaction, keyRange, iteratorOptions)) { + yield [this.decodeKey(key), this.resolveValue(value)] } } @@ -161,8 +170,8 @@ export class LevelupStore extends DatabaseStore> { - for await (const [, value] of this.getAllIter(transaction, keyRange, iteratorOptions)) { - yield value + for await (const [, value] of this._getAllIter(transaction, keyRange, iteratorOptions)) { + yield this.resolveValue(value) } } @@ -179,8 +188,8 @@ export class LevelupStore extends DatabaseStore> { - for await (const [key] of this.getAllIter(transaction, keyRange, iteratorOptions)) { - yield key + for await (const [key] of this._getAllIter(transaction, keyRange, iteratorOptions)) { + yield this.decodeKey(key) } } @@ -277,6 +286,13 @@ export class LevelupStore extends DatabaseStore | Buffer): SchemaValue { + if (value instanceof Buffer) { + return this.valueEncoding.deserialize(value) + } + return value + } } function parsePut( diff --git a/ironfish/src/storage/levelup/transaction.ts b/ironfish/src/storage/levelup/transaction.ts index 20516577ce..0713510a5d 100644 --- a/ironfish/src/storage/levelup/transaction.ts +++ b/ironfish/src/storage/levelup/transaction.ts @@ -3,9 +3,9 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ import type { LevelupDatabase } from './database' import type { LevelupStore } from './store' +import { BufferMap, BufferSet } from 'buffer-map' import { MutexUnlockFunction } from '../../mutex' import { - BufferToStringEncoding, DatabaseSchema, DuplicateKeyError, IDatabaseTransaction, @@ -20,8 +20,8 @@ export class LevelupTransaction implements IDatabaseTransaction { batch: LevelupBatch committing = false aborting = false - cache = new Map() - cacheDelete = new Set() + cache = new BufferMap() + cacheDelete = new BufferSet() unlock: MutexUnlockFunction | null = null waiting: Promise | null = null waitingResolve: (() => void) | null = null @@ -81,19 +81,18 @@ export class LevelupTransaction implements IDatabaseTransaction { this.assertCanRead() const [encodedKey] = store.encode(key) - const cacheKey = BufferToStringEncoding.serialize(encodedKey) - if (this.cacheDelete.has(cacheKey)) { + if (this.cacheDelete.has(encodedKey)) { return undefined } - if (this.cache.has(cacheKey)) { - const cached = this.cache.get(cacheKey) + if (this.cache.has(encodedKey)) { + const cached = this.cache.get(encodedKey) return cached as SchemaValue } const value = await store.get(key) - this.cache.set(cacheKey, value) + this.cache.set(encodedKey, value) return value } @@ -107,11 +106,10 @@ export class LevelupTransaction implements IDatabaseTransaction { this.assertCanWrite() const [encodedKey, encodedValue] = store.encode(key, value) - const cacheKey = BufferToStringEncoding.serialize(encodedKey) this.batch.putEncoded(encodedKey, encodedValue) - this.cache.set(cacheKey, value) - this.cacheDelete.delete(cacheKey) + this.cache.set(encodedKey, value) + this.cacheDelete.delete(encodedKey) } async add( @@ -128,10 +126,9 @@ export class LevelupTransaction implements IDatabaseTransaction { } const [encodedKey, encodedValue] = store.encode(key, value) - const cacheKey = BufferToStringEncoding.serialize(encodedKey) this.batch.putEncoded(encodedKey, encodedValue) - this.cache.set(cacheKey, value) - this.cacheDelete.delete(cacheKey) + this.cache.set(encodedKey, value) + this.cacheDelete.delete(encodedKey) } async del( @@ -143,10 +140,9 @@ export class LevelupTransaction implements IDatabaseTransaction { this.assertCanWrite() const [encodedKey] = store.encode(key) - const cacheKey = BufferToStringEncoding.serialize(encodedKey) this.batch.delEncoded(encodedKey) - this.cache.set(cacheKey, undefined) - this.cacheDelete.add(cacheKey) + this.cache.set(encodedKey, undefined) + this.cacheDelete.add(encodedKey) } async update(): Promise { diff --git a/ironfish/src/utils/currency.test.ts b/ironfish/src/utils/currency.test.ts index 505097d130..e4b8772046 100644 --- a/ironfish/src/utils/currency.test.ts +++ b/ironfish/src/utils/currency.test.ts @@ -1,7 +1,8 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { CurrencyUtils } from './currency' +import { Asset } from '@ironfish/rust-nodejs' +import { CurrencyUtils, isParseFixedError } from './currency' describe('CurrencyUtils', () => { it('encode', () => { @@ -42,6 +43,117 @@ describe('CurrencyUtils', () => { expect(CurrencyUtils.decodeIron('0.00000999')).toBe(999n) }) + describe('tryMajorToMinor', () => { + // Randomly generated custom asset ID + const assetId = '1a75bf033c1c1925cfcd1a77461364e77c6e861c2a3acabaf9e398e980146651' + + it('should return iron in ore denomination with no extra parameters', () => { + expect(CurrencyUtils.tryMajorToMinor(0n)).toEqual([0n, null]) + expect(CurrencyUtils.tryMajorToMinor(1n)).toEqual([100000000n, null]) + expect(CurrencyUtils.tryMajorToMinor(100n)).toEqual([10000000000n, null]) + + expect(CurrencyUtils.tryMajorToMinor('0.00001')).toEqual([1000n, null]) + }) + + it('should return iron in ore denomination with even with incorrect parameters', () => { + expect( + CurrencyUtils.tryMajorToMinor(0n, Asset.nativeId().toString('hex'), { decimals: 4 }), + ).toEqual([0n, null]) + expect( + CurrencyUtils.tryMajorToMinor(1n, Asset.nativeId().toString('hex'), { decimals: 4 }), + ).toEqual([100000000n, null]) + expect( + CurrencyUtils.tryMajorToMinor(100n, Asset.nativeId().toString('hex'), { decimals: 4 }), + ).toEqual([10000000000n, null]) + + expect( + CurrencyUtils.tryMajorToMinor('0.00001', Asset.nativeId().toString('hex'), { + decimals: 4, + }), + ).toEqual([1000n, null]) + }) + + it('should return an asset value with 0 decimals by default', () => { + expect(CurrencyUtils.tryMajorToMinor(1n, assetId)).toEqual([1n, null]) + expect(CurrencyUtils.tryMajorToMinor(100n, assetId)).toEqual([100n, null]) + expect(CurrencyUtils.tryMajorToMinor('100', assetId)).toEqual([100n, null]) + }) + + it('should return an asset value using the given decimals', () => { + expect(CurrencyUtils.tryMajorToMinor(1n, assetId, { decimals: 2 })).toEqual([100n, null]) + expect(CurrencyUtils.tryMajorToMinor(100n, assetId, { decimals: 2 })).toEqual([ + 10000n, + null, + ]) + expect(CurrencyUtils.tryMajorToMinor('100', assetId, { decimals: 2 })).toEqual([ + 10000n, + null, + ]) + }) + + it('should return an error if the given amount cannot be parsed', () => { + const [value, err] = CurrencyUtils.tryMajorToMinor('1.0.0') + expect(value).toBeNull() + expect(isParseFixedError(err)).toEqual(true) + }) + }) + + describe('render', () => { + // Randomly generated custom asset ID + const assetId = '1a75bf033c1c1925cfcd1a77461364e77c6e861c2a3acabaf9e398e980146651' + + it('should render iron with no extra parameters with 8 decimal places', () => { + expect(CurrencyUtils.render(0n)).toEqual('0.00000000') + expect(CurrencyUtils.render(1n)).toEqual('0.00000001') + expect(CurrencyUtils.render(100n)).toEqual('0.00000100') + expect(CurrencyUtils.render(10000n)).toEqual('0.00010000') + expect(CurrencyUtils.render(100000000n)).toEqual('1.00000000') + }) + + it('should include IRON for the iron asset ticker', () => { + expect(CurrencyUtils.render(1n, true)).toEqual('$IRON 0.00000001') + }) + + it('should still render iron with 8 decimals and $IRON symbol even if parameters are given', () => { + expect( + CurrencyUtils.render(1n, false, Asset.nativeId().toString('hex'), { + decimals: 2, + symbol: 'FOO', + }), + ).toEqual('0.00000001') + expect( + CurrencyUtils.render(1n, true, Asset.nativeId().toString('hex'), { + decimals: 2, + symbol: 'FOO', + }), + ).toEqual('$IRON 0.00000001') + }) + + it('should render an asset value with 0 decimals by default', () => { + expect(CurrencyUtils.render(1n, false, assetId)).toEqual('1') + expect(CurrencyUtils.render(1n, true, assetId)).toEqual(`${assetId} 1`) + }) + + it('should render an asset value with the given decimals and symbol', () => { + expect(CurrencyUtils.render(1n, false, assetId, { decimals: 2 })).toEqual('0.01') + expect(CurrencyUtils.render(1n, true, assetId, { decimals: 2 })).toEqual( + `${assetId} 0.01`, + ) + + expect(CurrencyUtils.render(100n, false, assetId, { decimals: 2 })).toEqual('1.00') + expect(CurrencyUtils.render(100n, true, assetId, { decimals: 2 })).toEqual( + `${assetId} 1.00`, + ) + + expect( + CurrencyUtils.render(100n, false, assetId, { decimals: 2, symbol: 'FOO' }), + ).toEqual('1.00') + expect(CurrencyUtils.render(100n, true, assetId, { decimals: 2, symbol: 'FOO' })).toEqual( + `FOO 1.00`, + ) + }) + }) + it('renderIron', () => { expect(CurrencyUtils.renderIron(0n)).toEqual('0.00000000') expect(CurrencyUtils.renderIron(1n)).toEqual('0.00000001') diff --git a/ironfish/src/utils/currency.ts b/ironfish/src/utils/currency.ts index e12f187e82..2644cb9661 100644 --- a/ironfish/src/utils/currency.ts +++ b/ironfish/src/utils/currency.ts @@ -25,21 +25,6 @@ export class CurrencyUtils { return parseFixed(amount.toString(), 8).toBigInt() } - /** - * Parses iron into ore but returns the error if parsing fails - */ - static decodeIronTry(amount: string | number): [bigint, null] | [null, ParseFixedError] { - try { - const parsed = parseFixed(amount.toString(), 8).toBigInt() - return [parsed, null] - } catch (e) { - if (isParseFixedError(e)) { - return [null, e] - } - throw e - } - } - /** * Deserialize ore back into bigint */ @@ -58,6 +43,69 @@ export class CurrencyUtils { return amount.toString() } + /** + * Parses a value in a major denomination as the minor denomination where possible: + * - $IRON is always going to have 8 decimal places. + * - If a custom asset, and `decimals` is provided, it will give the value + * followed by a digit for each decimal place + * - If a custom asset, and `decimals` is not provided, it will assume the + * value is already in minor denomination with no decimal places + * + * Examples: + * 1 $IRON = 100000000 + * A custom asset with 2 decimal places: 1 = 100 + * A custom asset with no decimal places: 1 = 1 + */ + static tryMajorToMinor( + amount: bigint | string, + assetId?: string, + verifiedAssetMetadata?: { + decimals?: number + }, + ): [bigint, null] | [null, ParseFixedError] { + try { + const { decimals } = assetMetadataWithDefaults(assetId, verifiedAssetMetadata) + const parsed = parseFixed(amount.toString(), decimals).toBigInt() + return [parsed, null] + } catch (e) { + if (isParseFixedError(e)) { + return [null, e] + } + throw e + } + } + + /** + * Renders values for human-readable purposes: + * - Renders $IRON in the major denomination, with 8 decimal places + * - If a custom asset, and `decimals` is provided, it will render the custom + * asset in the major denomination with the decimal places + * - If a custom asset, and `decimals` is not provided, it will render the + * custom asset in the minor denomination with no decimal places + */ + static render( + amount: bigint | string, + includeSymbol: boolean = false, + assetId?: string, + verifiedAssetMetadata?: { + decimals?: number + symbol?: string + }, + ): string { + if (typeof amount === 'string') { + amount = this.decode(amount) + } + + const { decimals, symbol } = assetMetadataWithDefaults(assetId, verifiedAssetMetadata) + const majorDenominationAmount = FixedNumberUtils.render(amount, decimals) + + if (includeSymbol) { + return `${symbol} ${majorDenominationAmount}` + } + + return majorDenominationAmount + } + /* * Renders ore as iron for human-readable purposes */ @@ -115,8 +163,41 @@ export function isParseFixedError(error: unknown): error is ParseFixedError { ) } +const IRON_DECIMAL_PLACES = 8 +const IRON_SYMBOL = '$IRON' export const ORE_TO_IRON = 100000000 export const MINIMUM_ORE_AMOUNT = 0n export const MAXIMUM_ORE_AMOUNT = 2n ** 64n export const MINIMUM_IRON_AMOUNT = CurrencyUtils.renderIron(MINIMUM_ORE_AMOUNT) export const MAXIMUM_IRON_AMOUNT = CurrencyUtils.renderIron(MAXIMUM_ORE_AMOUNT) + +function assetMetadataWithDefaults( + assetId?: string, + verifiedAssetMetadata?: { + decimals?: number + symbol?: string + }, +): { + decimals: number + symbol: string +} { + let decimals: number + let symbol: string + // If an asset ID was provided, check if it is the native asset. Otherwise, + // we can only assume that the amount is in the native asset + const isNativeAsset = !assetId || isNativeIdentifier(assetId) + if (isNativeAsset) { + // Hard-code the amount of decimals in the native asset + decimals = IRON_DECIMAL_PLACES + symbol = IRON_SYMBOL + } else { + // Default to displaying 0 decimal places for custom assets + decimals = verifiedAssetMetadata?.decimals || 0 + symbol = verifiedAssetMetadata?.symbol || assetId + } + + return { + decimals, + symbol, + } +} diff --git a/ironfish/src/utils/fixedNumber.ts b/ironfish/src/utils/fixedNumber.ts index 601de58905..0f19252866 100644 --- a/ironfish/src/utils/fixedNumber.ts +++ b/ironfish/src/utils/fixedNumber.ts @@ -30,4 +30,29 @@ export class FixedNumberUtils { return value } + + static trimFromEnd(input: string, c: string): string { + return input.replace(new RegExp(`${c}+$`), '') + } + + static trimFromStart(input: string, c: string): string { + return input.replace(new RegExp(`^${c}+`), '') + } + + static tryDecodeDecimal(input: string): { value: bigint; decimals: number } { + const split = input.split('.') + + if (split.length > 2) { + throw new Error('Invalid number of decimals') + } else if (split.length === 1) { + return { value: BigInt(split[0]), decimals: 0 } + } else { + const whole = this.trimFromStart(split[0], '0') + const fraction = this.trimFromEnd(split[1], '0') + + const decimals = fraction.length + const value = BigInt(whole + fraction) + return { value, decimals } + } + } } diff --git a/ironfish/src/utils/index.ts b/ironfish/src/utils/index.ts index 6bafec2a2d..351711ae57 100644 --- a/ironfish/src/utils/index.ts +++ b/ironfish/src/utils/index.ts @@ -15,6 +15,7 @@ export * from './currency' export * from './enums' export * from './error' export * from './file' +export * from './fixedNumber' export * from './graffiti' export * from './hash' export * from './json' diff --git a/ironfish/src/wallet/errors.ts b/ironfish/src/wallet/errors.ts index 3fe3243ebe..344c0b2690 100644 --- a/ironfish/src/wallet/errors.ts +++ b/ironfish/src/wallet/errors.ts @@ -7,16 +7,19 @@ import { CurrencyUtils } from '../utils' export class NotEnoughFundsError extends Error { name = this.constructor.name + assetId: string + amount: bigint + amountNeeded: bigint constructor(assetId: Buffer, amount: bigint, amountNeeded: bigint) { super() - this.message = `Insufficient funds: Needed ${CurrencyUtils.renderIron( - amountNeeded, - true, - assetId.toString('hex'), - )} but have ${CurrencyUtils.renderIron( - amount, - )} available to spend. Please fund your account and/or wait for any pending transactions to be confirmed.'` + this.assetId = assetId.toString('hex') + this.amount = amount + this.amountNeeded = amountNeeded + + const renderedAmountNeeded = CurrencyUtils.render(amountNeeded, true, this.assetId) + const renderedAmount = CurrencyUtils.render(amount) + this.message = `Insufficient funds: Needed ${renderedAmountNeeded} but have ${renderedAmount} available to spend. Please fund your account and/or wait for any pending transactions to be confirmed.'` } } diff --git a/ironfish/src/wallet/wallet.ts b/ironfish/src/wallet/wallet.ts index 3bf737224e..9fb9a1e2cb 100644 --- a/ironfish/src/wallet/wallet.ts +++ b/ironfish/src/wallet/wallet.ts @@ -1620,6 +1620,7 @@ export class Wallet { }) this.accounts.set(account.id, account) + this.logger.debug(`Account ${account.id} imported successfully`) this.onAccountImported.emit(account) return account @@ -1646,6 +1647,7 @@ export class Wallet { id: uuid(), walletDb: this.walletDb, }) + this.logger.debug(`Resetting account name: ${account.name}, id: ${account.id}`) await this.walletDb.db.withTransaction(options?.tx, async (tx) => { await this.walletDb.setAccount(newAccount, tx) @@ -1672,6 +1674,7 @@ export class Wallet { } async removeAccount(account: Account, tx?: IDatabaseTransaction): Promise { + this.accounts.delete(account.id) await this.walletDb.db.withTransaction(tx, async (tx) => { if (account.id === this.defaultAccount) { await this.walletDb.setDefaultAccount(null, tx) @@ -1682,7 +1685,7 @@ export class Wallet { await this.walletDb.removeHead(account, tx) }) - this.accounts.delete(account.id) + this.logger.debug(`Removed account name: ${account.name}, id: ${account.id}`) this.onAccountRemoved.emit(account) } diff --git a/ironfish/src/wallet/walletdb/walletdb.ts b/ironfish/src/wallet/walletdb/walletdb.ts index 437c162f7b..ec90c3d1c6 100644 --- a/ironfish/src/wallet/walletdb/walletdb.ts +++ b/ironfish/src/wallet/walletdb/walletdb.ts @@ -3,7 +3,6 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ import { Asset } from '@ironfish/rust-nodejs' -import { BufferMap } from 'buffer-map' import { Assert } from '../../assert' import { FileSystem } from '../../fileSystems' import { GENESIS_BLOCK_PREVIOUS } from '../../primitives/block' @@ -784,24 +783,6 @@ export class WalletDB { await this.nullifierToNoteHash.del([account.prefix, nullifier], tx) } - async clearNullifierToNoteHash(account: Account, tx?: IDatabaseTransaction): Promise { - await this.nullifierToNoteHash.clear(tx, account.prefixRange) - } - - async replaceNullifierToNoteHash( - account: Account, - map: BufferMap, - tx?: IDatabaseTransaction, - ): Promise { - await this.db.withTransaction(tx, async (tx) => { - await this.clearNullifierToNoteHash(account, tx) - - for (const [key, value] of map) { - await this.nullifierToNoteHash.put([account.prefix, key], value, tx) - } - }) - } - async saveDecryptedNote( account: Account, noteHash: Buffer, diff --git a/supply-chain/audits.toml b/supply-chain/audits.toml new file mode 100644 index 0000000000..469bb3fb26 --- /dev/null +++ b/supply-chain/audits.toml @@ -0,0 +1,89 @@ + +# cargo-vet audits file + +[[audits.arrayvec]] +who = "Andrea " +criteria = "safe-to-deploy" +delta = "0.7.2 -> 0.7.4" + +[[audits.bellman]] +who = "Andrea " +criteria = "safe-to-deploy" +delta = "0.13.1 -> 0.13.1@git:1cc52ca33e6db14233f1cbc0c9c5b7c822b229ec" +notes = "Fork of the official bellperson owned by Iron Fish" + +[[audits.bellperson]] +who = "Andrea " +criteria = "safe-to-deploy" +delta = "0.24.1 -> 0.24.1@git:37b9976bcd96986cbdc71ae09fc455015e3dfac0" +notes = "Fork of the official bellperson owned by Iron Fish" + +[[audits.crypto_box]] +who = "Andrea " +criteria = "safe-to-deploy" +version = "0.9.1" + +[[audits.equihash]] +who = "Andrea " +criteria = "safe-to-deploy" +delta = "0.2.0 -> 0.2.0@git:d551820030cb596eafe82226667f32b47164f91b" +notes = "Fork of the official equihash owned by Iron Fish" + +[[audits.f4jumble]] +who = "Andrea " +criteria = "safe-to-deploy" +delta = "0.1.0 -> 0.1.0@git:d551820030cb596eafe82226667f32b47164f91b" +notes = "Fork of the official f4jumble owned by Iron Fish" + +[[audits.frost-core]] +who = "Andrea " +criteria = "safe-to-deploy" +version = "1.0.0" + +[[audits.jubjub]] +who = "Andrea " +criteria = "safe-to-deploy" +delta = "0.9.0 -> 0.9.0@git:a1a0c2ed69eec4d5d5e87842e2a40849f7fa4633" +notes = "Fork of the official jubjub owned by Iron Fish" + +[[audits.reddsa]] +who = "Andrea " +criteria = "safe-to-deploy" +delta = "0.5.1 -> 0.5.1@git:311baf8865f6e21527d1f20750d8f2cf5c9e531a" +importable = false +notes = "Unreleased changes required by ironfish-frost to support multisig wallets" + +[[audits.siphasher]] +who = "Andrea " +criteria = "safe-to-deploy" +version = "1.0.0" + +[[audits.zcash_address]] +who = "Andrea " +criteria = "safe-to-deploy" +delta = "0.1.0 -> 0.1.0@git:d551820030cb596eafe82226667f32b47164f91b" +notes = "Fork of the official zcash_address owned by Iron Fish" + +[[audits.zcash_encoding]] +who = "Andrea " +criteria = "safe-to-deploy" +delta = "0.1.0 -> 0.1.0@git:d551820030cb596eafe82226667f32b47164f91b" +notes = "Fork of the official zcash_encoding owned by Iron Fish" + +[[audits.zcash_note_encryption]] +who = "Andrea " +criteria = "safe-to-deploy" +delta = "0.1.0 -> 0.1.0@git:d551820030cb596eafe82226667f32b47164f91b" +notes = "Fork of the official zcash_note_encryption owned by Iron Fish" + +[[audits.zcash_primitives]] +who = "Andrea " +criteria = "safe-to-deploy" +delta = "0.7.0 -> 0.7.0@git:d551820030cb596eafe82226667f32b47164f91b" +notes = "Fork of the official zcash_primitives owned by Iron Fish" + +[[audits.zcash_proofs]] +who = "Andrea " +criteria = "safe-to-deploy" +delta = "0.7.1 -> 0.7.1@git:d551820030cb596eafe82226667f32b47164f91b" +notes = "Fork of the official zcash_proofs owned by Iron Fish" diff --git a/supply-chain/config.toml b/supply-chain/config.toml new file mode 100644 index 0000000000..24fb678aa7 --- /dev/null +++ b/supply-chain/config.toml @@ -0,0 +1,990 @@ + +# cargo-vet config file + +[cargo-vet] +version = "0.9" + +[imports.bytecode-alliance] +url = "https://raw.githubusercontent.com/bytecodealliance/wasmtime/main/supply-chain/audits.toml" + +[imports.embark-studios] +url = "https://raw.githubusercontent.com/EmbarkStudios/rust-ecosystem/main/audits.toml" + +[imports.google] +url = "https://raw.githubusercontent.com/google/supply-chain/main/audits.toml" + +[imports.isrg] +url = "https://raw.githubusercontent.com/divviup/libprio-rs/main/supply-chain/audits.toml" + +[imports.mozilla] +url = "https://raw.githubusercontent.com/mozilla/supply-chain/main/audits.toml" + +[imports.zcash] +url = "https://raw.githubusercontent.com/zcash/rust-ecosystem/main/supply-chain/audits.toml" + +[policy.bellman] +audit-as-crates-io = true + +[policy.bellperson] +audit-as-crates-io = true + +[policy.equihash] +audit-as-crates-io = true + +[policy.f4jumble] +audit-as-crates-io = true + +[policy.ironfish] +audit-as-crates-io = true + +[policy.ironfish_zkp] +audit-as-crates-io = true + +[policy."jubjub:0.9.0@git:a1a0c2ed69eec4d5d5e87842e2a40849f7fa4633"] +audit-as-crates-io = true + +[policy."reddsa:0.5.1@git:311baf8865f6e21527d1f20750d8f2cf5c9e531a"] +audit-as-crates-io = true + +[policy.zcash_address] +audit-as-crates-io = true + +[policy.zcash_encoding] +audit-as-crates-io = true + +[policy."zcash_note_encryption:0.1.0@git:d551820030cb596eafe82226667f32b47164f91b"] +audit-as-crates-io = true + +[policy.zcash_primitives] +audit-as-crates-io = true + +[policy.zcash_proofs] +audit-as-crates-io = true + +[[exemptions.aead]] +version = "0.4.3" +criteria = "safe-to-deploy" + +[[exemptions.aes]] +version = "0.7.5" +criteria = "safe-to-deploy" + +[[exemptions.aho-corasick]] +version = "0.7.20" +criteria = "safe-to-deploy" + +[[exemptions.atomic-polyfill]] +version = "0.1.11" +criteria = "safe-to-deploy" + +[[exemptions.base16ct]] +version = "0.2.0" +criteria = "safe-to-deploy" + +[[exemptions.base64ct]] +version = "1.0.1" +criteria = "safe-to-deploy" + +[[exemptions.bech32]] +version = "0.8.1" +criteria = "safe-to-deploy" + +[[exemptions.bellman]] +version = "0.13.1" +criteria = "safe-to-deploy" + +[[exemptions.bellperson]] +version = "0.24.1" +criteria = "safe-to-deploy" + +[[exemptions.bincode]] +version = "1.3.3" +criteria = "safe-to-deploy" + +[[exemptions.bip0039]] +version = "0.9.0" +criteria = "safe-to-deploy" + +[[exemptions.bitflags]] +version = "1.3.2" +criteria = "safe-to-deploy" + +[[exemptions.bitvec]] +version = "1.0.1" +criteria = "safe-to-deploy" + +[[exemptions.blake2]] +version = "0.10.6" +criteria = "safe-to-deploy" + +[[exemptions.blake2b_simd]] +version = "1.0.0" +criteria = "safe-to-deploy" + +[[exemptions.blake2s_simd]] +version = "1.0.0" +criteria = "safe-to-deploy" + +[[exemptions.blake3]] +version = "1.5.0" +criteria = "safe-to-deploy" + +[[exemptions.block-modes]] +version = "0.8.1" +criteria = "safe-to-deploy" + +[[exemptions.block-padding]] +version = "0.2.1" +criteria = "safe-to-deploy" + +[[exemptions.bls12_381]] +version = "0.7.1" +criteria = "safe-to-deploy" + +[[exemptions.blst]] +version = "0.3.10" +criteria = "safe-to-deploy" + +[[exemptions.blstrs]] +version = "0.6.1" +criteria = "safe-to-deploy" + +[[exemptions.bs58]] +version = "0.4.0" +criteria = "safe-to-deploy" + +[[exemptions.byte-slice-cast]] +version = "1.2.2" +criteria = "safe-to-deploy" + +[[exemptions.byteorder]] +version = "1.5.0" +criteria = "safe-to-deploy" + +[[exemptions.bytes]] +version = "1.4.0" +criteria = "safe-to-deploy" + +[[exemptions.cast]] +version = "0.3.0" +criteria = "safe-to-deploy" + +[[exemptions.chacha20]] +version = "0.8.2" +criteria = "safe-to-deploy" + +[[exemptions.chacha20]] +version = "0.9.1" +criteria = "safe-to-deploy" + +[[exemptions.chacha20poly1305]] +version = "0.9.1" +criteria = "safe-to-deploy" + +[[exemptions.cipher]] +version = "0.3.0" +criteria = "safe-to-deploy" + +[[exemptions.clap]] +version = "3.2.25" +criteria = "safe-to-deploy" + +[[exemptions.clap_lex]] +version = "0.2.4" +criteria = "safe-to-deploy" + +[[exemptions.cobs]] +version = "0.2.3" +criteria = "safe-to-deploy" + +[[exemptions.const-crc32]] +version = "1.2.0" +criteria = "safe-to-deploy" + +[[exemptions.const-oid]] +version = "0.9.2" +criteria = "safe-to-deploy" + +[[exemptions.constant_time_eq]] +version = "0.1.5" +criteria = "safe-to-deploy" + +[[exemptions.convert_case]] +version = "0.6.0" +criteria = "safe-to-deploy" + +[[exemptions.cpufeatures]] +version = "0.2.6" +criteria = "safe-to-deploy" + +[[exemptions.criterion]] +version = "0.4.0" +criteria = "safe-to-deploy" + +[[exemptions.criterion-plot]] +version = "0.5.0" +criteria = "safe-to-deploy" + +[[exemptions.critical-section]] +version = "1.1.0" +criteria = "safe-to-deploy" + +[[exemptions.crossbeam-channel]] +version = "0.5.8" +criteria = "safe-to-deploy" + +[[exemptions.crossbeam-deque]] +version = "0.8.2" +criteria = "safe-to-deploy" + +[[exemptions.crossbeam-epoch]] +version = "0.9.13" +criteria = "safe-to-deploy" + +[[exemptions.crossbeam-utils]] +version = "0.8.14" +criteria = "safe-to-deploy" + +[[exemptions.crypto-mac]] +version = "0.11.1" +criteria = "safe-to-deploy" + +[[exemptions.crypto_secretbox]] +version = "0.1.1" +criteria = "safe-to-deploy" + +[[exemptions.ctor]] +version = "0.2.2" +criteria = "safe-to-deploy" + +[[exemptions.curve25519-dalek]] +version = "4.0.0" +criteria = "safe-to-deploy" + +[[exemptions.curve25519-dalek-derive]] +version = "0.1.0" +criteria = "safe-to-deploy" + +[[exemptions.debugless-unwrap]] +version = "0.0.4" +criteria = "safe-to-deploy" + +[[exemptions.der]] +version = "0.7.1" +criteria = "safe-to-deploy" + +[[exemptions.derive-getters]] +version = "0.3.0" +criteria = "safe-to-deploy" + +[[exemptions.digest]] +version = "0.9.0" +criteria = "safe-to-deploy" + +[[exemptions.directories]] +version = "4.0.1" +criteria = "safe-to-deploy" + +[[exemptions.dirs-sys]] +version = "0.3.7" +criteria = "safe-to-deploy" + +[[exemptions.ec-gpu]] +version = "0.2.0" +criteria = "safe-to-deploy" + +[[exemptions.ec-gpu-gen]] +version = "0.5.2" +criteria = "safe-to-deploy" + +[[exemptions.ed25519]] +version = "2.2.0" +criteria = "safe-to-deploy" + +[[exemptions.ed25519-dalek]] +version = "2.1.0" +criteria = "safe-to-deploy" + +[[exemptions.equihash]] +version = "0.2.0" +criteria = "safe-to-deploy" + +[[exemptions.execute]] +version = "0.2.12" +criteria = "safe-to-deploy" + +[[exemptions.execute-command-macro]] +version = "0.1.8" +criteria = "safe-to-deploy" + +[[exemptions.execute-command-macro-impl]] +version = "0.1.9" +criteria = "safe-to-deploy" + +[[exemptions.execute-command-tokens]] +version = "0.1.6" +criteria = "safe-to-deploy" + +[[exemptions.f4jumble]] +version = "0.1.0" +criteria = "safe-to-deploy" + +[[exemptions.ff]] +version = "0.12.1" +criteria = "safe-to-deploy" + +[[exemptions.fish_hash]] +version = "0.3.0" +criteria = "safe-to-deploy" + +[[exemptions.flume]] +version = "0.10.14" +criteria = "safe-to-deploy" + +[[exemptions.fpe]] +version = "0.5.1" +criteria = "safe-to-deploy" + +[[exemptions.frost-rerandomized]] +version = "1.0.0" +criteria = "safe-to-deploy" + +[[exemptions.funty]] +version = "2.0.0" +criteria = "safe-to-deploy" + +[[exemptions.futures-task]] +version = "0.3.28" +criteria = "safe-to-deploy" + +[[exemptions.futures-util]] +version = "0.3.28" +criteria = "safe-to-deploy" + +[[exemptions.generic-array]] +version = "0.14.7" +criteria = "safe-to-deploy" + +[[exemptions.getrandom]] +version = "0.2.8" +criteria = "safe-to-deploy" + +[[exemptions.group]] +version = "0.12.1" +criteria = "safe-to-deploy" + +[[exemptions.h2]] +version = "0.3.19" +criteria = "safe-to-deploy" + +[[exemptions.halo2_gadgets]] +version = "0.2.0" +criteria = "safe-to-deploy" + +[[exemptions.halo2_proofs]] +version = "0.2.0" +criteria = "safe-to-deploy" + +[[exemptions.hash32]] +version = "0.2.1" +criteria = "safe-to-deploy" + +[[exemptions.heapless]] +version = "0.7.0" +criteria = "safe-to-deploy" + +[[exemptions.hermit-abi]] +version = "0.1.19" +criteria = "safe-to-deploy" + +[[exemptions.hex-literal]] +version = "0.1.4" +criteria = "safe-to-deploy" + +[[exemptions.hex-literal-impl]] +version = "0.1.2" +criteria = "safe-to-deploy" + +[[exemptions.hmac]] +version = "0.11.0" +criteria = "safe-to-deploy" + +[[exemptions.http]] +version = "0.2.9" +criteria = "safe-to-deploy" + +[[exemptions.http-body]] +version = "0.4.5" +criteria = "safe-to-deploy" + +[[exemptions.httparse]] +version = "1.8.0" +criteria = "safe-to-deploy" + +[[exemptions.hyper]] +version = "0.14.26" +criteria = "safe-to-deploy" + +[[exemptions.hyper-tls]] +version = "0.5.0" +criteria = "safe-to-deploy" + +[[exemptions.incrementalmerkletree]] +version = "0.3.0" +criteria = "safe-to-deploy" + +[[exemptions.indexmap]] +version = "1.9.3" +criteria = "safe-to-deploy" + +[[exemptions.ipnet]] +version = "2.7.2" +criteria = "safe-to-deploy" + +[[exemptions.ironfish]] +version = "0.3.0" +criteria = "safe-to-deploy" + +[[exemptions.ironfish_zkp]] +version = "0.2.0" +criteria = "safe-to-deploy" + +[[exemptions.itertools]] +version = "0.10.5" +criteria = "safe-to-deploy" + +[[exemptions.itertools]] +version = "0.12.0" +criteria = "safe-to-deploy" + +[[exemptions.itoa]] +version = "1.0.6" +criteria = "safe-to-deploy" + +[[exemptions.js-sys]] +version = "0.3.61" +criteria = "safe-to-deploy" + +[[exemptions.jubjub]] +version = "0.9.0" +criteria = "safe-to-deploy" + +[[exemptions.libc]] +version = "0.2.150" +criteria = "safe-to-deploy" + +[[exemptions.libloading]] +version = "0.7.4" +criteria = "safe-to-deploy" + +[[exemptions.linux-raw-sys]] +version = "0.4.10" +criteria = "safe-to-deploy" + +[[exemptions.litrs]] +version = "0.2.3" +criteria = "safe-to-deploy" + +[[exemptions.lock_api]] +version = "0.4.10" +criteria = "safe-to-deploy" + +[[exemptions.memchr]] +version = "2.5.0" +criteria = "safe-to-deploy" + +[[exemptions.memmap2]] +version = "0.5.10" +criteria = "safe-to-deploy" + +[[exemptions.memoffset]] +version = "0.7.1" +criteria = "safe-to-deploy" + +[[exemptions.memuse]] +version = "0.2.1" +criteria = "safe-to-deploy" + +[[exemptions.mime]] +version = "0.3.17" +criteria = "safe-to-deploy" + +[[exemptions.mio]] +version = "0.8.8" +criteria = "safe-to-deploy" + +[[exemptions.napi]] +version = "2.13.2" +criteria = "safe-to-deploy" + +[[exemptions.napi-build]] +version = "2.0.1" +criteria = "safe-to-deploy" + +[[exemptions.napi-derive]] +version = "2.13.0" +criteria = "safe-to-deploy" + +[[exemptions.napi-derive-backend]] +version = "1.0.52" +criteria = "safe-to-deploy" + +[[exemptions.napi-sys]] +version = "2.2.3" +criteria = "safe-to-deploy" + +[[exemptions.nonempty]] +version = "0.7.0" +criteria = "safe-to-deploy" + +[[exemptions.num_cpus]] +version = "1.15.0" +criteria = "safe-to-deploy" + +[[exemptions.once_cell]] +version = "1.17.0" +criteria = "safe-to-deploy" + +[[exemptions.oorandom]] +version = "11.1.3" +criteria = "safe-to-deploy" + +[[exemptions.openssl]] +version = "0.10.59" +criteria = "safe-to-deploy" + +[[exemptions.openssl-sys]] +version = "0.9.95" +criteria = "safe-to-deploy" + +[[exemptions.orchard]] +version = "0.2.0" +criteria = "safe-to-deploy" + +[[exemptions.os_str_bytes]] +version = "6.6.1" +criteria = "safe-to-deploy" + +[[exemptions.pairing]] +version = "0.22.0" +criteria = "safe-to-deploy" + +[[exemptions.password-hash]] +version = "0.3.2" +criteria = "safe-to-deploy" + +[[exemptions.pasta_curves]] +version = "0.4.1" +criteria = "safe-to-deploy" + +[[exemptions.pasta_curves]] +version = "0.5.0" +criteria = "safe-to-deploy" + +[[exemptions.pbkdf2]] +version = "0.9.0" +criteria = "safe-to-deploy" + +[[exemptions.pkcs8]] +version = "0.10.1" +criteria = "safe-to-deploy" + +[[exemptions.pkg-config]] +version = "0.3.27" +criteria = "safe-to-deploy" + +[[exemptions.plotters]] +version = "0.3.4" +criteria = "safe-to-deploy" + +[[exemptions.plotters-backend]] +version = "0.3.4" +criteria = "safe-to-deploy" + +[[exemptions.plotters-svg]] +version = "0.3.3" +criteria = "safe-to-deploy" + +[[exemptions.poly1305]] +version = "0.7.2" +criteria = "safe-to-deploy" + +[[exemptions.postcard]] +version = "1.0.1" +criteria = "safe-to-deploy" + +[[exemptions.ppv-lite86]] +version = "0.2.17" +criteria = "safe-to-deploy" + +[[exemptions.proc-macro-hack]] +version = "0.4.3" +criteria = "safe-to-deploy" + +[[exemptions.proc-macro-hack-impl]] +version = "0.4.3" +criteria = "safe-to-deploy" + +[[exemptions.radium]] +version = "0.7.0" +criteria = "safe-to-deploy" + +[[exemptions.rand]] +version = "0.8.5" +criteria = "safe-to-deploy" + +[[exemptions.rand_seeder]] +version = "0.2.3" +criteria = "safe-to-deploy" + +[[exemptions.reddsa]] +version = "0.3.0" +criteria = "safe-to-deploy" + +[[exemptions.redjubjub]] +version = "0.5.0" +criteria = "safe-to-deploy" + +[[exemptions.redox_syscall]] +version = "0.2.16" +criteria = "safe-to-deploy" + +[[exemptions.redox_users]] +version = "0.4.3" +criteria = "safe-to-deploy" + +[[exemptions.regex]] +version = "1.7.1" +criteria = "safe-to-deploy" + +[[exemptions.regex-syntax]] +version = "0.6.28" +criteria = "safe-to-deploy" + +[[exemptions.reqwest]] +version = "0.11.18" +criteria = "safe-to-deploy" + +[[exemptions.rustix]] +version = "0.38.8" +criteria = "safe-to-deploy" + +[[exemptions.rustversion]] +version = "1.0.12" +criteria = "safe-to-deploy" + +[[exemptions.ryu]] +version = "1.0.13" +criteria = "safe-to-deploy" + +[[exemptions.salsa20]] +version = "0.10.2" +criteria = "safe-to-deploy" + +[[exemptions.same-file]] +version = "1.0.6" +criteria = "safe-to-deploy" + +[[exemptions.schannel]] +version = "0.1.21" +criteria = "safe-to-deploy" + +[[exemptions.scopeguard]] +version = "1.1.0" +criteria = "safe-to-deploy" + +[[exemptions.security-framework]] +version = "2.9.1" +criteria = "safe-to-deploy" + +[[exemptions.security-framework-sys]] +version = "2.9.0" +criteria = "safe-to-deploy" + +[[exemptions.serde]] +version = "1.0.160" +criteria = "safe-to-deploy" + +[[exemptions.serde_derive]] +version = "1.0.160" +criteria = "safe-to-deploy" + +[[exemptions.serde_json]] +version = "1.0.96" +criteria = "safe-to-deploy" + +[[exemptions.serde_urlencoded]] +version = "0.7.1" +criteria = "safe-to-deploy" + +[[exemptions.serdect]] +version = "0.2.0" +criteria = "safe-to-deploy" + +[[exemptions.sha2]] +version = "0.9.9" +criteria = "safe-to-deploy" + +[[exemptions.signature]] +version = "2.0.0" +criteria = "safe-to-deploy" + +[[exemptions.socket2]] +version = "0.4.9" +criteria = "safe-to-deploy" + +[[exemptions.spin]] +version = "0.9.8" +criteria = "safe-to-deploy" + +[[exemptions.spki]] +version = "0.7.0" +criteria = "safe-to-deploy" + +[[exemptions.stable_deref_trait]] +version = "1.0.0" +criteria = "safe-to-deploy" + +[[exemptions.subtle]] +version = "2.4.1" +criteria = "safe-to-deploy" + +[[exemptions.syn]] +version = "1.0.107" +criteria = "safe-to-deploy" + +[[exemptions.syn]] +version = "2.0.18" +criteria = "safe-to-deploy" + +[[exemptions.tempfile]] +version = "3.8.0" +criteria = "safe-to-deploy" + +[[exemptions.thiserror]] +version = "1.0.38" +criteria = "safe-to-deploy" + +[[exemptions.thiserror-impl]] +version = "1.0.38" +criteria = "safe-to-deploy" + +[[exemptions.threadpool]] +version = "1.8.1" +criteria = "safe-to-deploy" + +[[exemptions.tiny-bip39]] +version = "1.0.0" +criteria = "safe-to-deploy" + +[[exemptions.tiny-keccak]] +version = "2.0.2" +criteria = "safe-to-deploy" + +[[exemptions.tinytemplate]] +version = "1.2.1" +criteria = "safe-to-deploy" + +[[exemptions.tokio]] +version = "1.28.2" +criteria = "safe-to-deploy" + +[[exemptions.tokio-util]] +version = "0.7.8" +criteria = "safe-to-deploy" + +[[exemptions.tower-service]] +version = "0.3.2" +criteria = "safe-to-deploy" + +[[exemptions.tracing]] +version = "0.1.37" +criteria = "safe-to-deploy" + +[[exemptions.tracing-attributes]] +version = "0.1.23" +criteria = "safe-to-deploy" + +[[exemptions.tracing-core]] +version = "0.1.30" +criteria = "safe-to-deploy" + +[[exemptions.typenum]] +version = "1.16.0" +criteria = "safe-to-deploy" + +[[exemptions.uint]] +version = "0.9.5" +criteria = "safe-to-deploy" + +[[exemptions.visibility]] +version = "0.1.0" +criteria = "safe-to-deploy" + +[[exemptions.walkdir]] +version = "2.3.3" +criteria = "safe-to-deploy" + +[[exemptions.wasi]] +version = "0.11.0+wasi-snapshot-preview1" +criteria = "safe-to-deploy" + +[[exemptions.wasm-bindgen]] +version = "0.2.84" +criteria = "safe-to-deploy" + +[[exemptions.wasm-bindgen-backend]] +version = "0.2.84" +criteria = "safe-to-deploy" + +[[exemptions.wasm-bindgen-futures]] +version = "0.4.34" +criteria = "safe-to-deploy" + +[[exemptions.wasm-bindgen-macro]] +version = "0.2.84" +criteria = "safe-to-deploy" + +[[exemptions.wasm-bindgen-macro-support]] +version = "0.2.84" +criteria = "safe-to-deploy" + +[[exemptions.web-sys]] +version = "0.3.61" +criteria = "safe-to-deploy" + +[[exemptions.which]] +version = "4.4.0" +criteria = "safe-to-deploy" + +[[exemptions.winapi]] +version = "0.3.9" +criteria = "safe-to-deploy" + +[[exemptions.winapi-i686-pc-windows-gnu]] +version = "0.4.0" +criteria = "safe-to-deploy" + +[[exemptions.winapi-util]] +version = "0.1.5" +criteria = "safe-to-deploy" + +[[exemptions.winapi-x86_64-pc-windows-gnu]] +version = "0.4.0" +criteria = "safe-to-deploy" + +[[exemptions.windows-sys]] +version = "0.42.0" +criteria = "safe-to-deploy" + +[[exemptions.windows-sys]] +version = "0.48.0" +criteria = "safe-to-deploy" + +[[exemptions.windows-targets]] +version = "0.48.0" +criteria = "safe-to-deploy" + +[[exemptions.windows_aarch64_gnullvm]] +version = "0.42.2" +criteria = "safe-to-deploy" + +[[exemptions.windows_aarch64_gnullvm]] +version = "0.48.0" +criteria = "safe-to-deploy" + +[[exemptions.windows_aarch64_msvc]] +version = "0.42.2" +criteria = "safe-to-deploy" + +[[exemptions.windows_aarch64_msvc]] +version = "0.48.0" +criteria = "safe-to-deploy" + +[[exemptions.windows_i686_gnu]] +version = "0.42.2" +criteria = "safe-to-deploy" + +[[exemptions.windows_i686_gnu]] +version = "0.48.0" +criteria = "safe-to-deploy" + +[[exemptions.windows_i686_msvc]] +version = "0.42.2" +criteria = "safe-to-deploy" + +[[exemptions.windows_i686_msvc]] +version = "0.48.0" +criteria = "safe-to-deploy" + +[[exemptions.windows_x86_64_gnu]] +version = "0.42.2" +criteria = "safe-to-deploy" + +[[exemptions.windows_x86_64_gnu]] +version = "0.48.0" +criteria = "safe-to-deploy" + +[[exemptions.windows_x86_64_gnullvm]] +version = "0.42.2" +criteria = "safe-to-deploy" + +[[exemptions.windows_x86_64_gnullvm]] +version = "0.48.0" +criteria = "safe-to-deploy" + +[[exemptions.windows_x86_64_msvc]] +version = "0.42.2" +criteria = "safe-to-deploy" + +[[exemptions.windows_x86_64_msvc]] +version = "0.48.0" +criteria = "safe-to-deploy" + +[[exemptions.winreg]] +version = "0.10.1" +criteria = "safe-to-deploy" + +[[exemptions.wyz]] +version = "0.5.1" +criteria = "safe-to-deploy" + +[[exemptions.x25519-dalek]] +version = "2.0.0" +criteria = "safe-to-deploy" + +[[exemptions.xxhash-rust]] +version = "0.8.6" +criteria = "safe-to-deploy" + +[[exemptions.yastl]] +version = "0.1.2" +criteria = "safe-to-deploy" + +[[exemptions.zcash_address]] +version = "0.1.0" +criteria = "safe-to-deploy" + +[[exemptions.zcash_encoding]] +version = "0.1.0" +criteria = "safe-to-deploy" + +[[exemptions.zcash_note_encryption]] +version = "0.1.0" +criteria = "safe-to-deploy" + +[[exemptions.zcash_primitives]] +version = "0.7.0" +criteria = "safe-to-deploy" + +[[exemptions.zcash_proofs]] +version = "0.7.1" +criteria = "safe-to-deploy" + +[[exemptions.zeroize]] +version = "1.6.0" +criteria = "safe-to-deploy" + +[[exemptions.zeroize_derive]] +version = "1.3.3" +criteria = "safe-to-deploy" diff --git a/supply-chain/imports.lock b/supply-chain/imports.lock new file mode 100644 index 0000000000..f587186fd7 --- /dev/null +++ b/supply-chain/imports.lock @@ -0,0 +1,1164 @@ + +# cargo-vet imports lock + +[[publisher.core-foundation]] +version = "0.9.3" +when = "2022-02-07" +user-id = 5946 +user-login = "jrmuizel" +user-name = "Jeff Muizelaar" + +[[publisher.core-foundation-sys]] +version = "0.8.4" +when = "2023-04-03" +user-id = 5946 +user-login = "jrmuizel" +user-name = "Jeff Muizelaar" + +[[publisher.encoding_rs]] +version = "0.8.32" +when = "2023-02-01" +user-id = 4484 +user-login = "hsivonen" +user-name = "Henri Sivonen" + +[[publisher.unicode-normalization]] +version = "0.1.22" +when = "2022-09-16" +user-id = 1139 +user-login = "Manishearth" +user-name = "Manish Goregaokar" + +[[publisher.unicode-segmentation]] +version = "1.10.1" +when = "2023-01-31" +user-id = 1139 +user-login = "Manishearth" +user-name = "Manish Goregaokar" + +[[audits.bytecode-alliance.audits.anes]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.1.6" +notes = "Contains no unsafe code, no IO, no build.rs." + +[[audits.bytecode-alliance.audits.arrayref]] +who = "Nick Fitzgerald " +criteria = "safe-to-deploy" +version = "0.3.6" +notes = """ +Unsafe code, but its logic looks good to me. Necessary given what it is +doing. Well tested, has quickchecks. +""" + +[[audits.bytecode-alliance.audits.arrayvec]] +who = "Nick Fitzgerald " +criteria = "safe-to-deploy" +version = "0.7.2" +notes = """ +Well documented invariants, good assertions for those invariants in unsafe code, +and tested with MIRI to boot. LGTM. +""" + +[[audits.bytecode-alliance.audits.atty]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +version = "0.2.14" +notes = """ +Contains only unsafe code for what this crate's purpose is and only accesses +the environment's terminal information when asked. Does its stated purpose and +no more. +""" + +[[audits.bytecode-alliance.audits.base64]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.21.0" +notes = "This crate has no dependencies, no build.rs, and contains no unsafe code." + +[[audits.bytecode-alliance.audits.bitflags]] +who = "Jamey Sharp " +criteria = "safe-to-deploy" +delta = "2.1.0 -> 2.2.1" +notes = """ +This version adds unsafe impls of traits from the bytemuck crate when built +with that library enabled, but I believe the impls satisfy the documented +safety requirements for bytemuck. The other changes are minor. +""" + +[[audits.bytecode-alliance.audits.bitflags]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +delta = "2.3.2 -> 2.3.3" +notes = """ +Nothing outside the realm of what one would expect from a bitflags generator, +all as expected. +""" + +[[audits.bytecode-alliance.audits.block-buffer]] +who = "Benjamin Bouvier " +criteria = "safe-to-deploy" +delta = "0.9.0 -> 0.10.2" + +[[audits.bytecode-alliance.audits.bumpalo]] +who = "Nick Fitzgerald " +criteria = "safe-to-deploy" +version = "3.11.1" +notes = "I am the author of this crate." + +[[audits.bytecode-alliance.audits.cc]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +version = "1.0.73" +notes = "I am the author of this crate." + +[[audits.bytecode-alliance.audits.cfg-if]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +version = "1.0.0" +notes = "I am the author of this crate." + +[[audits.bytecode-alliance.audits.ciborium]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.2.0" + +[[audits.bytecode-alliance.audits.ciborium-io]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.2.0" + +[[audits.bytecode-alliance.audits.ciborium-ll]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.2.0" + +[[audits.bytecode-alliance.audits.constant_time_eq]] +who = "Nick Fitzgerald " +criteria = "safe-to-deploy" +version = "0.2.4" +notes = "A few tiny blocks of `unsafe` but each of them is very obviously correct." + +[[audits.bytecode-alliance.audits.crypto-common]] +who = "Benjamin Bouvier " +criteria = "safe-to-deploy" +version = "0.1.3" + +[[audits.bytecode-alliance.audits.digest]] +who = "Benjamin Bouvier " +criteria = "safe-to-deploy" +delta = "0.9.0 -> 0.10.3" + +[[audits.bytecode-alliance.audits.errno]] +who = "Dan Gohman " +criteria = "safe-to-deploy" +version = "0.3.0" +notes = "This crate uses libc and windows-sys APIs to get and set the raw OS error value." + +[[audits.bytecode-alliance.audits.errno]] +who = "Dan Gohman " +criteria = "safe-to-deploy" +delta = "0.3.0 -> 0.3.1" +notes = "Just a dependency version bump and a bug fix for redox" + +[[audits.bytecode-alliance.audits.errno-dragonfly]] +who = "Jamey Sharp " +criteria = "safe-to-deploy" +version = "0.1.2" +notes = "This should be portable to any POSIX system and seems like it should be part of the libc crate, but at any rate it's safe as is." + +[[audits.bytecode-alliance.audits.fastrand]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +delta = "2.0.0 -> 2.0.1" +notes = """ +This update had a few doc updates but no otherwise-substantial source code +updates. +""" + +[[audits.bytecode-alliance.audits.foreign-types]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.3.2" +notes = "This crate defined a macro-rules which creates wrappers working with FFI types. The implementation of this crate appears to be safe, but each use of this macro would need to be vetted for correctness as well." + +[[audits.bytecode-alliance.audits.foreign-types-shared]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.1.1" + +[[audits.bytecode-alliance.audits.futures-channel]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.3.27" +notes = "build.rs is just detecting the target and setting cfg. unsafety is for implementing a concurrency primitives using atomics and unsafecell, and is not obviously incorrect (this is the sort of thing I wouldn't certify as correct without formal methods)" + +[[audits.bytecode-alliance.audits.futures-core]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.3.27" +notes = "Unsafe used to implement a concurrency primitive AtomicWaker. Well-commented and not obviously incorrect. Like my other audits of these concurrency primitives inside the futures family, I couldn't certify that it is correct without formal methods, but that is out of scope for this vetting." + +[[audits.bytecode-alliance.audits.futures-io]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.3.27" + +[[audits.bytecode-alliance.audits.futures-sink]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.3.27" + +[[audits.bytecode-alliance.audits.httpdate]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "1.0.2" +notes = "No unsafety, no io" + +[[audits.bytecode-alliance.audits.idna]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +version = "0.3.0" +notes = """ +This is a crate without unsafe code or usage of the standard library. The large +size of this crate comes from the large generated unicode tables file. This +crate is broadly used throughout the ecosystem and does not contain anything +suspicious. +""" + +[[audits.bytecode-alliance.audits.native-tls]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.2.11" +notes = "build is only looking for environment variables to set cfg. only two minor uses of unsafe,on macos, with ffi bindings to digest primitives and libc atexit. otherwise, this is an abstraction over three very complex systems (schannel, security-framework, and openssl) which may end up having subtle differences, but none of those are apparent from the implementation of this crate" + +[[audits.bytecode-alliance.audits.openssl-macros]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.1.0" + +[[audits.bytecode-alliance.audits.openssl-probe]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.1.5" +notes = "IO is only checking for the existence of paths in the filesystem" + +[[audits.bytecode-alliance.audits.percent-encoding]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +version = "2.2.0" +notes = """ +This crate is a single-file crate that does what it says on the tin. There are +a few `unsafe` blocks related to utf-8 validation which are locally verifiable +as correct and otherwise this crate is good to go. +""" + +[[audits.bytecode-alliance.audits.pin-utils]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.1.0" + +[[audits.bytecode-alliance.audits.proc-macro2]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +delta = "1.0.51 -> 1.0.57" + +[[audits.bytecode-alliance.audits.quote]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +delta = "1.0.23 -> 1.0.27" + +[[audits.bytecode-alliance.audits.semver]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "1.0.17" +notes = "plenty of unsafe pointer and vec tricks, but in well-structured and commented code that appears to be correct" + +[[audits.bytecode-alliance.audits.slab]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.4.6" +notes = "provides a datastructure implemented using std's Vec. all uses of unsafe are just delegating to the underlying unsafe Vec methods." + +[[audits.bytecode-alliance.audits.static_assertions]] +who = "Andrew Brown " +criteria = "safe-to-deploy" +version = "1.1.0" +notes = "No dependencies and completely a compile-time crate as advertised. Uses `unsafe` in one module as a compile-time check only: `mem::transmute` and `ptr::write` are wrapped in an impossible-to-run closure." + +[[audits.bytecode-alliance.audits.tinyvec]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +version = "1.6.0" +notes = """ +This crate, while it implements collections, does so without `std::*` APIs and +without `unsafe`. Skimming the crate everything looks reasonable and what one +would expect from idiomatic safe collections in Rust. +""" + +[[audits.bytecode-alliance.audits.tinyvec_macros]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +version = "0.1.0" +notes = """ +This is a trivial crate which only contains a singular macro definition which is +intended to multiplex across the internal representation of a tinyvec, +presumably. This trivially doesn't contain anything bad. +""" + +[[audits.bytecode-alliance.audits.tokio-native-tls]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.3.1" +notes = "unsafety is used for smuggling std::task::Context as a raw pointer. Lifetime and type safety appears to be taken care of correctly." + +[[audits.bytecode-alliance.audits.try-lock]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.2.4" +notes = "Implements a concurrency primitive with atomics, and is not obviously incorrect" + +[[audits.bytecode-alliance.audits.unicode-bidi]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +version = "0.3.8" +notes = """ +This crate has no unsafe code and does not use `std::*`. Skimming the crate it +does not attempt to out of the bounds of what it's already supposed to be doing. +""" + +[[audits.bytecode-alliance.audits.vcpkg]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.2.15" +notes = "no build.rs, no macros, no unsafe. It reads the filesystem and makes copies of DLLs into OUT_DIR." + +[[audits.bytecode-alliance.audits.want]] +who = "Pat Hickey " +criteria = "safe-to-deploy" +version = "0.3.0" + +[[audits.embark-studios.audits.anyhow]] +who = "Johan Andersson " +criteria = "safe-to-deploy" +version = "1.0.58" + +[[audits.embark-studios.audits.idna]] +who = "Johan Andersson " +criteria = "safe-to-deploy" +delta = "0.3.0 -> 0.4.0" +notes = "No unsafe usage or ambient capabilities" + +[[audits.embark-studios.audits.tap]] +who = "Johan Andersson " +criteria = "safe-to-deploy" +version = "1.0.1" +notes = "No unsafe usage or ambient capabilities" + +[[audits.google.audits.autocfg]] +who = "Lukasz Anforowicz " +criteria = "safe-to-deploy" +version = "1.1.0" +notes = """ +Grepped for `-i cipher`, `-i crypto`, `'\bfs\b'``, `'\bnet\b'``, `'\bunsafe\b'`` +and there were no hits except for reasonable, client-controlled usage of +`std::fs` in `AutoCfg::with_dir`. + +This crate has been added to Chromium in +https://source.chromium.org/chromium/chromium/src/+/591a0f30c5eac93b6a3d981c2714ffa4db28dbcb +The CL description contains a link to a Google-internal document with audit details. +""" +aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT" + +[[audits.google.audits.base64]] +who = "Adam Langley " +criteria = "safe-to-deploy" +version = "0.13.1" +notes = "Skimmed the uses of `std` to ensure that nothing untoward is happening. Code uses `forbid(unsafe_code)` and, indeed, there are no uses of `unsafe`" +aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT" + +[[audits.google.audits.document-features]] +who = "George Burgess IV " +criteria = "safe-to-deploy" +version = "0.2.7" +aggregated-from = "https://chromium.googlesource.com/chromiumos/third_party/rust_crates/+/refs/heads/main/cargo-vet/audits.toml?format=TEXT" + +[[audits.google.audits.fastrand]] +who = "George Burgess IV " +criteria = "safe-to-deploy" +version = "1.9.0" +notes = """ +`does-not-implement-crypto` is certified because this crate explicitly says +that the RNG here is not cryptographically secure. +""" +aggregated-from = "https://chromium.googlesource.com/chromiumos/third_party/rust_crates/+/refs/heads/main/cargo-vet/audits.toml?format=TEXT" + +[[audits.google.audits.glob]] +who = "George Burgess IV " +criteria = "safe-to-deploy" +version = "0.3.1" +aggregated-from = "https://chromium.googlesource.com/chromiumos/third_party/rust_crates/+/refs/heads/main/cargo-vet/audits.toml?format=TEXT" + +[[audits.google.audits.hex-literal]] +who = "danakj@chromium.org" +criteria = "safe-to-run" +version = "0.4.1" +notes = """ +Reviewed in https://crrev.com/c/5171063 + +Previously reviewed during security review and the audit is grandparented in. +""" +aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT" + +[[audits.google.audits.lazy_static]] +who = "Lukasz Anforowicz " +criteria = "safe-to-deploy" +version = "1.4.0" +notes = ''' +I grepped for \"crypt\", \"cipher\", \"fs\", \"net\" - there were no hits. + +There are two places where `unsafe` is used. Unsafe review notes can be found +in https://crrev.com/c/5347418. + +This crate has been added to Chromium in https://crrev.com/c/3321895. +''' +aggregated-from = "https://chromium.googlesource.com/chromium/src/+/main/third_party/rust/chromium_crates_io/supply-chain/audits.toml?format=TEXT" + +[[audits.google.audits.openssl-macros]] +who = "George Burgess IV " +criteria = "safe-to-deploy" +delta = "0.1.0 -> 0.1.1" +aggregated-from = "https://chromium.googlesource.com/chromiumos/third_party/rust_crates/+/refs/heads/main/cargo-vet/audits.toml?format=TEXT" + +[[audits.google.audits.pbkdf2]] +who = "Joshua Liebow-Feeser " +criteria = "safe-to-deploy" +delta = "0.9.0 -> 0.11.0" +aggregated-from = "https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/third_party/rust_crates/supply-chain/audits.toml?format=TEXT" + +[[audits.google.audits.pin-project-lite]] +who = "David Koloski " +criteria = "safe-to-deploy" +version = "0.2.9" +notes = "Reviewed on https://fxrev.dev/824504" +aggregated-from = "https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/third_party/rust_crates/supply-chain/audits.toml?format=TEXT" + +[[audits.google.audits.unicode-xid]] +who = "George Burgess IV " +criteria = "safe-to-deploy" +version = "0.2.4" +aggregated-from = "https://chromium.googlesource.com/chromiumos/third_party/rust_crates/+/refs/heads/main/cargo-vet/audits.toml?format=TEXT" + +[[audits.google.audits.version_check]] +who = "George Burgess IV " +criteria = "safe-to-deploy" +version = "0.9.4" +aggregated-from = "https://chromium.googlesource.com/chromiumos/third_party/rust_crates/+/refs/heads/main/cargo-vet/audits.toml?format=TEXT" + +[[audits.isrg.audits.base64]] +who = "Tim Geoghegan " +criteria = "safe-to-deploy" +delta = "0.21.0 -> 0.21.1" + +[[audits.isrg.audits.base64]] +who = "Brandon Pitman " +criteria = "safe-to-deploy" +delta = "0.21.1 -> 0.21.2" + +[[audits.isrg.audits.block-buffer]] +who = "David Cook " +criteria = "safe-to-deploy" +version = "0.9.0" + +[[audits.isrg.audits.crunchy]] +who = "David Cook " +criteria = "safe-to-deploy" +version = "0.2.2" + +[[audits.isrg.audits.either]] +who = "David Cook " +criteria = "safe-to-deploy" +version = "1.6.1" + +[[audits.isrg.audits.fiat-crypto]] +who = "David Cook " +criteria = "safe-to-deploy" +version = "0.1.17" +notes = """ +This crate does not contain any unsafe code, and does not use any items from +the standard library or other crates, aside from operations backed by +`std::ops`. All paths with array indexing use integer literals for indexes, so +there are no panics due to indexes out of bounds (as rustc would catch an +out-of-bounds literal index). I did not check whether arithmetic overflows +could cause a panic, and I am relying on the Coq code having satisfied the +necessary preconditions to ensure panics due to overflows are unreachable. +""" + +[[audits.isrg.audits.fiat-crypto]] +who = "Brandon Pitman " +criteria = "safe-to-deploy" +delta = "0.1.17 -> 0.1.18" + +[[audits.isrg.audits.fiat-crypto]] +who = "David Cook " +criteria = "safe-to-deploy" +delta = "0.1.18 -> 0.1.19" +notes = """ +This release renames many items and adds a new module. The code in the new +module is entirely composed of arithmetic and array accesses. +""" + +[[audits.isrg.audits.hmac]] +who = "David Cook " +criteria = "safe-to-deploy" +version = "0.12.1" + +[[audits.isrg.audits.opaque-debug]] +who = "David Cook " +criteria = "safe-to-deploy" +version = "0.3.0" + +[[audits.isrg.audits.rand_chacha]] +who = "David Cook " +criteria = "safe-to-deploy" +version = "0.3.1" + +[[audits.isrg.audits.rand_core]] +who = "David Cook " +criteria = "safe-to-deploy" +version = "0.6.3" + +[[audits.isrg.audits.sha2]] +who = "David Cook " +criteria = "safe-to-deploy" +version = "0.10.2" + +[[audits.isrg.audits.unicode-ident]] +who = "David Cook " +criteria = "safe-to-deploy" +delta = "1.0.2 -> 1.0.3" + +[[audits.isrg.audits.universal-hash]] +who = "David Cook " +criteria = "safe-to-deploy" +version = "0.4.1" + +[[audits.isrg.audits.universal-hash]] +who = "David Cook " +criteria = "safe-to-deploy" +delta = "0.5.0 -> 0.5.1" + +[[audits.isrg.audits.wasm-bindgen-shared]] +who = "David Cook " +criteria = "safe-to-deploy" +version = "0.2.83" + +[[audits.mozilla.wildcard-audits.core-foundation]] +who = "Bobby Holley " +criteria = "safe-to-deploy" +user-id = 5946 # Jeff Muizelaar (jrmuizel) +start = "2019-03-29" +end = "2023-05-04" +renew = false +notes = "I've reviewed every source contribution that was neither authored nor reviewed by Mozilla." +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.wildcard-audits.core-foundation-sys]] +who = "Bobby Holley " +criteria = "safe-to-deploy" +user-id = 5946 # Jeff Muizelaar (jrmuizel) +start = "2020-10-14" +end = "2023-05-04" +renew = false +notes = "I've reviewed every source contribution that was neither authored nor reviewed by Mozilla." +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.wildcard-audits.encoding_rs]] +who = "Henri Sivonen " +criteria = "safe-to-deploy" +user-id = 4484 # Henri Sivonen (hsivonen) +start = "2019-02-26" +end = "2024-08-28" +notes = "I, Henri Sivonen, wrote encoding_rs for Gecko and have reviewed contributions by others. There are two caveats to the certification: 1) The crate does things that are documented to be UB but that do not appear to actually be UB due to integer types differing from the general rule; https://github.com/hsivonen/encoding_rs/issues/79 . 2) It would be prudent to re-review the code that reinterprets buffers of integers as SIMD vectors; see https://github.com/hsivonen/encoding_rs/issues/87 ." +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.wildcard-audits.unicode-normalization]] +who = "Manish Goregaokar " +criteria = "safe-to-deploy" +user-id = 1139 # Manish Goregaokar (Manishearth) +start = "2019-11-06" +end = "2024-05-03" +notes = "All code written or reviewed by Manish" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.wildcard-audits.unicode-segmentation]] +who = "Manish Goregaokar " +criteria = "safe-to-deploy" +user-id = 1139 # Manish Goregaokar (Manishearth) +start = "2019-05-15" +end = "2024-05-03" +notes = "All code written or reviewed by Manish" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.anyhow]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "1.0.57 -> 1.0.61" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.anyhow]] +who = "Bobby Holley " +criteria = "safe-to-deploy" +delta = "1.0.58 -> 1.0.57" +notes = "No functional differences, just CI config and docs." +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.anyhow]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "1.0.61 -> 1.0.62" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.anyhow]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "1.0.62 -> 1.0.68" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.bitflags]] +who = "Alex Franchuk " +criteria = "safe-to-deploy" +delta = "1.3.2 -> 2.0.2" +notes = "Removal of some unsafe code/methods. No changes to externals, just some refactoring (mostly internal)." +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.bitflags]] +who = "Nicolas Silva " +criteria = "safe-to-deploy" +delta = "2.0.2 -> 2.1.0" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.bitflags]] +who = "Teodor Tanasoaia " +criteria = "safe-to-deploy" +delta = "2.2.1 -> 2.3.2" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.block-buffer]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "0.10.2 -> 0.10.3" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.cc]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "1.0.73 -> 1.0.78" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.crypto-common]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "0.1.3 -> 0.1.6" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.digest]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "0.10.3 -> 0.10.6" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.either]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "1.6.1 -> 1.7.0" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.either]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "1.7.0 -> 1.8.0" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.fastrand]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "1.9.0 -> 2.0.0" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.fnv]] +who = "Bobby Holley " +criteria = "safe-to-deploy" +version = "1.0.7" +notes = "Simple hasher implementation with no unsafe code." +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.form_urlencoded]] +who = "Valentin Gosu " +criteria = "safe-to-deploy" +version = "1.2.0" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.futures-channel]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "0.3.27 -> 0.3.28" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.futures-core]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "0.3.27 -> 0.3.28" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.futures-io]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "0.3.27 -> 0.3.28" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.futures-sink]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "0.3.27 -> 0.3.28" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.half]] +who = "John M. Schanck " +criteria = "safe-to-deploy" +version = "1.8.2" +notes = """ +This crate contains unsafe code for bitwise casts to/from binary16 floating-point +format. I've reviewed these and found no issues. There are no uses of ambient +capabilities. +""" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.hashbrown]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +version = "0.12.3" +notes = "This version is used in rust's libstd, so effectively we're already trusting it" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.hermit-abi]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "0.1.19 -> 0.2.6" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.hex]] +who = "Simon Friedberger " +criteria = "safe-to-deploy" +version = "0.4.3" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.libm]] +who = "Makoto Kato " +criteria = "safe-to-deploy" +version = "0.2.6" +notes = "This crate uses unsafe block, but this doesn't have network and file access. I audited code." +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.log]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +version = "0.4.17" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.num-bigint]] +who = "Josh Stone " +criteria = "safe-to-deploy" +version = "0.4.3" +notes = "All code written or reviewed by Josh Stone." +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.num-integer]] +who = "Josh Stone " +criteria = "safe-to-deploy" +version = "0.1.45" +notes = "All code written or reviewed by Josh Stone." +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.num-traits]] +who = "Josh Stone " +criteria = "safe-to-deploy" +version = "0.2.15" +notes = "All code written or reviewed by Josh Stone." +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.percent-encoding]] +who = "Valentin Gosu " +criteria = "safe-to-deploy" +delta = "2.2.0 -> 2.3.0" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.proc-macro2]] +who = "Nika Layzell " +criteria = "safe-to-deploy" +version = "1.0.39" +notes = """ +`proc-macro2` acts as either a thin(-ish) wrapper around the std-provided +`proc_macro` crate, or as a fallback implementation of the crate, depending on +where it is used. + +If using this crate on older versions of rustc (1.56 and earlier), it will +temporarily replace the panic handler while initializing in order to detect if +it is running within a `proc_macro`, which could lead to surprising behaviour. +This should not be an issue for more recent compiler versions, which support +`proc_macro::is_available()`. + +The `proc-macro2` crate's fallback behaviour is not identical to the complex +behaviour of the rustc compiler (e.g. it does not perform unicode normalization +for identifiers), however it behaves well enough for its intended use-case +(tests and scripts processing rust code). + +`proc-macro2` does not use unsafe code, however exposes one `unsafe` API to +allow bypassing checks in the fallback implementation when constructing +`Literal` using `from_str_unchecked`. This was intended to only be used by the +`quote!` macro, however it has been removed +(https://github.com/dtolnay/quote/commit/f621fe64a8a501cae8e95ebd6848e637bbc79078), +and is likely completely unused. Even when used, this API shouldn't be able to +cause unsoundness. +""" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.proc-macro2]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "1.0.39 -> 1.0.43" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.proc-macro2]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "1.0.43 -> 1.0.49" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.proc-macro2]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "1.0.49 -> 1.0.51" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.proc-macro2]] +who = "Jan-Erik Rediger " +criteria = "safe-to-deploy" +delta = "1.0.57 -> 1.0.59" +notes = "Enabled on Wasm" +aggregated-from = "https://raw.githubusercontent.com/mozilla/glean/main/supply-chain/audits.toml" + +[[audits.mozilla.audits.quote]] +who = "Nika Layzell " +criteria = "safe-to-deploy" +version = "1.0.18" +notes = """ +`quote` is a utility crate used by proc-macros to generate TokenStreams +conveniently from source code. The bulk of the logic is some complex +interlocking `macro_rules!` macros which are used to parse and build the +`TokenStream` within the proc-macro. + +This crate contains no unsafe code, and the internal logic, while difficult to +read, is generally straightforward. I have audited the the quote macros, ident +formatter, and runtime logic. +""" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.quote]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "1.0.18 -> 1.0.21" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.quote]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "1.0.21 -> 1.0.23" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.quote]] +who = "Jan-Erik Rediger " +criteria = "safe-to-deploy" +delta = "1.0.27 -> 1.0.28" +notes = "Enabled on wasm targets" +aggregated-from = "https://raw.githubusercontent.com/mozilla/glean/main/supply-chain/audits.toml" + +[[audits.mozilla.audits.rand_core]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "0.6.3 -> 0.6.4" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.rayon]] +who = "Josh Stone " +criteria = "safe-to-deploy" +version = "1.5.3" +notes = "All code written or reviewed by Josh Stone or Niko Matsakis." +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.rayon]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "1.5.3 -> 1.6.1" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.rayon-core]] +who = "Josh Stone " +criteria = "safe-to-deploy" +version = "1.9.3" +notes = "All code written or reviewed by Josh Stone or Niko Matsakis." +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.rayon-core]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "1.9.3 -> 1.10.1" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.redox_syscall]] +who = "Jan-Erik Rediger " +criteria = "safe-to-deploy" +delta = "0.2.16 -> 0.3.5" +aggregated-from = "https://raw.githubusercontent.com/mozilla/glean/main/supply-chain/audits.toml" + +[[audits.mozilla.audits.rustc-hash]] +who = "Bobby Holley " +criteria = "safe-to-deploy" +version = "1.1.0" +notes = "Straightforward crate with no unsafe code, does what it says on the tin." +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.sha2]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "0.10.2 -> 0.10.6" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.slab]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "0.4.6 -> 0.4.7" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.slab]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "0.4.7 -> 0.4.8" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.synstructure]] +who = "Nika Layzell " +criteria = "safe-to-deploy" +version = "0.12.6" +notes = """ +I am the primary author of the `synstructure` crate, and its current +maintainer. The one use of `unsafe` is unnecessary, but documented and +harmless. It will be removed in the next version. +""" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.textwrap]] +who = "Jan-Erik Rediger " +criteria = "safe-to-deploy" +version = "0.15.0" +aggregated-from = "https://raw.githubusercontent.com/mozilla/glean/main/supply-chain/audits.toml" + +[[audits.mozilla.audits.textwrap]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "0.15.0 -> 0.15.2" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.textwrap]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "0.15.2 -> 0.16.0" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.unicode-bidi]] +who = "Makoto Kato " +criteria = "safe-to-deploy" +delta = "0.3.8 -> 0.3.13" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.unicode-ident]] +who = "Mike Hommey " +criteria = "safe-to-deploy" +delta = "1.0.3 -> 1.0.6" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.mozilla.audits.url]] +who = "Valentin Gosu " +criteria = "safe-to-deploy" +version = "2.4.0" +aggregated-from = "https://hg.mozilla.org/mozilla-central/raw-file/tip/supply-chain/audits.toml" + +[[audits.zcash.audits.aead]] +who = "Daira Hopwood " +criteria = "safe-to-deploy" +delta = "0.4.3 -> 0.5.1" +notes = "Adds an AeadCore::generate_nonce function to generate random nonces, given a CryptoRng." +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.aead]] +who = "Jack Grigg " +criteria = "safe-to-deploy" +delta = "0.5.1 -> 0.5.2" +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.bls12_381]] +who = "Sean Bowe " +criteria = "safe-to-deploy" +delta = "0.7.1 -> 0.8.0" +notes = "I previously reviewed the crypto-sensitive portions of these changes as well." +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.chacha20poly1305]] +who = "Daira Hopwood " +criteria = "safe-to-deploy" +delta = "0.9.1 -> 0.10.1" +notes = "This mainly adapts to API changes between aead 0.4 and aead 0.5." +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.cipher]] +who = "Daira Hopwood " +criteria = "safe-to-deploy" +delta = "0.3.0 -> 0.4.3" +notes = "Significant rework of (mainly RustCrypto-internal) APIs." +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.cipher]] +who = "Jack Grigg " +criteria = "safe-to-deploy" +delta = "0.4.3 -> 0.4.4" +notes = "Adds panics to prevent a block size of zero from causing unsoundness." +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.constant_time_eq]] +who = "Jack Grigg " +criteria = "safe-to-deploy" +delta = "0.2.4 -> 0.2.5" +notes = "No code changes." +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.constant_time_eq]] +who = "Jack Grigg " +criteria = "safe-to-deploy" +delta = "0.2.5 -> 0.2.6" +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.constant_time_eq]] +who = "Jack Grigg " +criteria = "safe-to-deploy" +delta = "0.2.6 -> 0.3.0" +notes = "Replaces some `unsafe` code by bumping MSRV to 1.66 (to access `core::hint::black_box`)." +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.ff]] +who = "Sean Bowe " +criteria = "safe-to-deploy" +delta = "0.12.1 -> 0.13.0" +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.group]] +who = "Sean Bowe " +criteria = "safe-to-deploy" +delta = "0.12.1 -> 0.13.0" +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.inout]] +who = "Daira Hopwood " +criteria = "safe-to-deploy" +version = "0.1.3" +notes = "Reviewed in full." +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.jubjub]] +who = "Sean Bowe " +criteria = "safe-to-deploy" +delta = "0.9.0 -> 0.10.0" +notes = "I previously reviewed the crypto-sensitive portions of these changes as well." +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.pairing]] +who = "Sean Bowe " +criteria = "safe-to-deploy" +delta = "0.22.0 -> 0.23.0" +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.platforms]] +who = "Daira Emma Hopwood " +criteria = "safe-to-deploy" +version = "3.0.2" +notes = """ +This crate uses `#![forbid(unsafe_code)]` and its build script is safe. It only \"provides programmatic access to +information about valid Rust platforms, sourced from the Rust compiler\"; it does not attempt any detection that +would require unsafety. +""" +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.poly1305]] +who = "Daira Hopwood " +criteria = "safe-to-deploy" +delta = "0.7.2 -> 0.8.0" +notes = "Changes to unsafe (avx2) code look reasonable." +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.proc-macro2]] +who = "Jack Grigg " +criteria = "safe-to-deploy" +delta = "1.0.59 -> 1.0.60" +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.rand_xorshift]] +who = "Sean Bowe " +criteria = "safe-to-deploy" +version = "0.3.0" +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.reddsa]] +who = "Sean Bowe " +criteria = "safe-to-deploy" +delta = "0.3.0 -> 0.5.0" +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.reddsa]] +who = "Jack Grigg " +criteria = "safe-to-deploy" +delta = "0.5.0 -> 0.5.1" +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.rustc_version]] +who = "Jack Grigg " +criteria = "safe-to-deploy" +version = "0.4.0" +notes = """ +Most of the crate is code to parse and validate the output of `rustc -vV`. The caller can +choose which `rustc` to use, or can use `rustc_version::{version, version_meta}` which will +try `$RUSTC` followed by `rustc`. + +If an adversary can arbitrarily set the `$RUSTC` environment variable then this crate will +execute arbitrary code. But when this crate is used within a build script, `$RUSTC` should +be set correctly by `cargo`. +""" +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.unicode-ident]] +who = "Daira Hopwood " +criteria = "safe-to-deploy" +version = "1.0.2" +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.universal-hash]] +who = "Daira Hopwood " +criteria = "safe-to-deploy" +delta = "0.4.1 -> 0.5.0" +notes = "I checked correctness of to_blocks which uses unsafe code in a safe function." +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" + +[[audits.zcash.audits.wasm-bindgen-shared]] +who = "Jack Grigg " +criteria = "safe-to-deploy" +delta = "0.2.83 -> 0.2.84" +notes = "Bumps the schema version to add `linked_modules`." +aggregated-from = "https://raw.githubusercontent.com/zcash/zcash/master/qa/supply-chain/audits.toml" diff --git a/yarn.lock b/yarn.lock index ecb7c2d652..0e56281a86 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3016,6 +3016,40 @@ widest-line "^3.1.0" wrap-ansi "^7.0.0" +"@oclif/core@^1.23.1": + version "1.26.2" + resolved "https://registry.yarnpkg.com/@oclif/core/-/core-1.26.2.tgz#763c68dc91388225acd6f0819c90f93e5d8cde41" + integrity sha512-6jYuZgXvHfOIc9GIaS4T3CIKGTjPmfAxuMcbCbMRKJJl4aq/4xeRlEz0E8/hz8HxvxZBGvN2GwAUHlrGWQVrVw== + dependencies: + "@oclif/linewrap" "^1.0.0" + "@oclif/screen" "^3.0.4" + ansi-escapes "^4.3.2" + ansi-styles "^4.3.0" + cardinal "^2.1.1" + chalk "^4.1.2" + clean-stack "^3.0.1" + cli-progress "^3.10.0" + debug "^4.3.4" + ejs "^3.1.6" + fs-extra "^9.1.0" + get-package-type "^0.1.0" + globby "^11.1.0" + hyperlinker "^1.0.0" + indent-string "^4.0.0" + is-wsl "^2.2.0" + js-yaml "^3.14.1" + natural-orderby "^2.0.3" + object-treeify "^1.1.33" + password-prompt "^1.1.2" + semver "^7.3.7" + string-width "^4.2.3" + strip-ansi "^6.0.1" + supports-color "^8.1.1" + supports-hyperlinks "^2.2.0" + tslib "^2.4.1" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + "@oclif/core@^1.3.1": version "1.6.3" resolved "https://registry.yarnpkg.com/@oclif/core/-/core-1.6.3.tgz#3d1dd4e033f5512ac35963a73878257142390838" @@ -3091,6 +3125,16 @@ resolved "https://registry.yarnpkg.com/@oclif/linewrap/-/linewrap-1.0.0.tgz#aedcb64b479d4db7be24196384897b5000901d91" integrity sha512-Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw== +"@oclif/plugin-autocomplete@1.3.10": + version "1.3.10" + resolved "https://registry.yarnpkg.com/@oclif/plugin-autocomplete/-/plugin-autocomplete-1.3.10.tgz#3b6ff23ca03513f05b6719ddf51f01b35bd8bf69" + integrity sha512-oQl7ZqXhXJUOH26mDPcqcMGmcdIoK/uQPSpUBrfLa1iaQ30slTs0T7KOzg+vwKuPqIIF1nTCPuH67lE8GvUPTw== + dependencies: + "@oclif/core" "^1.23.1" + chalk "^4.1.0" + debug "^4.3.4" + fs-extra "^9.0.1" + "@oclif/plugin-help@5.1.12", "@oclif/plugin-help@^5.1.11": version "5.1.12" resolved "https://registry.yarnpkg.com/@oclif/plugin-help/-/plugin-help-5.1.12.tgz#24a18631eb9b22cb55e1a3b8e4f6039fd42727e6" @@ -3144,6 +3188,11 @@ resolved "https://registry.yarnpkg.com/@oclif/screen/-/screen-3.0.4.tgz#663db0ecaf23f3184e7f01886ed578060e4a7f1c" integrity sha512-IMsTN1dXEXaOSre27j/ywGbBjrzx0FNd1XmuhCWCB9NTPrhWI1Ifbz+YLSEcstfQfocYsrbrIessxXb2oon4lA== +"@oclif/screen@^3.0.4": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@oclif/screen/-/screen-3.0.8.tgz#f746549c3ae52fdb7794dfc244dfba98ebca37f2" + integrity sha512-yx6KAqlt3TAHBduS2fMQtJDL2ufIHnDRArrJEOoTTuizxqmjLT+psGYOHpmMl3gvQpFJ11Hs76guUUktzAF9Bg== + "@oclif/test@2.1.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@oclif/test/-/test-2.1.0.tgz#e5a0ba619c890770782e48c82d18f5921e2d2b9f"