*__name__*: MemoryDb *__summary__*: Creates a MemoryDb database extending TransactionDb *__description__*: Create an instance of a Memory database using MemoryDb and extending TransactionDb. `options` argument (optional) used to specifies whether to use compression. * Enable compression when storing "blocks" since they compress well. * Disable compression when storing "state" Transactions Trie using @polkadot/trie-db or @polkadot/db/src/engines/TransactionDb.ts (potentially LevelDb or RocksDb implementation of a Merkle Patricia Trie) data structure serialised with Recursive Length Prefix (RLP) encoding *__example__*: ```javascript import stringToU8a from '@polkadot/util/string/toU8a'; import MemoryDb from '@polkadot/db/Memory'; import TransactionDb from '@polkadot/db/engines/TransactionDb'; const memoryDb = new MemoryDb(); const txDb = new TransactionDb(memoryDb); // Open the memory database memoryDb.open(); // Declare key/value pair to allocate to store under a the key const key = stringToU8a('key'); const value = stringToU8a('some value'); // Store key/value pair in memory db memoryDb.put(key, value); // Retrieve value for key from memory db valueRetrieved = memoryDb.get(key); // Delete key/value pair from memory db memoryDb.del(key); // Transaction to Store key/value pair in transaction db const isTxSuccess = txDb.transaction(() => { txDb.put(key, value); // Boolean to indicate whether transaction was successful or not return true; }); console.log(`Transaction successful?: ${isTxSuccess}`); // Retrieve transaction value from memory db console.log(`Transfered value: ${memoryDb.get(key)}`); // Close the memory database memoryDb.close(); ``` # Hierarchy [TransactionDb](_engines_transactiondb_.transactiondb.md) **↳ Memory** # Implements * [TxDb](../interfaces/_types_.txdb.md) # Constructors ## constructor ⊕ **new Memory**(options?: *[BaseDbOptions](../modules/_types_.md#basedboptions)*): [Memory](_memory_.memory.md) *Overrides [TransactionDb](_engines_transactiondb_.transactiondb.md).[constructor](_engines_transactiondb_.transactiondb.md#constructor)* *Defined in [Memory.ts:66](https://github.com/polkadot-js/common/blob/ccfed2a/packages/db/src/Memory.ts#L66)* **Parameters:** | Name | Type | | ------ | ------ | | `Optional` options | [BaseDbOptions](../modules/_types_.md#basedboptions) | **Returns:** [Memory](_memory_.memory.md) ___ # Methods ## close ▸ **close**(): `void` *Implementation of [TxDb](../interfaces/_types_.txdb.md).[close](../interfaces/_types_.txdb.md#close)* *Inherited from [TransactionDb](_engines_transactiondb_.transactiondb.md).[close](_engines_transactiondb_.transactiondb.md#close)* *Defined in [engines/TransactionDb.ts:51](https://github.com/polkadot-js/common/blob/ccfed2a/packages/db/src/engines/TransactionDb.ts#L51)* **Returns:** `void` ___ ## del ▸ **del**(key: *`Uint8Array`*): `void` *Implementation of [TxDb](../interfaces/_types_.txdb.md).[del](../interfaces/_types_.txdb.md#del)* *Inherited from [TransactionDb](_engines_transactiondb_.transactiondb.md).[del](_engines_transactiondb_.transactiondb.md#del)* *Defined in [engines/TransactionDb.ts:81](https://github.com/polkadot-js/common/blob/ccfed2a/packages/db/src/engines/TransactionDb.ts#L81)* **Parameters:** | Name | Type | | ------ | ------ | | key | `Uint8Array` | **Returns:** `void` ___ ## drop ▸ **drop**(): `void` *Implementation of [TxDb](../interfaces/_types_.txdb.md).[drop](../interfaces/_types_.txdb.md#drop)* *Inherited from [TransactionDb](_engines_transactiondb_.transactiondb.md).[drop](_engines_transactiondb_.transactiondb.md#drop)* *Defined in [engines/TransactionDb.ts:59](https://github.com/polkadot-js/common/blob/ccfed2a/packages/db/src/engines/TransactionDb.ts#L59)* **Returns:** `void` ___ ## empty ▸ **empty**(): `void` *Implementation of [TxDb](../interfaces/_types_.txdb.md).[empty](../interfaces/_types_.txdb.md#empty)* *Inherited from [TransactionDb](_engines_transactiondb_.transactiondb.md).[empty](_engines_transactiondb_.transactiondb.md#empty)* *Defined in [engines/TransactionDb.ts:63](https://github.com/polkadot-js/common/blob/ccfed2a/packages/db/src/engines/TransactionDb.ts#L63)* **Returns:** `void` ___ ## get ▸ **get**(key: *`Uint8Array`*): `Uint8Array` | `null` *Implementation of [TxDb](../interfaces/_types_.txdb.md).[get](../interfaces/_types_.txdb.md#get)* *Inherited from [TransactionDb](_engines_transactiondb_.transactiondb.md).[get](_engines_transactiondb_.transactiondb.md#get)* *Defined in [engines/TransactionDb.ts:93](https://github.com/polkadot-js/common/blob/ccfed2a/packages/db/src/engines/TransactionDb.ts#L93)* **Parameters:** | Name | Type | | ------ | ------ | | key | `Uint8Array` | **Returns:** `Uint8Array` | `null` ___ ## maintain ▸ **maintain**(fn: *[ProgressCb](../modules/_types_.md#progresscb)*): `void` *Implementation of [TxDb](../interfaces/_types_.txdb.md).[maintain](../interfaces/_types_.txdb.md#maintain)* *Inherited from [TransactionDb](_engines_transactiondb_.transactiondb.md).[maintain](_engines_transactiondb_.transactiondb.md#maintain)* *Defined in [engines/TransactionDb.ts:71](https://github.com/polkadot-js/common/blob/ccfed2a/packages/db/src/engines/TransactionDb.ts#L71)* **Parameters:** | Name | Type | | ------ | ------ | | fn | [ProgressCb](../modules/_types_.md#progresscb) | **Returns:** `void` ___ ## open ▸ **open**(): `void` *Implementation of [TxDb](../interfaces/_types_.txdb.md).[open](../interfaces/_types_.txdb.md#open)* *Inherited from [TransactionDb](_engines_transactiondb_.transactiondb.md).[open](_engines_transactiondb_.transactiondb.md#open)* *Defined in [engines/TransactionDb.ts:55](https://github.com/polkadot-js/common/blob/ccfed2a/packages/db/src/engines/TransactionDb.ts#L55)* **Returns:** `void` ___ ## put ▸ **put**(key: *`Uint8Array`*, value: *`Uint8Array`*): `void` *Implementation of [TxDb](../interfaces/_types_.txdb.md).[put](../interfaces/_types_.txdb.md#put)* *Inherited from [TransactionDb](_engines_transactiondb_.transactiondb.md).[put](_engines_transactiondb_.transactiondb.md#put)* *Defined in [engines/TransactionDb.ts:107](https://github.com/polkadot-js/common/blob/ccfed2a/packages/db/src/engines/TransactionDb.ts#L107)* **Parameters:** | Name | Type | | ------ | ------ | | key | `Uint8Array` | | value | `Uint8Array` | **Returns:** `void` ___ ## rename ▸ **rename**(base: *`string`*, file: *`string`*): `void` *Implementation of [TxDb](../interfaces/_types_.txdb.md).[rename](../interfaces/_types_.txdb.md#rename)* *Inherited from [TransactionDb](_engines_transactiondb_.transactiondb.md).[rename](_engines_transactiondb_.transactiondb.md#rename)* *Defined in [engines/TransactionDb.ts:67](https://github.com/polkadot-js/common/blob/ccfed2a/packages/db/src/engines/TransactionDb.ts#L67)* **Parameters:** | Name | Type | | ------ | ------ | | base | `string` | | file | `string` | **Returns:** `void` ___ ## size ▸ **size**(): `number` *Implementation of [TxDb](../interfaces/_types_.txdb.md).[size](../interfaces/_types_.txdb.md#size)* *Inherited from [TransactionDb](_engines_transactiondb_.transactiondb.md).[size](_engines_transactiondb_.transactiondb.md#size)* *Defined in [engines/TransactionDb.ts:77](https://github.com/polkadot-js/common/blob/ccfed2a/packages/db/src/engines/TransactionDb.ts#L77)* **Returns:** `number` ___ ## transaction ▸ **transaction**(fn: *`function`*): `boolean` *Inherited from [TransactionDb](_engines_transactiondb_.transactiondb.md).[transaction](_engines_transactiondb_.transactiondb.md#transaction)* *Defined in [engines/TransactionDb.ts:29](https://github.com/polkadot-js/common/blob/ccfed2a/packages/db/src/engines/TransactionDb.ts#L29)* **Parameters:** | Name | Type | | ------ | ------ | | fn | `function` | **Returns:** `boolean` ___