From: Chris Duncan Date: Fri, 8 Aug 2025 15:09:08 +0000 (-0700) Subject: Update protocol max values. X-Git-Tag: v0.10.5~43^2~26 X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=eb18a7d0ee7c1bb7c06c6aad46ee93fd8cdb2f8a;p=libnemo.git Update protocol max values. --- diff --git a/src/lib/constants.ts b/src/lib/constants.ts index 15be831..8fdc08a 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -11,6 +11,8 @@ export const BIP44_COIN_NANO = 165 export const BURN_ADDRESS = 'nano_1111111111111111111111111111111111111111111111111111hifc8npp' export const BURN_PUBLIC_KEY = '0000000000000000000000000000000000000000000000000000000000000000' export const HARDENED_OFFSET = 0x80000000 +export const MAX_RAW = 0xFFFF_FFFF_FFFF_FFFF_FFFF_FFFF_FFFF_FFFFn +export const MAX_SUPPLY = 133_248_297_920_938_463_463_374_607_431_768_211_455n export const NONCE_LENGTH = 24 export const PBKDF2_ITERATIONS = 210000 export const PREAMBLE = '0000000000000000000000000000000000000000000000000000000000000006' @@ -71,6 +73,8 @@ export default ` const BURN_ADDRESS = '${BURN_ADDRESS}' const BURN_PUBLIC_KEY = '${BURN_PUBLIC_KEY}' const HARDENED_OFFSET = ${HARDENED_OFFSET} + const MAX_RAW = ${MAX_RAW} + const MAX_SUPPLY = ${MAX_SUPPLY} const NONCE_LENGTH = ${NONCE_LENGTH} const PBKDF2_ITERATIONS = ${PBKDF2_ITERATIONS} const PREAMBLE = '${PREAMBLE}' diff --git a/src/lib/tools.ts b/src/lib/tools.ts index 9035785..8bf22bf 100644 --- a/src/lib/tools.ts +++ b/src/lib/tools.ts @@ -4,7 +4,7 @@ import { Account } from './account' import { Blake2b } from './blake2b' import { Block } from './block' -import { UNITS } from './constants' +import { MAX_SUPPLY, UNITS } from './constants' import { bytes, hex } from './convert' import { Ledger } from './ledger' import { NanoNaCl } from './nano-nacl' diff --git a/test/VECTORS.mjs b/test/VECTORS.mjs index ec24c9c..3ccc60a 100644 --- a/test/VECTORS.mjs +++ b/test/VECTORS.mjs @@ -16,8 +16,8 @@ * https://github.com/emilbayes/blake2b/blob/master/test-vectors.json#L514-L577 */ export const GENESIS_ADDRESS = 'nano_3t6k35gi95xu6tergt6p69ck76ogmitsa8mnijtpxm9fkcm736xtoncuohr3' -export const RAW_MAX = '340282366920938463463374607431768211455' -export const SUPPLY_MAX = '133248297920938463463374607431768211455' +export const MAX_RAW = 0xFFFF_FFFF_FFFF_FFFF_FFFF_FFFF_FFFF_FFFFn +export const MAX_SUPPLY = 133_248_297_920_938_463_463_374_607_431_768_211_455n export const NANO_TEST_VECTORS = Object.freeze({ // from nano.org python sample code diff --git a/test/test.tools.mjs b/test/test.tools.mjs index 94aa586..e417a8f 100644 --- a/test/test.tools.mjs +++ b/test/test.tools.mjs @@ -4,7 +4,7 @@ 'use strict' import { assert, env, isNode, suite, test } from './GLOBALS.mjs' -import { RAW_MAX, NANO_TEST_VECTORS } from './VECTORS.mjs' +import { MAX_RAW, MAX_SUPPLY, NANO_TEST_VECTORS } from './VECTORS.mjs' /** * @type {typeof import('../dist/types.d.ts').Account} @@ -58,8 +58,8 @@ await Promise.all([ }) await test('should convert raw to nyano', async () => { - const result = await Tools.convert(RAW_MAX, 'RAW', 'NYANO') - assert.equal(result, '340282366920938.463463374607431768211455') + const result = await Tools.convert(MAX_SUPPLY, 'RAW', 'NYANO') + assert.equal(result, '133248297920938.463463374607431768211455') }) await test('should convert case-insensitive nyano to raw', async () => { @@ -78,7 +78,7 @@ await Promise.all([ }) await test('should throw if amount exceeds raw max', async () => { - await assert.rejects(Tools.convert(RAW_MAX, 'NANO', 'RAW'), + await assert.rejects(Tools.convert(MAX_RAW, 'NANO', 'RAW'), { message: 'Amount exceeds Nano limits' }) })