UNPKG

@swaptoshi/dex-module

Version:

Klayr decentralized exchange (dex) on-chain module

81 lines 3.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.dexGenesisStoreSchema = void 0; const utils = require("@klayr/utils"); const stores_1 = require("./stores"); const genesisSchemaBuilder = (schema, keys) => { const { $id, ...rest } = utils.objects.cloneDeep(schema); const initialLength = Object.keys(schema.properties).length; for (let i = 0; i < keys.length; i += 1) { rest.required.push(keys[i].key); const properties = { fieldNumber: initialLength + 1 + i, dataType: keys[i].dataType, }; if (keys[i].format) { properties.format = keys[i].format; } rest.properties[keys[i].key] = properties; } return rest; }; exports.dexGenesisStoreSchema = { $id: '/dex/module/genesis', type: 'object', required: ['observationSubstore', 'poolSubstore', 'positionInfoSubstore', 'positionManagerSubstore', 'supportedTokenSubstore', 'tickBitmapSubstore', 'tickInfoSubstore', 'tokenSymbolSubstore'], properties: { observationSubstore: { fieldNumber: 1, type: 'array', items: genesisSchemaBuilder(stores_1.observationStoreSchema, [ { key: 'poolAddress', dataType: 'bytes', format: 'klayr32' }, { key: 'index', dataType: 'string' }, ]), }, poolSubstore: { fieldNumber: 2, type: 'array', items: genesisSchemaBuilder(stores_1.poolStoreSchema, []), }, positionInfoSubstore: { fieldNumber: 3, type: 'array', items: genesisSchemaBuilder(stores_1.positionInfoStoreSchema, [ { key: 'poolAddress', dataType: 'bytes', format: 'klayr32' }, { key: 'key', dataType: 'bytes' }, ]), }, positionManagerSubstore: { fieldNumber: 4, type: 'array', items: genesisSchemaBuilder(stores_1.positionManagerStoreSchema, []), }, supportedTokenSubstore: { fieldNumber: 5, type: 'array', items: genesisSchemaBuilder(stores_1.supportedTokenStoreSchema, []), }, tickBitmapSubstore: { fieldNumber: 6, type: 'array', items: genesisSchemaBuilder(stores_1.tickBitmapStoreSchema, [ { key: 'poolAddress', dataType: 'bytes', format: 'klayr32' }, { key: 'index', dataType: 'string' }, ]), }, tickInfoSubstore: { fieldNumber: 7, type: 'array', items: genesisSchemaBuilder(stores_1.tickInfoStoreSchema, [ { key: 'poolAddress', dataType: 'bytes', format: 'klayr32' }, { key: 'tick', dataType: 'string' }, ]), }, tokenSymbolSubstore: { fieldNumber: 8, type: 'array', items: genesisSchemaBuilder(stores_1.tokenSymbolStoreSchema, [{ key: 'tokenId', dataType: 'bytes' }]), }, }, }; //# sourceMappingURL=genesis.js.map