]> git.codecow.com Git - libnemo.git/commitdiff
Fix rep in change block being overwritten by burn account.
authorChris Duncan <chris@codecow.com>
Fri, 7 Aug 2026 21:11:04 +0000 (14:11 -0700)
committerChris Duncan <chris@codecow.com>
Fri, 7 Aug 2026 21:11:04 +0000 (14:11 -0700)
src/lib/account/refresh.ts
src/lib/wallet/refresh.ts

index 34e807484405b3a264ea7dace965b74f21109d6a..a34c03fec05b1f89ace55baf13e85120359ceb6d 100644 (file)
@@ -3,6 +3,7 @@
 
 import { Account } from '.'
 import { Block } from '../block'
+import { BURN_PUBLIC_KEY } from '../constants'
 import { Rpc } from '../rpc'
 import { AccountInfoRequest } from '../rpc/account_info'
 import { BlockInfoRequest } from '../rpc/block_info'
@@ -54,7 +55,7 @@ export async function _refresh (account: Account, rpc: unknown): Promise<void> {
        if (typeof confirmedFrontierBlock[confirmedFrontierSubtype] !== 'function') {
                throw new TypeError('Unknown subtype of confirmed frontier block', { cause: confirmedFrontierSubtype })
        }
-       confirmedFrontierBlock[confirmedFrontierSubtype](confirmedFrontierContents.link, 0).signature = confirmedFrontierContents.signature
+       confirmedFrontierBlock[confirmedFrontierSubtype](confirmedFrontierContents.link === BURN_PUBLIC_KEY ? confirmedFrontierContents.representative : confirmedFrontierContents.link, 0).signature = confirmedFrontierContents.signature
        account.confirmed_frontier_block = confirmedFrontierBlock
 
        const reqFrontierBlockInfo: BlockInfoRequest = {
@@ -84,6 +85,6 @@ export async function _refresh (account: Account, rpc: unknown): Promise<void> {
        if (typeof frontierBlock[frontierSubtype] !== 'function') {
                throw new TypeError('Unknown subtype of frontier block', { cause: frontierSubtype })
        }
-       frontierBlock[frontierSubtype](frontierContents.link, 0).signature = frontierContents.signature
+       frontierBlock[frontierSubtype](frontierContents.link === BURN_PUBLIC_KEY ? frontierContents.representative : frontierContents.link, 0).signature = frontierContents.signature
        account.frontier_block = frontierBlock
 }
index 354811ee44d987dc7747fd84ef6638b4eabf57ed..23a9ac91e501e55cf4f5ebb44453229fe7d47706 100644 (file)
@@ -3,6 +3,7 @@
 
 import { Account } from '../account'
 import { Block } from '../block'
+import { BURN_PUBLIC_KEY } from '../constants'
 import { Rpc } from '../rpc'
 import { Wallet } from '../wallet'
 
@@ -43,7 +44,7 @@ export async function _refresh (wallet: Wallet, rpc: unknown, from: unknown, to:
                                        if (typeof frontierBlock[subtype] !== 'function') {
                                                throw new TypeError('Unknown frontier block subtype', { cause: subtype })
                                        }
-                                       frontierBlock[subtype](link, 0).signature = signature
+                                       frontierBlock[subtype](link === BURN_PUBLIC_KEY ? representative : link, 0).signature = signature
                                        account.frontier_block = frontierBlock
                                }
                        }