UNPKG

@neo-one/node-storage-cache-esnext-esm

Version:

NEO•ONE node storage cache.

238 lines (236 loc) 7.69 kB
import { keys } from '@neo-one/node-storage-common-esnext-esm'; import { utils } from '@neo-one/utils-esnext-esm'; const convertAddChange = (changeIn) => { const change = changeIn; switch (change.type) { case 'account': return [ { type: 'add', model: 'account', key: keys.typeKeyToSerializeKey.account(change.value), value: change.value, }, ]; case 'accountUnclaimed': return [ { type: 'add', model: 'accountUnclaimed', key: keys.typeKeyToSerializeKey.accountUnclaimed({ hash: change.value.hash, input: change.value.input, }), value: change.value, }, ]; case 'accountUnspent': return [ { type: 'add', model: 'accountUnspent', key: keys.typeKeyToSerializeKey.accountUnspent({ hash: change.value.hash, input: change.value.input, }), value: change.value, }, ]; case 'action': return [ { type: 'add', model: 'action', key: keys.typeKeyToSerializeKey.action({ index: change.value.index, }), value: change.value, }, ]; case 'asset': return [ { type: 'add', model: 'asset', key: keys.typeKeyToSerializeKey.asset(change.value), value: change.value, }, ]; case 'block': return [ { type: 'add', model: 'block', key: keys.typeKeyToSerializeKey.block(change.value), value: change.value, }, { type: 'add', model: 'block', key: `${change.value.index}`, value: change.value, }, ]; case 'blockData': return [ { type: 'add', model: 'blockData', key: keys.typeKeyToSerializeKey.blockData(change.value), value: change.value, }, ]; case 'header': return [ { type: 'add', model: 'header', key: keys.typeKeyToSerializeKey.header(change.value), value: change.value, }, { type: 'add', model: 'header', key: `${change.value.index}`, value: change.value, }, ]; case 'transaction': return [ { type: 'add', model: 'transaction', key: keys.typeKeyToSerializeKey.transaction(change.value), value: change.value, }, ]; case 'output': return [ { type: 'add', model: 'output', key: keys.typeKeyToSerializeKey.output({ hash: change.value.hash, index: change.value.index, }), value: change.value.output, }, ]; case 'transactionData': return [ { type: 'add', model: 'transactionData', key: keys.typeKeyToSerializeKey.transactionData(change.value), value: change.value, }, ]; case 'contract': return [ { type: 'add', model: 'contract', key: keys.typeKeyToSerializeKey.contract(change.value), value: change.value, }, ]; case 'storageItem': return [ { type: 'add', model: 'storageItem', key: keys.typeKeyToSerializeKey.storageItem({ hash: change.value.hash, key: change.value.key, }), value: change.value, }, ]; case 'validator': return [ { type: 'add', model: 'validator', key: keys.typeKeyToSerializeKey.validator({ publicKey: change.value.publicKey, }), value: change.value, }, ]; case 'invocationData': return [ { type: 'add', model: 'invocationData', key: keys.typeKeyToSerializeKey.invocationData(change.value), value: change.value, }, ]; case 'validatorsCount': return [ { type: 'add', model: 'validatorsCount', key: keys.validatorsCountKey.toString(), value: change.value, }, ]; default: utils.assertNever(change); throw new Error('For TS'); } }; const convertDeleteChange = (change) => { switch (change.type) { case 'account': return { type: 'delete', model: 'account', key: keys.typeKeyToSerializeKey.account(change.key), }; case 'accountUnclaimed': return { type: 'delete', model: 'accountUnclaimed', key: keys.typeKeyToSerializeKey.accountUnclaimed(change.key), }; case 'accountUnspent': return { type: 'delete', model: 'accountUnspent', key: keys.typeKeyToSerializeKey.accountUnclaimed(change.key), }; case 'contract': return { type: 'delete', model: 'contract', key: keys.typeKeyToSerializeKey.contract(change.key), }; case 'storageItem': return { type: 'delete', model: 'storageItem', key: keys.typeKeyToSerializeKey.storageItem(change.key), }; case 'validator': return { type: 'delete', model: 'validator', key: keys.typeKeyToSerializeKey.validator(change.key), }; default: utils.assertNever(change); throw new Error('For TS'); } }; export const convertChange = (change) => { if (change.type === 'add') { return convertAddChange(change.change); } if (change.type === 'delete') { return [convertDeleteChange(change.change)]; } utils.assertNever(change); throw new Error('For TS'); }; //# sourceMappingURL=convertChange.js.map