All checks were successful
deploy / deploy (push) Successful in 22s
Proof: Liquidity manager must persist live deposit handles and funding observations so the active NEAR Intents proof can reach credited inventory and real execution. Assumptions: Services commonly mutate store.getState() in place before calling setState, so the state store must preserve same-reference updates instead of clearing them. Still fake: Strategy and executor remain disarmed, no live inventory is credited yet, and no live mainnet quote response has been sent.
54 lines
1.2 KiB
JavaScript
54 lines
1.2 KiB
JavaScript
import test from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import fs from 'node:fs';
|
|
import os from 'node:os';
|
|
import path from 'node:path';
|
|
|
|
import { createJsonStateStore } from '../src/core/json-state-store.mjs';
|
|
|
|
test('json state store preserves mutated in-memory state on setState', () => {
|
|
const stateDir = fs.mkdtempSync(path.join(os.tmpdir(), 'unrip-json-state-'));
|
|
const store = createJsonStateStore({
|
|
stateDir,
|
|
fileName: 'state.json',
|
|
initialState: {
|
|
paused: false,
|
|
publish_count: 0,
|
|
deposit_addresses: {},
|
|
},
|
|
});
|
|
|
|
const state = store.getState();
|
|
state.publish_count = 1;
|
|
state.deposit_addresses['btc:mainnet'] = {
|
|
address: 'bc1qexample',
|
|
};
|
|
|
|
store.setState(state);
|
|
|
|
assert.deepEqual(store.getState(), {
|
|
paused: false,
|
|
publish_count: 1,
|
|
deposit_addresses: {
|
|
'btc:mainnet': {
|
|
address: 'bc1qexample',
|
|
},
|
|
},
|
|
});
|
|
|
|
const reloaded = createJsonStateStore({
|
|
stateDir,
|
|
fileName: 'state.json',
|
|
initialState: {},
|
|
});
|
|
|
|
assert.deepEqual(reloaded.getState(), {
|
|
paused: false,
|
|
publish_count: 1,
|
|
deposit_addresses: {
|
|
'btc:mainnet': {
|
|
address: 'bc1qexample',
|
|
},
|
|
},
|
|
});
|
|
});
|