From: Chris Duncan Date: Fri, 7 Aug 2026 21:43:28 +0000 (-0700) Subject: Derive link_as_account from link in Blocks. X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=e1691d71433159b9e64590359b01cdf091c5a1d7;p=libnemo.git Derive link_as_account from link in Blocks. --- diff --git a/src/lib/block/change.ts b/src/lib/block/change.ts index c5cb063..a8d7748 100644 --- a/src/lib/block/change.ts +++ b/src/lib/block/change.ts @@ -3,11 +3,11 @@ import type { Block } from '.' import { Account } from '../account' -import { BURN_ADDRESS, BURN_PUBLIC_KEY } from '../constants' +import { BURN_PUBLIC_KEY } from '../constants' import { hex } from '../convert' export function _change (block: Block, representative: unknown): Block { - const { link, link_as_account, representative: rep, subtype } = block + const { link, representative: rep, subtype } = block try { if (block.subtype != null) { throw new Error(`Block already configured as ${block.subtype}`) @@ -22,12 +22,10 @@ export function _change (block: Block, representative: unknown): Block { : representative block.link = hex.toBytes(BURN_PUBLIC_KEY) - block.link_as_account = BURN_ADDRESS return block } catch (err) { block.link = link - block.link_as_account = link_as_account block.representative = rep block.subtype = subtype throw new TypeError('Failed to configure change block', { cause: err }) diff --git a/src/lib/block/index.ts b/src/lib/block/index.ts index de8984b..9fa4114 100644 --- a/src/lib/block/index.ts +++ b/src/lib/block/index.ts @@ -38,6 +38,11 @@ export class Block { previous: Bytes representative?: Account link?: Bytes + get link_as_account (): string { + return typeof this.link === 'undefined' + ? '' + : new Account(bytes.toHex(this.link)).address + } signature?: string work?: string @@ -136,7 +141,7 @@ export class Block { "representative": this.representative.address ?? '', "balance": dec.toString(this.balance), "link": bytes.toHex(this.link), - "link_as_account": bytes.toHex(this.link), + "link_as_account": this.link_as_account, "signature": this.signature ?? '', "work": this.work ?? '' } diff --git a/src/lib/block/receive.ts b/src/lib/block/receive.ts index fca80d5..99ca1ea 100644 --- a/src/lib/block/receive.ts +++ b/src/lib/block/receive.ts @@ -2,7 +2,6 @@ //! SPDX-License-Identifier: GPL-3.0-or-later import type { Block } from '.' -import { Account } from '../account' import { UNITS } from '../constants' import { hex } from '../convert' import { convert } from '../tools' @@ -17,7 +16,7 @@ import { convert } from '../tools' * @returns {Block} This block with balance, link, and subtype configured */ export function _receive (block: Block, sendBlock: unknown, amount: unknown, unit: unknown): Block { - const { balance, link, link_as_account, subtype } = block + const { balance, link, subtype } = block try { if (block.subtype != null) { throw new Error(`Block already configured as ${block.subtype}`) @@ -41,13 +40,11 @@ export function _receive (block: Block, sendBlock: unknown, amount: unknown, uni throw new TypeError('Invalid send block hash', { cause: sendBlock }) } block.link = hex.toBytes(sendBlock, 32) - block.link_as_account = new Account(sendBlock).address return block } catch (err) { block.balance = balance block.link = link - block.link_as_account = link_as_account block.subtype = subtype throw new TypeError('Failed to configure receive block', { cause: err }) } diff --git a/src/lib/block/send.ts b/src/lib/block/send.ts index 4621bde..d812f43 100644 --- a/src/lib/block/send.ts +++ b/src/lib/block/send.ts @@ -43,13 +43,11 @@ export function _send (block: Block, account: unknown, amount: unknown, unit: un throw new TypeError('Invalid account', { cause: account }) } block.link = hex.toBytes(account.publicKey, 32) - block.link_to_account = account.address return block } catch (err) { block.balance = balance block.link = link - block.link_as_account = link_as_account block.subtype = subtype throw new TypeError('Failed to configure send block', { cause: err }) }