From ed65db5044958ae5e827f19253838f5aa955a640 Mon Sep 17 00:00:00 2001 From: Anton Rusev Date: Thu, 27 Jul 2023 14:17:15 +0300 Subject: [PATCH 1/8] feat: add local view execution module Signed-off-by: Anton Rusev --- packages/accounts/package.json | 1 + packages/accounts/src/contract.ts | 24 +- .../src/local-view-execution/index.ts | 85 ++++ .../src/local-view-execution/runtime.ts | 377 ++++++++++++++++++ .../src/local-view-execution/storage.ts | 48 +++ .../src/local-view-execution/types.ts | 5 + packages/accounts/test/test-utils.js | 43 ++ packages/accounts/tsconfig.json | 1 + pnpm-lock.yaml | 12 +- 9 files changed, 588 insertions(+), 8 deletions(-) create mode 100644 packages/accounts/src/local-view-execution/index.ts create mode 100644 packages/accounts/src/local-view-execution/runtime.ts create mode 100644 packages/accounts/src/local-view-execution/storage.ts create mode 100644 packages/accounts/src/local-view-execution/types.ts diff --git a/packages/accounts/package.json b/packages/accounts/package.json index 239fd836fc..2a4969d92a 100644 --- a/packages/accounts/package.json +++ b/packages/accounts/package.json @@ -27,6 +27,7 @@ "bn.js": "5.2.1", "borsh": "1.0.0", "depd": "^2.0.0", + "lru_map": "^0.4.1", "near-abi": "0.1.1" }, "devDependencies": { diff --git a/packages/accounts/src/contract.ts b/packages/accounts/src/contract.ts index a73e9a5a08..17dd1b0385 100644 --- a/packages/accounts/src/contract.ts +++ b/packages/accounts/src/contract.ts @@ -1,5 +1,6 @@ import { getTransactionLastResult } from '@near-js/utils'; import { ArgumentTypeError, PositionalArgsError } from '@near-js/types'; +import { LocalViewExecution } from './local-view-execution'; import Ajv from 'ajv'; import addFormats from 'ajv-formats'; import BN from 'bn.js'; @@ -99,6 +100,11 @@ export interface ContractMethods { * ABI defining this contract's interface. */ abi?: AbiRoot; + + /** + * Executes view methods locally. This flag is useful when multiple view calls will be made for the same blockId + */ + useLocalViewExecution: boolean; } /** @@ -138,6 +144,7 @@ export interface ContractMethods { export class Contract { readonly account: Account; readonly contractId: string; + readonly lve: LocalViewExecution; /** * @param account NEAR account to sign change method transactions @@ -147,7 +154,8 @@ export class Contract { constructor(account: Account, contractId: string, options: ContractMethods) { this.account = account; this.contractId = contractId; - const { viewMethods = [], changeMethods = [], abi: abiRoot } = options; + this.lve = new LocalViewExecution(account); + const { viewMethods = [], changeMethods = [], abi: abiRoot, useLocalViewExecution } = options; let viewMethodsWithAbi = viewMethods.map((name) => ({ name, abi: null as AbiFunction })); let changeMethodsWithAbi = changeMethods.map((name) => ({ name, abi: null as AbiFunction })); @@ -177,6 +185,20 @@ export class Contract { validateArguments(args, abi, ajv, abiRoot); } + if (useLocalViewExecution) { + try { + return await this.lve.viewFunction({ + contractId: this.contractId, + methodName: name, + args, + ...options, + }); + } catch (error) { + console.warn(`Local view execution failed with: "${error.message}"`); + console.warn(`Fallback to normal RPC call`); + } + } + return this.account.viewFunction({ contractId: this.contractId, methodName: name, diff --git a/packages/accounts/src/local-view-execution/index.ts b/packages/accounts/src/local-view-execution/index.ts new file mode 100644 index 0000000000..488dec4ed1 --- /dev/null +++ b/packages/accounts/src/local-view-execution/index.ts @@ -0,0 +1,85 @@ +import { BlockReference, ContractCodeView } from '@near-js/types'; +import { printTxOutcomeLogs } from '@near-js/utils'; +import { Account, FunctionCallOptions } from '../account'; +import { Storage } from './storage'; +import { Runtime } from './runtime'; +import { ContractState } from './types'; + +interface ViewFunctionCallOptions extends FunctionCallOptions { + blockQuery?: BlockReference +} + +export class LocalViewExecution { + private readonly account: Account; + private readonly storage: Storage; + + constructor(account: Account) { + this.account = account; + this.storage = new Storage(); + } + + private async fetchContractCode(contractId: string, blockQuery: BlockReference) { + const result = await this.account.connection.provider.query({ + request_type: 'view_code', + account_id: contractId, + ...blockQuery, + }); + + return result.code_base64; + } + + private async fetchContractState(blockQuery: BlockReference): Promise { + // TODO: handle state > 50kb + return this.account.viewState('', blockQuery); + } + + private async fetch(contractId: string, blockQuery: BlockReference) { + const block = await this.account.connection.provider.block(blockQuery); + const blockHash = block.header.hash; + const blockHeight = block.header.height; + const blockTimestamp = block.header.timestamp; + + const contractCode = await this.fetchContractCode(contractId, blockQuery); + const contractState = await this.fetchContractState(blockQuery); + + return { + blockHash, + blockHeight, + blockTimestamp, + contractCode, + contractState, + }; + } + + private async loadOrFetch(contractId: string, blockQuery: BlockReference) { + const stored = this.storage.load(blockQuery); + + if (stored) { + return stored; + } + + const { blockHash, ...fetched } = await this.fetch(contractId, blockQuery); + + this.storage.save(blockHash, fetched); + + return fetched; + } + + public async viewFunction({ contractId, methodName, args = {}, blockQuery = { finality: 'optimistic' }, ...ignored }: ViewFunctionCallOptions) { + const methodArgs = JSON.stringify(args); + + const { contractCode, contractState, blockHeight, blockTimestamp } = await this.loadOrFetch( + contractId, + blockQuery + ); + const runtime = new Runtime({ contractId, contractCode, contractState, blockHeight, blockTimestamp, methodArgs }); + + const { result, logs } = await runtime.execute(methodName); + + if (logs) { + printTxOutcomeLogs({ contractId, logs }); + } + + return JSON.parse(Buffer.from(result).toString()); + } +} diff --git a/packages/accounts/src/local-view-execution/runtime.ts b/packages/accounts/src/local-view-execution/runtime.ts new file mode 100644 index 0000000000..82e1b3c38d --- /dev/null +++ b/packages/accounts/src/local-view-execution/runtime.ts @@ -0,0 +1,377 @@ +import { createHash } from 'crypto'; +import { ContractState } from './types'; + +const notImplemented = + (name: string) => + () => { + throw new Error('method not implemented: ' + name); + }; + +const prohibitedInView = + (name: string) => + () => { + throw new Error('method not available for view calls: ' + name); + }; + +interface RuntimeCtx { + contractId: string, contractState: ContractState, blockHeight: number, blockTimestamp: number, methodArgs: string +} +interface RuntimeConstructorArgs extends RuntimeCtx { + // base64 encoded contract code + contractCode: string, +} +export class Runtime { + context: RuntimeCtx; + wasm: Buffer; + memory: WebAssembly.Memory; + registers: Record; + logs: any[]; + result: Buffer; + + constructor({ contractCode, ...context }: RuntimeConstructorArgs) { + this.context = context; + this.wasm = this.prepareWASM(Buffer.from(contractCode, 'base64')); + this.memory = new WebAssembly.Memory({ initial: 1024, maximum: 2048 }); + this.registers = {}; + this.logs = []; + this.result = Buffer.from([]); + } + + private readUTF16CStr(ptr: bigint) { + const arr: number[] = []; + const mem = new Uint16Array(this.memory.buffer); + let key = Number(ptr) / 2; + while (mem[key] != 0) { + arr.push(mem[key]); + key++; + } + return Buffer.from(Uint16Array.from(arr).buffer).toString('ucs2'); + } + + private readUTF8CStr(len: bigint, ptr: bigint) { + const arr: number[] = []; + const mem = new Uint8Array(this.memory.buffer); + let key = Number(ptr); + for (let i = 0; i < len && mem[key] != 0; i++) { + arr.push(mem[key]); + key++; + } + return Buffer.from(arr).toString('utf8'); + } + + private storageRead(keyLen: bigint, keyPtr: bigint) { + const storageKey = Buffer.from(new Uint8Array(this.memory.buffer, Number(keyPtr), Number(keyLen))); + + const stateVal = this.context.contractState.filter((obj) => Buffer.compare(obj.key, storageKey) === 0).map((obj) => obj.value); + + if (stateVal.length === 0) return null; + + return stateVal.length > 1 ? stateVal : stateVal[0]; + } + + private prepareWASM(input: Buffer) { + const parts = [] as Buffer[]; + + const magic = input.subarray(0, 4); + + if (magic.toString('utf8') !== '\0asm') { + throw new Error('Invalid magic number'); + } + + const version = input.readUInt32LE(4); + if (version != 1) { + throw new Error('Invalid version: ' + version); + } + + let offset = 8; + parts.push(input.subarray(0, offset)); + + function decodeLEB128() { + let result = 0; + let shift = 0; + let byte: number; + do { + byte = input[offset++]; + result |= (byte & 0x7f) << shift; + shift += 7; + } while (byte & 0x80); + return result; + } + + function decodeLimits() { + const flags = input[offset++]; + const hasMax = flags & 0x1; + const initial = decodeLEB128(); + const max = hasMax ? decodeLEB128() : null; + return { initial, max }; + } + + function decodeString() { + const length = decodeLEB128(); + const result = input.subarray(offset, offset + length); + offset += length; + return result.toString('utf8'); + } + + function encodeLEB128(value: number) { + const result: number[] = []; + do { + let byte = value & 0x7f; + value >>= 7; + if (value !== 0) { + byte |= 0x80; + } + result.push(byte); + } while (value !== 0); + return Buffer.from(result); + } + + function encodeString(value: string) { + const result = Buffer.from(value, 'utf8'); + return Buffer.concat([encodeLEB128(result.length), result]); + } + + do { + const sectionStart = offset; + const sectionId = input.readUInt8(offset); + offset++; + const sectionSize = decodeLEB128(); + const sectionEnd = offset + sectionSize; + + if (sectionId == 5) { + // Memory section + // Make sure it's empty and only imported memory is used + parts.push(Buffer.from([5, 1, 0])); + } else if (sectionId == 2) { + // Import section + const sectionParts: Buffer[] = []; + const numImports = decodeLEB128(); + for (let i = 0; i < numImports; i++) { + const importStart = offset; + decodeString(); + decodeString(); + const kind = input.readUInt8(offset); + offset++; + + let skipImport = false; + switch (kind) { + case 0: + // Function import + decodeLEB128(); // index + break; + case 1: + // Table import + offset++; // type + decodeLimits(); + break; + case 2: + // Memory import + decodeLimits(); + // NOTE: existing memory import is removed (so no need to add it to sectionParts) + skipImport = true; + break; + case 3: + // Global import + offset++; // type + offset++; // mutability + break; + default: + throw new Error('Invalid import kind: ' + kind); + } + + if (!skipImport) { + sectionParts.push(input.subarray(importStart, offset)); + } + } + + const importMemory = Buffer.concat([ + encodeString('env'), + encodeString('memory'), + Buffer.from([2]), // Memory import + // TODO: Check what values to use + Buffer.from([0]), + encodeLEB128(1), + ]); + + sectionParts.push(importMemory); + + const sectionData = Buffer.concat([ + encodeLEB128(sectionParts.length), + ...sectionParts, + ]); + + parts.push(Buffer.concat([ + Buffer.from([2]), // Import section + encodeLEB128(sectionData.length), + sectionData + ])); + } else if (sectionId == 7) { + // Export section + const sectionParts: Buffer[] = []; + const numExports = decodeLEB128(); + for (let i = 0; i < numExports; i++) { + const exportStart = offset; + decodeString(); + const kind = input.readUInt8(offset); + offset++; + decodeLEB128(); + + if (kind !== 2) { + // Pass through all exports except memory + sectionParts.push(input.subarray(exportStart, offset)); + } + } + + const sectionData = Buffer.concat([ + encodeLEB128(sectionParts.length), + ...sectionParts, + ]); + + parts.push(Buffer.concat([ + Buffer.from([7]), // Export section + encodeLEB128(sectionData.length), + sectionData + ])); + } else { + parts.push(input.subarray(sectionStart, sectionEnd)); + } + + offset = sectionEnd; + } while (offset < input.length); + + return Buffer.concat(parts); + } + + private getHostImports() { + return { + register_len: (registerId: bigint) => { + return BigInt(this.registers[registerId.toString()] ? this.registers[registerId.toString()].length : Number.MAX_SAFE_INTEGER); + }, + read_register: (registerId: bigint, ptr: bigint) => { + const mem = new Uint8Array(this.memory.buffer); + mem.set(this.registers[registerId.toString()] || Buffer.from([]), Number(ptr)); + }, + write_register: prohibitedInView('write_register'), + current_account_id: (registerId: bigint) => { + this.registers[registerId.toString()] = Buffer.from(this.context.contractId); + }, + signer_account_id: prohibitedInView('signer_account_id'), + signer_account_pk: prohibitedInView('signer_account_pk'), + predecessor_account_id: prohibitedInView('predecessor_account_id'), + input: (registerId: bigint) => { + this.registers[registerId.toString()] = Buffer.from(this.context.methodArgs); + }, + block_index: () => { + return BigInt(this.context.blockHeight); + }, + block_timestamp: () => { + return BigInt(this.context.blockTimestamp); + }, + epoch_height: notImplemented('epoch_height'), + storage_usage: notImplemented('storage_usage'), + account_balance: notImplemented('account_balance'), + account_locked_balance: notImplemented('account_locked_balance'), + attached_deposit: prohibitedInView('attached_deposit'), + prepaid_gas: prohibitedInView('prepaid_gas'), + used_gas: prohibitedInView('used_gas'), + random_seed: notImplemented('random_seed'), + sha256: (valueLen: bigint, valuePtr: bigint, registerId: bigint) => { + const value = new Uint8Array(this.memory.buffer, Number(valuePtr), Number(valueLen)); + const hash = createHash('sha256'); + hash.update(value); + this.registers[registerId.toString()] = hash.digest(); + }, + ripemd160: notImplemented('ripemd160'), + keccak256: notImplemented('keccak256'), + keccak512: notImplemented('keccak512'), + ecrecover: notImplemented('ecrecover'), + value_return: (valueLen: bigint, valuePtr: bigint) => { + this.result = Buffer.from(new Uint8Array(this.memory.buffer, Number(valuePtr), Number(valueLen))); + }, + panic: () => { + throw new Error('panic: explicit guest panic'); + }, + panic_utf8: (len: bigint, ptr: bigint) => { + throw new Error('panic: ' + this.readUTF8CStr(len, ptr)); + }, + abort: (msg_ptr: bigint, filename_ptr: bigint, line: number, col: number) => { + const msg = this.readUTF16CStr(msg_ptr); + const filename = this.readUTF16CStr(filename_ptr); + const message = `${msg} ${filename}:${line}:${col}`; + if (!msg || !filename) { + // TODO: Check when exactly this gets thrown in nearcore, as it's weird choice for empty C string + // TODO: Check what happens with actual invalid UTF-16 + throw new Error('abort: ' + 'String encoding is bad UTF-16 sequence.'); + } + throw new Error('abort: ' + message); + }, + log_utf8: (len: bigint, ptr: bigint) => { + this.logs.push(this.readUTF8CStr(len, ptr)); + }, + log_utf16: (len: bigint, ptr: bigint) => { + this.logs.push(this.readUTF8CStr(len, ptr)); + }, + promise_create: prohibitedInView('promise_create'), + promise_then: prohibitedInView('promise_then'), + promise_and: prohibitedInView('promise_and'), + promise_batch_create: prohibitedInView('promise_batch_create'), + promise_batch_then: prohibitedInView('promise_batch_then'), + promise_batch_action_create_account: prohibitedInView('promise_batch_action_create_account'), + promise_batch_action_deploy_contract: prohibitedInView('promise_batch_action_deploy_contract'), + promise_batch_action_function_call: prohibitedInView('promise_batch_action_function_call'), + promise_batch_action_function_call_weight: prohibitedInView('promise_batch_action_function_call_weight'), + promise_batch_action_transfer: prohibitedInView('promise_batch_action_transfer'), + promise_batch_action_stake: prohibitedInView('promise_batch_action_stake'), + promise_batch_action_add_key_with_full_access: prohibitedInView('promise_batch_action_add_key_with_full_access'), + promise_batch_action_add_key_with_function_call: prohibitedInView( + 'promise_batch_action_add_key_with_function_call' + ), + promise_batch_action_delete_key: prohibitedInView('promise_batch_action_delete_key'), + promise_batch_action_delete_account: prohibitedInView('promise_batch_action_delete_account'), + promise_results_count: prohibitedInView('promise_results_count'), + promise_result: prohibitedInView('promise_result'), + promise_return: prohibitedInView('promise_return'), + storage_write: prohibitedInView('storage_write'), + storage_read: (key_len: bigint, key_ptr: bigint, register_id: number): bigint => { + const result = this.storageRead(key_len, key_ptr); + + if (result == null) { + return BigInt(0); + } + + this.registers[register_id] = result; + return BigInt(1); + }, + storage_remove: prohibitedInView('storage_remove'), + storage_has_key: (key_len: bigint, key_ptr: bigint): bigint => { + const result = this.storageRead(key_len, key_ptr); + + if (result == null) { + return BigInt(0); + } + + return BigInt(1); + }, + validator_stake: notImplemented('validator_stake'), + validator_total_stake: notImplemented('validator_total_stake'), + }; + } + + async execute(methodName: string) { + const module = await WebAssembly.compile(this.wasm); + const instance = await WebAssembly.instantiate(module, { env: { ...this.getHostImports(), memory: this.memory } }); + + const callMethod = instance.exports[methodName] as CallableFunction | undefined; + + if (callMethod == undefined) { + throw new Error(`Contract method '${methodName}' does not exists in contract ${this.context.contractId} for block id ${this.context.blockHeight}`); + } + + callMethod(); + + return { + result: this.result, + logs: this.logs + }; + } +} diff --git a/packages/accounts/src/local-view-execution/storage.ts b/packages/accounts/src/local-view-execution/storage.ts new file mode 100644 index 0000000000..bb6adbcbe6 --- /dev/null +++ b/packages/accounts/src/local-view-execution/storage.ts @@ -0,0 +1,48 @@ +import { LRUMap } from 'lru_map'; +import { BlockHash, BlockReference } from '@near-js/types'; +import { ContractState } from './types'; + +export interface StorageData { + blockHeight: number, + blockTimestamp: number, + contractCode: string, + contractState: ContractState +} + +export interface StorageOptions { + max: number +} + +export class Storage { + private readonly cache: LRUMap; + + private static MAX_ELEMENTS = 100; + + // map block hash to block height + private blockHeights: Map; + + constructor(options: StorageOptions = { max: Storage.MAX_ELEMENTS }) { + this.cache = new LRUMap(options.max); + this.blockHeights = new Map(); + } + + public load(blockRef: BlockReference): StorageData | undefined { + const noBlockId = !('blockId' in blockRef); + + if (noBlockId) return undefined; + + let blockId = blockRef.blockId; + + // block hash is passed, so get its corresponding block height + if (blockId.toString().length == 44) { + blockId = this.blockHeights.get(blockId.toString()); + } + // get cached values for the given block height + return this.cache.get(blockId); + } + + public save(blockHash: BlockHash, { blockHeight, blockTimestamp, contractCode, contractState }: StorageData) { + this.blockHeights.set(blockHash, blockHeight); + this.cache.set(blockHeight, { blockHeight, blockTimestamp, contractCode, contractState }); + } +} diff --git a/packages/accounts/src/local-view-execution/types.ts b/packages/accounts/src/local-view-execution/types.ts new file mode 100644 index 0000000000..4f7965be6f --- /dev/null +++ b/packages/accounts/src/local-view-execution/types.ts @@ -0,0 +1,5 @@ +/* eslint-disable @typescript-eslint/no-empty-interface */ +export interface ContractState extends Array<{ + key: Buffer; + value: Buffer; +}> { } \ No newline at end of file diff --git a/packages/accounts/test/test-utils.js b/packages/accounts/test/test-utils.js index 7875a4b17a..7681c19952 100644 --- a/packages/accounts/test/test-utils.js +++ b/packages/accounts/test/test-utils.js @@ -2,6 +2,7 @@ const { KeyPair } = require('@near-js/crypto'); const { InMemoryKeyStore } = require('@near-js/keystores'); const BN = require('bn.js'); const fs = require('fs').promises; +const path = require('path'); const { Account, AccountMultisig, Contract, Connection, LocalAccountCreator } = require('../lib'); @@ -18,6 +19,36 @@ const MULTISIG_WASM_PATH = process.env.MULTISIG_WASM_PATH || './test/wasm/multis // least 32. const RANDOM_ACCOUNT_LENGTH = 40; +const GUESTBOOK_CONTRACT_ID = 'guestbook-1690363526419-7138950000000000'; +const GUESTBOOK_WASM_PATH = path.resolve(__dirname, `./wasm/guestbook.wasm`); +const GUESTBOOK_CONTRACT_STATE = [ + { + key: Buffer.from('U1RBVEU=', 'base64'), + value: Buffer.from( + 'eyJtZXNzYWdlcyI6eyJwcmVmaXgiOiJ2LXVpZCIsImxlbmd0aCI6Mn19', + 'base64' + ), + }, + { + key: Buffer.from('di11aWQAAAAA', 'base64'), + value: Buffer.from( + 'eyJwcmVtaXVtIjp0cnVlLCJzZW5kZXIiOiJkZXYtMTY4ODk4NzM5ODM2MC00NzExMjI2NjI3NTg2NyIsInRleHQiOiJhIG1lc3NhZ2UifQ==', + 'base64' + ), + }, + { + key: Buffer.from('di11aWQBAAAA', 'base64'), + value: Buffer.from( + 'eyJwcmVtaXVtIjp0cnVlLCJzZW5kZXIiOiJkZXYtMTY4ODk4NzM5ODM2MC00NzExMjI2NjI3NTg2NyIsInRleHQiOiJzZWNvbmQgbWVzc2FnZSJ9', + 'base64' + ), + }, +]; + +async function loadGuestBookContractCode() { + const contractCode = await fs.readFile(GUESTBOOK_WASM_PATH); + return contractCode.toString("base64"); +} async function setUpTestConnection() { const keyStore = new InMemoryKeyStore(); const config = Object.assign(require('./config')(process.env.NODE_ENV || 'test'), { @@ -90,6 +121,13 @@ async function deployContract(workingAccount, contractId) { return new Contract(workingAccount, contractId, HELLO_WASM_METHODS); } +async function deployContractGuestBook(workingAccount, contractId) { + const newPublicKey = await workingAccount.connection.signer.createKey(contractId, networkId); + const data = [...(await fs.readFile(GUESTBOOK_WASM_PATH))]; + const account = await workingAccount.createAndDeployContract(contractId, newPublicKey, data, HELLO_WASM_BALANCE); + return new Contract(account, contractId, { viewMethods: ['total_messages', 'get_messages'], changeMethods: ['add_message'], useLocalViewExecution: true}); +} + function sleep(time) { return new Promise(function (resolve) { setTimeout(resolve, time); @@ -121,6 +159,11 @@ module.exports = { deployContract, HELLO_WASM_PATH, HELLO_WASM_BALANCE, + loadGuestBookContractCode, + deployContractGuestBook, + GUESTBOOK_CONTRACT_ID, + GUESTBOOK_CONTRACT_STATE, + GUESTBOOK_WASM_PATH, sleep, waitFor, }; diff --git a/packages/accounts/tsconfig.json b/packages/accounts/tsconfig.json index fdc99be318..2081c160d8 100644 --- a/packages/accounts/tsconfig.json +++ b/packages/accounts/tsconfig.json @@ -3,6 +3,7 @@ "compilerOptions": { "preserveSymlinks": false, "outDir": "./lib", + "lib": ["es2021", "DOM"] }, "files": [ "src/index.ts" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6cf0c8ed04..22cc0eace2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2216,8 +2216,6 @@ packages: /ajv-formats@2.1.1(ajv@8.11.2): resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 peerDependenciesMeta: ajv: optional: true @@ -2606,9 +2604,9 @@ packages: resolution: {integrity: sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==} hasBin: true dependencies: - JSONStream: 1.3.5 combine-source-map: 0.8.0 defined: 1.0.1 + JSONStream: 1.3.5 safe-buffer: 5.2.1 through2: 2.0.5 umd: 3.0.3 @@ -2690,7 +2688,6 @@ packages: engines: {node: '>= 0.8'} hasBin: true dependencies: - JSONStream: 1.3.5 assert: 1.5.0 browser-pack: 6.1.0 browser-resolve: 1.11.3 @@ -2712,6 +2709,7 @@ packages: https-browserify: 1.0.0 inherits: 2.0.4 insert-module-globals: 7.2.1 + JSONStream: 1.3.5 labeled-stream-splicer: 2.0.2 mkdirp: 0.5.6 module-deps: 6.2.3 @@ -3154,8 +3152,8 @@ packages: engines: {node: '>=10'} hasBin: true dependencies: - JSONStream: 1.3.5 is-text-path: 1.0.1 + JSONStream: 1.3.5 lodash: 4.17.21 meow: 8.1.2 split2: 3.2.2 @@ -4845,11 +4843,11 @@ packages: resolution: {integrity: sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==} hasBin: true dependencies: - JSONStream: 1.3.5 acorn-node: 1.8.2 combine-source-map: 0.8.0 concat-stream: 1.6.2 is-buffer: 1.1.6 + JSONStream: 1.3.5 path-is-absolute: 1.0.1 process: 0.11.10 through2: 2.0.5 @@ -6263,7 +6261,6 @@ packages: engines: {node: '>= 0.8.0'} hasBin: true dependencies: - JSONStream: 1.3.5 browser-resolve: 2.0.0 cached-path-relative: 1.1.0 concat-stream: 1.6.2 @@ -6271,6 +6268,7 @@ packages: detective: 5.2.1 duplexer2: 0.1.4 inherits: 2.0.4 + JSONStream: 1.3.5 parents: 1.0.1 readable-stream: 2.3.8 resolve: 1.22.2 From 8bf0336576d76e39eeef1ed81bcbd1d4f8d9570f Mon Sep 17 00:00:00 2001 From: Anton Rusev Date: Thu, 27 Jul 2023 14:19:12 +0300 Subject: [PATCH 2/8] test: add unit & e2e tests Signed-off-by: Anton Rusev --- packages/accounts/test/contract.test.js | 74 ++++++++++++++ packages/accounts/test/lve_runtime.test.js | 103 ++++++++++++++++++++ packages/accounts/test/lve_storage.test.js | 106 +++++++++++++++++++++ packages/accounts/test/wasm/guestbook.wasm | Bin 0 -> 521463 bytes 4 files changed, 283 insertions(+) create mode 100644 packages/accounts/test/lve_runtime.test.js create mode 100644 packages/accounts/test/lve_storage.test.js create mode 100755 packages/accounts/test/wasm/guestbook.wasm diff --git a/packages/accounts/test/contract.test.js b/packages/accounts/test/contract.test.js index 21fd61f6b9..c5f00a3660 100644 --- a/packages/accounts/test/contract.test.js +++ b/packages/accounts/test/contract.test.js @@ -1,6 +1,7 @@ const { PositionalArgsError } = require('@near-js/types'); const { Contract } = require('../lib'); +const testUtils = require('./test-utils'); const account = { viewFunction({ contractId, methodName, args, parse, stringify, jsContract, blockQuery }) { @@ -100,3 +101,76 @@ describe('changeMethod', () => { }); }); }); + + +describe("local view execution", () => { + let nearjs; + let workingAccount; + let contract; + let blockQuery; + + jest.setTimeout(60000); + + beforeAll(async () => { + nearjs = await testUtils.setUpTestConnection(); + workingAccount = await testUtils.createAccount(nearjs); + contract = await testUtils.deployContractGuestBook(workingAccount, testUtils.generateUniqueString('guestbook')); + + await contract.add_message({text: "first message"}); + await contract.add_message({text: "second message"}); + + const block = await contract.account.connection.provider.block({finality: "optimistic"}); + + contract.account.connection.provider.query = jest.fn(contract.account.connection.provider.query); + blockQuery = { blockId: block.header.height }; + }); + + afterEach(() => { + jest.clearAllMocks(); + }); + + test('calls total_messages() function using RPC provider', async () => { + const totalMessages = await contract.total_messages({}, {blockQuery}); + + expect(contract.account.connection.provider.query).toHaveBeenCalledWith({ + request_type: 'view_code', + account_id: contract.contractId, + ...blockQuery, + }); + expect(totalMessages).toBe(2); + }); + + test('calls total_messages() function using cache data', async () => { + const totalMessages = await contract.total_messages({}, {blockQuery}); + + expect(contract.account.connection.provider.query).not.toHaveBeenCalled() + expect(totalMessages).toBe(2); + }); + + test('calls get_messages() function using cache data', async () => { + const messages = await contract.get_messages({}, {blockQuery}); + + expect(contract.account.connection.provider.query).not.toHaveBeenCalled() + expect(messages.length).toBe(2); + expect(messages[0].text).toEqual("first message"); + expect(messages[1].text).toEqual("second message"); + }); + + test('local execution fails and fallbacks to normal RPC call', async () => { + const _contract = new Contract(contract.account, contract.contractId, {viewMethods: ['get_msg'], useLocalViewExecution: true}); + _contract.account.viewFunction = jest.fn(_contract.account.viewFunction); + + try { + await _contract.get_msg({}, {blockQuery}); + } catch (error) { + expect(_contract.account.viewFunction).toHaveBeenCalledWith({ + contractId: _contract.contractId, + methodName: 'get_msg', + args: {}, + blockQuery, + }); + } + }); + + +}) \ No newline at end of file diff --git a/packages/accounts/test/lve_runtime.test.js b/packages/accounts/test/lve_runtime.test.js new file mode 100644 index 0000000000..103514494f --- /dev/null +++ b/packages/accounts/test/lve_runtime.test.js @@ -0,0 +1,103 @@ +const { + GUESTBOOK_CONTRACT_ID, + GUESTBOOK_CONTRACT_STATE, + loadGuestBookContractCode, +} = require("./test-utils"); +const { Runtime } = require("../lib/local-view-execution/runtime"); + +let contractCode; +const blockHeight = 1; +const blockTimestamp = Math.floor(Date.now() * 1000000); +const contractState = GUESTBOOK_CONTRACT_STATE; + +const parse = (result) => JSON.parse(Buffer.from(result).toString()); + +const newRuntime = (methodArgs = {}) => { + methodArgs = JSON.stringify(methodArgs); + + return new Runtime({ + contractId: GUESTBOOK_CONTRACT_ID, + contractCode, + contractState, + blockHeight, + blockTimestamp, + methodArgs, + }); +}; + +describe("Local View Execution - Runtime", () => { + beforeAll(async () => { + contractCode = await loadGuestBookContractCode(); + }); + + test("execute total_messages function in WASM runtime", async () => { + const methodName = "total_messages"; + const methodArgs = {}; + + const runtime = newRuntime(methodArgs); + + const { result } = await runtime.execute(methodName); + + expect(parse(result)).toBe(2); + }); + + test("execute get_messages(0, 1) function in WASM runtime", async () => { + const methodName = "get_messages"; + const methodArgs = { from_index: 0, limit: 1 }; + + const runtime = newRuntime(methodArgs); + + const { result } = await runtime.execute(methodName); + const expected = contractState[1].value; // "{\"premium\":true,\"sender\":\"dev-1688987398360-47112266275867\",\"text\":\"a message\"}" + + expect(parse(result)).toEqual([parse(expected)]); + }); + + test("executes get_messages(0, 10) function in WASM runtime", async () => { + const methodName = "get_messages"; + const methodArgs = { from_index: 0, limit: 10 }; + + const runtime = newRuntime(methodArgs); + + const { result } = await runtime.execute(methodName); + + expect(parse(result)).toEqual([ + parse(contractState[1].value), + parse(contractState[2].value), + ]); + }); + + test("executes get_messages(1, 1) function in WASM runtime", async () => { + const methodName = "get_messages"; + const methodArgs = { from_index: 1, limit: 1 }; + + const runtime = newRuntime(methodArgs); + + const { result } = await runtime.execute(methodName); + + expect(parse(result)).toEqual([parse(contractState[2].value)]); + }); + + test("executes get_messages({}) function with ignored args in WASM runtime", async () => { + const methodName = "get_messages"; + const methodArgs = { fromInde: 0, Limit: 1 }; + + const runtime = newRuntime(methodArgs); + + const { result } = await runtime.execute(methodName); + + expect(parse(result)).toEqual([ + parse(contractState[1].value), + parse(contractState[2].value), + ]); + }); + + test("throws UnknownContractMethodError on non-existing function from WASM runtime", async () => { + const methodName = "unknown_method"; + const methodArgs = { from_index: 1, limit: 1 }; + + const runtime = newRuntime(methodArgs); + + await expect(runtime.execute(methodName)).rejects.toThrow(); + }); +}); diff --git a/packages/accounts/test/lve_storage.test.js b/packages/accounts/test/lve_storage.test.js new file mode 100644 index 0000000000..e5108c56e9 --- /dev/null +++ b/packages/accounts/test/lve_storage.test.js @@ -0,0 +1,106 @@ +const crypto = require("crypto"); +const { Storage } = require("../lib/local-view-execution/storage"); +const { + GUESTBOOK_CONTRACT_STATE, + loadGuestBookContractCode, +} = require("./test-utils"); + +let contractCode; +const contractState = GUESTBOOK_CONTRACT_STATE; +const blockHash = "G2DF9Pe4KegQK7PkcxDu5cxakvcy99zgrFZEadRCxrwF"; + +const blockHeight = 1; +const blockTimestamp = Math.floor(Date.now() * 1000000); + +const createBlockHash = (data) => + crypto.createHash("sha256").update(JSON.stringify(data)).digest("base64"); + +describe("Local View Execution - Storage", () => { + beforeAll(async () => { + contractCode = await loadGuestBookContractCode(); + }); + + test("load empty cached data", async () => { + const storage = new Storage(); + + const data = storage.load({}); + + expect(data).toBe(undefined); + }); + + test("load empty cached data by block hash", async () => { + const storage = new Storage(); + + const data = storage.load({ blockId: blockHash }); + + expect(data).toBe(undefined); + }); + + test("load empty cached data by block height", async () => { + const storage = new Storage(); + + const data = storage.load({ blockId: blockHeight }); + + expect(data).toBe(undefined); + }); + + test("save & load cached data by block height", async () => { + const storage = new Storage(); + const data = { + blockHeight, + blockTimestamp, + contractCode, + contractState, + }; + + storage.save(blockHash, data); + + const stored = storage.load({ blockId: blockHeight }); + + expect(stored).toEqual(data); + }); + + test("save & load cached data by block hash", async () => { + const storage = new Storage(); + const data = { + blockHeight, + blockTimestamp, + contractCode, + contractState, + }; + + storage.save(blockHash, data); + + const stored = storage.load({ blockId: blockHash }); + + expect(stored).toEqual(data); + }); + + test("overwrite the less-recently used value", async () => { + const storage = new Storage({ max: 2 }); + + const data = { + blockHeight, + blockTimestamp, + contractCode, + contractState, + }; + + const firstData = { ...data, blockHeight: 0 }; + const secondData = { ...data, blockHeight: 1 }; + const newData = { ...data, blockHeight: 2 }; + + storage.save(createBlockHash(firstData), firstData); + storage.save(createBlockHash(secondData), secondData); + + // the less-recently used value + expect(storage.load({ blockId: 0 })).toEqual(firstData); + expect(storage.load({ blockId: 1 })).toEqual(secondData); + + storage.save(createBlockHash(newData), newData); + + expect(storage.load({ blockId: 0 })).toBe(undefined); + expect(storage.load({ blockId: 1 })).toEqual(secondData); + expect(storage.load({ blockId: 2 })).toEqual(newData); + }); +}); diff --git a/packages/accounts/test/wasm/guestbook.wasm b/packages/accounts/test/wasm/guestbook.wasm new file mode 100755 index 0000000000000000000000000000000000000000..5bfbdbb7b83bbbd78d86cbf58945f18e9e5c01a4 GIT binary patch literal 521463 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 literal 0 HcmV?d00001 From 313d948c1eb4611027c449f062ff10339f28bdca Mon Sep 17 00:00:00 2001 From: Anton Rusev Date: Thu, 27 Jul 2023 14:31:27 +0300 Subject: [PATCH 3/8] chore: fix lint Signed-off-by: Anton Rusev --- packages/accounts/test/contract.test.js | 32 ++++++++++------------ packages/accounts/test/lve_runtime.test.js | 32 +++++++++++----------- packages/accounts/test/lve_storage.test.js | 24 ++++++++-------- packages/accounts/test/test-utils.js | 6 ++-- 4 files changed, 46 insertions(+), 48 deletions(-) diff --git a/packages/accounts/test/contract.test.js b/packages/accounts/test/contract.test.js index c5f00a3660..43b49121c3 100644 --- a/packages/accounts/test/contract.test.js +++ b/packages/accounts/test/contract.test.js @@ -103,7 +103,7 @@ describe('changeMethod', () => { }); -describe("local view execution", () => { +describe('local view execution', () => { let nearjs; let workingAccount; let contract; @@ -116,10 +116,10 @@ describe("local view execution", () => { workingAccount = await testUtils.createAccount(nearjs); contract = await testUtils.deployContractGuestBook(workingAccount, testUtils.generateUniqueString('guestbook')); - await contract.add_message({text: "first message"}); - await contract.add_message({text: "second message"}); + await contract.add_message({ text: 'first message' }); + await contract.add_message({ text: 'second message' }); - const block = await contract.account.connection.provider.block({finality: "optimistic"}); + const block = await contract.account.connection.provider.block({ finality: 'optimistic' }); contract.account.connection.provider.query = jest.fn(contract.account.connection.provider.query); blockQuery = { blockId: block.header.height }; @@ -130,7 +130,7 @@ describe("local view execution", () => { }); test('calls total_messages() function using RPC provider', async () => { - const totalMessages = await contract.total_messages({}, {blockQuery}); + const totalMessages = await contract.total_messages({}, { blockQuery }); expect(contract.account.connection.provider.query).toHaveBeenCalledWith({ request_type: 'view_code', @@ -141,27 +141,27 @@ describe("local view execution", () => { }); test('calls total_messages() function using cache data', async () => { - const totalMessages = await contract.total_messages({}, {blockQuery}); + const totalMessages = await contract.total_messages({}, { blockQuery }); - expect(contract.account.connection.provider.query).not.toHaveBeenCalled() + expect(contract.account.connection.provider.query).not.toHaveBeenCalled(); expect(totalMessages).toBe(2); }); test('calls get_messages() function using cache data', async () => { - const messages = await contract.get_messages({}, {blockQuery}); + const messages = await contract.get_messages({}, { blockQuery }); - expect(contract.account.connection.provider.query).not.toHaveBeenCalled() + expect(contract.account.connection.provider.query).not.toHaveBeenCalled(); expect(messages.length).toBe(2); - expect(messages[0].text).toEqual("first message"); - expect(messages[1].text).toEqual("second message"); + expect(messages[0].text).toEqual('first message'); + expect(messages[1].text).toEqual('second message'); }); test('local execution fails and fallbacks to normal RPC call', async () => { - const _contract = new Contract(contract.account, contract.contractId, {viewMethods: ['get_msg'], useLocalViewExecution: true}); + const _contract = new Contract(contract.account, contract.contractId, { viewMethods: ['get_msg'], useLocalViewExecution: true }); _contract.account.viewFunction = jest.fn(_contract.account.viewFunction); try { - await _contract.get_msg({}, {blockQuery}); + await _contract.get_msg({}, { blockQuery }); } catch (error) { expect(_contract.account.viewFunction).toHaveBeenCalledWith({ contractId: _contract.contractId, @@ -170,7 +170,5 @@ describe("local view execution", () => { blockQuery, }); } - }); - - -}) \ No newline at end of file + }); +}); \ No newline at end of file diff --git a/packages/accounts/test/lve_runtime.test.js b/packages/accounts/test/lve_runtime.test.js index 103514494f..c36aee28fd 100644 --- a/packages/accounts/test/lve_runtime.test.js +++ b/packages/accounts/test/lve_runtime.test.js @@ -2,8 +2,8 @@ const { GUESTBOOK_CONTRACT_ID, GUESTBOOK_CONTRACT_STATE, loadGuestBookContractCode, -} = require("./test-utils"); -const { Runtime } = require("../lib/local-view-execution/runtime"); +} = require('./test-utils'); +const { Runtime } = require('../lib/local-view-execution/runtime'); let contractCode; const blockHeight = 1; @@ -25,13 +25,13 @@ const newRuntime = (methodArgs = {}) => { }); }; -describe("Local View Execution - Runtime", () => { +describe('Local View Execution - Runtime', () => { beforeAll(async () => { contractCode = await loadGuestBookContractCode(); }); - test("execute total_messages function in WASM runtime", async () => { - const methodName = "total_messages"; + test('execute total_messages function in WASM runtime', async () => { + const methodName = 'total_messages'; const methodArgs = {}; const runtime = newRuntime(methodArgs); @@ -41,20 +41,20 @@ describe("Local View Execution - Runtime", () => { expect(parse(result)).toBe(2); }); - test("execute get_messages(0, 1) function in WASM runtime", async () => { - const methodName = "get_messages"; + test('execute get_messages(0, 1) function in WASM runtime', async () => { + const methodName = 'get_messages'; const methodArgs = { from_index: 0, limit: 1 }; const runtime = newRuntime(methodArgs); const { result } = await runtime.execute(methodName); - const expected = contractState[1].value; // "{\"premium\":true,\"sender\":\"dev-1688987398360-47112266275867\",\"text\":\"a message\"}" + const expected = contractState[1].value; // '{\'premium\':true,\'sender\':\'dev-1688987398360-47112266275867\',\'text\':\'a message\'}' expect(parse(result)).toEqual([parse(expected)]); }); - test("executes get_messages(0, 10) function in WASM runtime", async () => { - const methodName = "get_messages"; + test('executes get_messages(0, 10) function in WASM runtime', async () => { + const methodName = 'get_messages'; const methodArgs = { from_index: 0, limit: 10 }; const runtime = newRuntime(methodArgs); @@ -67,8 +67,8 @@ describe("Local View Execution - Runtime", () => { ]); }); - test("executes get_messages(1, 1) function in WASM runtime", async () => { - const methodName = "get_messages"; + test('executes get_messages(1, 1) function in WASM runtime', async () => { + const methodName = 'get_messages'; const methodArgs = { from_index: 1, limit: 1 }; const runtime = newRuntime(methodArgs); @@ -78,8 +78,8 @@ describe("Local View Execution - Runtime", () => { expect(parse(result)).toEqual([parse(contractState[2].value)]); }); - test("executes get_messages({}) function with ignored args in WASM runtime", async () => { - const methodName = "get_messages"; + test('executes get_messages({}) function with ignored args in WASM runtime', async () => { + const methodName = 'get_messages'; const methodArgs = { fromInde: 0, Limit: 1 }; const runtime = newRuntime(methodArgs); @@ -92,8 +92,8 @@ describe("Local View Execution - Runtime", () => { ]); }); - test("throws UnknownContractMethodError on non-existing function from WASM runtime", async () => { - const methodName = "unknown_method"; + test('throws UnknownContractMethodError on non-existing function from WASM runtime', async () => { + const methodName = 'unknown_method'; const methodArgs = { from_index: 1, limit: 1 }; const runtime = newRuntime(methodArgs); diff --git a/packages/accounts/test/lve_storage.test.js b/packages/accounts/test/lve_storage.test.js index e5108c56e9..bd455bc41d 100644 --- a/packages/accounts/test/lve_storage.test.js +++ b/packages/accounts/test/lve_storage.test.js @@ -1,26 +1,26 @@ -const crypto = require("crypto"); -const { Storage } = require("../lib/local-view-execution/storage"); +const crypto = require('crypto'); +const { Storage } = require('../lib/local-view-execution/storage'); const { GUESTBOOK_CONTRACT_STATE, loadGuestBookContractCode, -} = require("./test-utils"); +} = require('./test-utils'); let contractCode; const contractState = GUESTBOOK_CONTRACT_STATE; -const blockHash = "G2DF9Pe4KegQK7PkcxDu5cxakvcy99zgrFZEadRCxrwF"; +const blockHash = 'G2DF9Pe4KegQK7PkcxDu5cxakvcy99zgrFZEadRCxrwF'; const blockHeight = 1; const blockTimestamp = Math.floor(Date.now() * 1000000); const createBlockHash = (data) => - crypto.createHash("sha256").update(JSON.stringify(data)).digest("base64"); + crypto.createHash('sha256').update(JSON.stringify(data)).digest('base64'); -describe("Local View Execution - Storage", () => { +describe('Local View Execution - Storage', () => { beforeAll(async () => { contractCode = await loadGuestBookContractCode(); }); - test("load empty cached data", async () => { + test('load empty cached data', async () => { const storage = new Storage(); const data = storage.load({}); @@ -28,7 +28,7 @@ describe("Local View Execution - Storage", () => { expect(data).toBe(undefined); }); - test("load empty cached data by block hash", async () => { + test('load empty cached data by block hash', async () => { const storage = new Storage(); const data = storage.load({ blockId: blockHash }); @@ -36,7 +36,7 @@ describe("Local View Execution - Storage", () => { expect(data).toBe(undefined); }); - test("load empty cached data by block height", async () => { + test('load empty cached data by block height', async () => { const storage = new Storage(); const data = storage.load({ blockId: blockHeight }); @@ -44,7 +44,7 @@ describe("Local View Execution - Storage", () => { expect(data).toBe(undefined); }); - test("save & load cached data by block height", async () => { + test('save & load cached data by block height', async () => { const storage = new Storage(); const data = { blockHeight, @@ -60,7 +60,7 @@ describe("Local View Execution - Storage", () => { expect(stored).toEqual(data); }); - test("save & load cached data by block hash", async () => { + test('save & load cached data by block hash', async () => { const storage = new Storage(); const data = { blockHeight, @@ -76,7 +76,7 @@ describe("Local View Execution - Storage", () => { expect(stored).toEqual(data); }); - test("overwrite the less-recently used value", async () => { + test('overwrite the less-recently used value', async () => { const storage = new Storage({ max: 2 }); const data = { diff --git a/packages/accounts/test/test-utils.js b/packages/accounts/test/test-utils.js index 7681c19952..14bbf577d4 100644 --- a/packages/accounts/test/test-utils.js +++ b/packages/accounts/test/test-utils.js @@ -20,7 +20,7 @@ const MULTISIG_WASM_PATH = process.env.MULTISIG_WASM_PATH || './test/wasm/multis const RANDOM_ACCOUNT_LENGTH = 40; const GUESTBOOK_CONTRACT_ID = 'guestbook-1690363526419-7138950000000000'; -const GUESTBOOK_WASM_PATH = path.resolve(__dirname, `./wasm/guestbook.wasm`); +const GUESTBOOK_WASM_PATH = path.resolve(__dirname, './wasm/guestbook.wasm'); const GUESTBOOK_CONTRACT_STATE = [ { key: Buffer.from('U1RBVEU=', 'base64'), @@ -47,7 +47,7 @@ const GUESTBOOK_CONTRACT_STATE = [ async function loadGuestBookContractCode() { const contractCode = await fs.readFile(GUESTBOOK_WASM_PATH); - return contractCode.toString("base64"); + return contractCode.toString('base64'); } async function setUpTestConnection() { const keyStore = new InMemoryKeyStore(); @@ -125,7 +125,7 @@ async function deployContractGuestBook(workingAccount, contractId) { const newPublicKey = await workingAccount.connection.signer.createKey(contractId, networkId); const data = [...(await fs.readFile(GUESTBOOK_WASM_PATH))]; const account = await workingAccount.createAndDeployContract(contractId, newPublicKey, data, HELLO_WASM_BALANCE); - return new Contract(account, contractId, { viewMethods: ['total_messages', 'get_messages'], changeMethods: ['add_message'], useLocalViewExecution: true}); + return new Contract(account, contractId, { viewMethods: ['total_messages', 'get_messages'], changeMethods: ['add_message'], useLocalViewExecution: true }); } function sleep(time) { From ec64e5be8c4063c10dab93f2a4cdb4f0a15a0b27 Mon Sep 17 00:00:00 2001 From: Anton Rusev Date: Thu, 27 Jul 2023 17:02:46 +0300 Subject: [PATCH 4/8] refactor: extract runtime host functions Signed-off-by: Anton Rusev --- .../src/local-view-execution/runtime.ts | 186 ++++++++++-------- 1 file changed, 103 insertions(+), 83 deletions(-) diff --git a/packages/accounts/src/local-view-execution/runtime.ts b/packages/accounts/src/local-view-execution/runtime.ts index 82e1b3c38d..d62f8263b5 100644 --- a/packages/accounts/src/local-view-execution/runtime.ts +++ b/packages/accounts/src/local-view-execution/runtime.ts @@ -188,7 +188,6 @@ export class Runtime { encodeString('env'), encodeString('memory'), Buffer.from([2]), // Memory import - // TODO: Check what values to use Buffer.from([0]), encodeLEB128(1), ]); @@ -242,75 +241,119 @@ export class Runtime { return Buffer.concat(parts); } + // Host functions + private getRegisterLength (registerId: bigint) { + return BigInt(this.registers[registerId.toString()] ? this.registers[registerId.toString()].length : Number.MAX_SAFE_INTEGER); + } + + private readFromRegister (registerId: bigint, ptr: bigint) { + const mem = new Uint8Array(this.memory.buffer); + mem.set(this.registers[registerId.toString()] || Buffer.from([]), Number(ptr)); + } + + private getCurrentAccountId (registerId: bigint) { + this.registers[registerId.toString()] = Buffer.from(this.context.contractId); + } + + private inputMethodArgs (registerId: bigint) { + this.registers[registerId.toString()] = Buffer.from(this.context.methodArgs); + } + + private getBlockHeight () { + return BigInt(this.context.blockHeight); + } + + private getBlockTimestamp () { + return BigInt(this.context.blockTimestamp); + } + + private sha256 (valueLen: bigint, valuePtr: bigint, registerId: bigint) { + const value = new Uint8Array(this.memory.buffer, Number(valuePtr), Number(valueLen)); + const hash = createHash('sha256'); + hash.update(value); + this.registers[registerId.toString()] = hash.digest(); + } + + private returnValue (valueLen: bigint, valuePtr: bigint) { + this.result = Buffer.from(new Uint8Array(this.memory.buffer, Number(valuePtr), Number(valueLen))); + } + + private panic (message: string) { + throw new Error('panic: ' + message); + } + + private abort (msg_ptr: bigint, filename_ptr: bigint, line: number, col: number) { + const msg = this.readUTF16CStr(msg_ptr); + const filename = this.readUTF16CStr(filename_ptr); + const message = `${msg} ${filename}:${line}:${col}`; + if (!msg || !filename) { + throw new Error('abort: ' + 'String encoding is bad UTF-16 sequence.'); + } + throw new Error('abort: ' + message); + } + + private appendToLog (len: bigint, ptr: bigint) { + this.logs.push(this.readUTF8CStr(len, ptr)); + } + + private readStorage (key_len: bigint, key_ptr: bigint, register_id: number): bigint { + const result = this.storageRead(key_len, key_ptr); + + if (result == null) { + return BigInt(0); + } + + this.registers[register_id] = result; + return BigInt(1); + } + + private hasStorageKey (key_len: bigint, key_ptr: bigint): bigint { + const result = this.storageRead(key_len, key_ptr); + + if (result == null) { + return BigInt(0); + } + + return BigInt(1); + } + private getHostImports() { return { - register_len: (registerId: bigint) => { - return BigInt(this.registers[registerId.toString()] ? this.registers[registerId.toString()].length : Number.MAX_SAFE_INTEGER); - }, - read_register: (registerId: bigint, ptr: bigint) => { - const mem = new Uint8Array(this.memory.buffer); - mem.set(this.registers[registerId.toString()] || Buffer.from([]), Number(ptr)); - }, - write_register: prohibitedInView('write_register'), - current_account_id: (registerId: bigint) => { - this.registers[registerId.toString()] = Buffer.from(this.context.contractId); - }, - signer_account_id: prohibitedInView('signer_account_id'), - signer_account_pk: prohibitedInView('signer_account_pk'), - predecessor_account_id: prohibitedInView('predecessor_account_id'), - input: (registerId: bigint) => { - this.registers[registerId.toString()] = Buffer.from(this.context.methodArgs); - }, - block_index: () => { - return BigInt(this.context.blockHeight); - }, - block_timestamp: () => { - return BigInt(this.context.blockTimestamp); - }, + register_len: this.getRegisterLength, + read_register: this.readFromRegister, + current_account_id: this.getCurrentAccountId, + input: this.inputMethodArgs, + block_index: this.getBlockHeight, + block_timestamp: this.getBlockTimestamp, + sha256: this.sha256, + value_return: this.returnValue, + abort: this.abort, + log_utf8: this.appendToLog, + log_utf16: this.appendToLog, + storage_read: this.readStorage, + storage_has_key: this.hasStorageKey, + panic: () => this.panic('explicit guest panic'), + panic_utf8: (len: bigint, ptr: bigint) => this.panic(this.readUTF8CStr(len, ptr)), + // Not implemented epoch_height: notImplemented('epoch_height'), storage_usage: notImplemented('storage_usage'), account_balance: notImplemented('account_balance'), account_locked_balance: notImplemented('account_locked_balance'), - attached_deposit: prohibitedInView('attached_deposit'), - prepaid_gas: prohibitedInView('prepaid_gas'), - used_gas: prohibitedInView('used_gas'), random_seed: notImplemented('random_seed'), - sha256: (valueLen: bigint, valuePtr: bigint, registerId: bigint) => { - const value = new Uint8Array(this.memory.buffer, Number(valuePtr), Number(valueLen)); - const hash = createHash('sha256'); - hash.update(value); - this.registers[registerId.toString()] = hash.digest(); - }, ripemd160: notImplemented('ripemd160'), keccak256: notImplemented('keccak256'), keccak512: notImplemented('keccak512'), ecrecover: notImplemented('ecrecover'), - value_return: (valueLen: bigint, valuePtr: bigint) => { - this.result = Buffer.from(new Uint8Array(this.memory.buffer, Number(valuePtr), Number(valueLen))); - }, - panic: () => { - throw new Error('panic: explicit guest panic'); - }, - panic_utf8: (len: bigint, ptr: bigint) => { - throw new Error('panic: ' + this.readUTF8CStr(len, ptr)); - }, - abort: (msg_ptr: bigint, filename_ptr: bigint, line: number, col: number) => { - const msg = this.readUTF16CStr(msg_ptr); - const filename = this.readUTF16CStr(filename_ptr); - const message = `${msg} ${filename}:${line}:${col}`; - if (!msg || !filename) { - // TODO: Check when exactly this gets thrown in nearcore, as it's weird choice for empty C string - // TODO: Check what happens with actual invalid UTF-16 - throw new Error('abort: ' + 'String encoding is bad UTF-16 sequence.'); - } - throw new Error('abort: ' + message); - }, - log_utf8: (len: bigint, ptr: bigint) => { - this.logs.push(this.readUTF8CStr(len, ptr)); - }, - log_utf16: (len: bigint, ptr: bigint) => { - this.logs.push(this.readUTF8CStr(len, ptr)); - }, + validator_stake: notImplemented('validator_stake'), + validator_total_stake: notImplemented('validator_total_stake'), + // Prohibited + write_register: prohibitedInView('write_register'), + signer_account_id: prohibitedInView('signer_account_id'), + signer_account_pk: prohibitedInView('signer_account_pk'), + predecessor_account_id: prohibitedInView('predecessor_account_id'), + attached_deposit: prohibitedInView('attached_deposit'), + prepaid_gas: prohibitedInView('prepaid_gas'), + used_gas: prohibitedInView('used_gas'), promise_create: prohibitedInView('promise_create'), promise_then: prohibitedInView('promise_then'), promise_and: prohibitedInView('promise_and'), @@ -323,37 +366,14 @@ export class Runtime { promise_batch_action_transfer: prohibitedInView('promise_batch_action_transfer'), promise_batch_action_stake: prohibitedInView('promise_batch_action_stake'), promise_batch_action_add_key_with_full_access: prohibitedInView('promise_batch_action_add_key_with_full_access'), - promise_batch_action_add_key_with_function_call: prohibitedInView( - 'promise_batch_action_add_key_with_function_call' - ), + promise_batch_action_add_key_with_function_call: prohibitedInView('promise_batch_action_add_key_with_function_call'), promise_batch_action_delete_key: prohibitedInView('promise_batch_action_delete_key'), promise_batch_action_delete_account: prohibitedInView('promise_batch_action_delete_account'), promise_results_count: prohibitedInView('promise_results_count'), promise_result: prohibitedInView('promise_result'), promise_return: prohibitedInView('promise_return'), storage_write: prohibitedInView('storage_write'), - storage_read: (key_len: bigint, key_ptr: bigint, register_id: number): bigint => { - const result = this.storageRead(key_len, key_ptr); - - if (result == null) { - return BigInt(0); - } - - this.registers[register_id] = result; - return BigInt(1); - }, storage_remove: prohibitedInView('storage_remove'), - storage_has_key: (key_len: bigint, key_ptr: bigint): bigint => { - const result = this.storageRead(key_len, key_ptr); - - if (result == null) { - return BigInt(0); - } - - return BigInt(1); - }, - validator_stake: notImplemented('validator_stake'), - validator_total_stake: notImplemented('validator_total_stake'), }; } From 277012016174e4da31474f49e6dd16d6e8a5a990 Mon Sep 17 00:00:00 2001 From: Anton Rusev Date: Fri, 4 Aug 2023 11:00:18 +0300 Subject: [PATCH 5/8] chore: remove todo comment Signed-off-by: Anton Rusev --- packages/accounts/src/local-view-execution/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/accounts/src/local-view-execution/index.ts b/packages/accounts/src/local-view-execution/index.ts index 488dec4ed1..d231c9a408 100644 --- a/packages/accounts/src/local-view-execution/index.ts +++ b/packages/accounts/src/local-view-execution/index.ts @@ -29,7 +29,6 @@ export class LocalViewExecution { } private async fetchContractState(blockQuery: BlockReference): Promise { - // TODO: handle state > 50kb return this.account.viewState('', blockQuery); } From 9f092dc57955a40d2e56a2961e5f646116820f4c Mon Sep 17 00:00:00 2001 From: Anton Rusev Date: Fri, 4 Aug 2023 13:54:06 +0300 Subject: [PATCH 6/8] fix: bind the runtime class to the host functions Signed-off-by: Anton Rusev --- .../src/local-view-execution/runtime.ts | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/accounts/src/local-view-execution/runtime.ts b/packages/accounts/src/local-view-execution/runtime.ts index d62f8263b5..d684348052 100644 --- a/packages/accounts/src/local-view-execution/runtime.ts +++ b/packages/accounts/src/local-view-execution/runtime.ts @@ -319,19 +319,19 @@ export class Runtime { private getHostImports() { return { - register_len: this.getRegisterLength, - read_register: this.readFromRegister, - current_account_id: this.getCurrentAccountId, - input: this.inputMethodArgs, - block_index: this.getBlockHeight, - block_timestamp: this.getBlockTimestamp, - sha256: this.sha256, - value_return: this.returnValue, - abort: this.abort, - log_utf8: this.appendToLog, - log_utf16: this.appendToLog, - storage_read: this.readStorage, - storage_has_key: this.hasStorageKey, + register_len: this.getRegisterLength.bind(this), + read_register: this.readFromRegister.bind(this), + current_account_id: this.getCurrentAccountId.bind(this), + input: this.inputMethodArgs.bind(this), + block_index: this.getBlockHeight.bind(this), + block_timestamp: this.getBlockTimestamp.bind(this), + sha256: this.sha256.bind(this), + value_return: this.returnValue.bind(this), + abort: this.abort.bind(this), + log_utf8: this.appendToLog.bind(this), + log_utf16: this.appendToLog.bind(this), + storage_read: this.readStorage.bind(this), + storage_has_key: this.hasStorageKey.bind(this), panic: () => this.panic('explicit guest panic'), panic_utf8: (len: bigint, ptr: bigint) => this.panic(this.readUTF8CStr(len, ptr)), // Not implemented From 66309f7d58616594a30bdfa0f5da0c308973ac43 Mon Sep 17 00:00:00 2001 From: Anton Rusev Date: Fri, 4 Aug 2023 15:23:28 +0300 Subject: [PATCH 7/8] docs: add changeset Signed-off-by: Anton Rusev --- .changeset/bright-nails-glow.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/bright-nails-glow.md diff --git a/.changeset/bright-nails-glow.md b/.changeset/bright-nails-glow.md new file mode 100644 index 0000000000..a1866ca1e0 --- /dev/null +++ b/.changeset/bright-nails-glow.md @@ -0,0 +1,5 @@ +--- +"@near-js/accounts": patch +--- + +Implement local execution of contract view methods From 61211871e6d314863ddee3794d64f6fd83ce8f72 Mon Sep 17 00:00:00 2001 From: vikinatora Date: Mon, 6 Nov 2023 13:10:13 +0200 Subject: [PATCH 8/8] chore: update dependencies --- pnpm-lock.yaml | 100 +++++++++++++++++++++++++++---------------------- 1 file changed, 55 insertions(+), 45 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 22cc0eace2..9f0204836b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,9 +1,5 @@ lockfileVersion: '6.0' -settings: - autoInstallPeers: false - excludeLinksFromLockfile: false - importers: .: @@ -80,6 +76,9 @@ importers: depd: specifier: ^2.0.0 version: 2.0.0 + lru_map: + specifier: ^0.4.1 + version: 0.4.1 near-abi: specifier: 0.1.1 version: 0.1.1 @@ -95,7 +94,7 @@ importers: version: 4.0.0 jest: specifier: ^26.0.1 - version: 26.0.1 + version: 26.0.1(ts-node@10.9.1) near-hello: specifier: ^0.5.1 version: 0.5.1 @@ -199,7 +198,7 @@ importers: version: 18.16.1 jest: specifier: ^26.0.1 - version: 26.0.1 + version: 26.0.1(ts-node@10.9.1) ts-jest: specifier: ^26.5.6 version: 26.5.6(jest@26.0.1)(typescript@4.9.4) @@ -231,7 +230,7 @@ importers: version: 18.16.1 jest: specifier: ^26.0.1 - version: 26.0.1 + version: 26.0.1(ts-node@10.9.1) ts-jest: specifier: ^26.5.6 version: 26.5.6(jest@26.0.1)(typescript@4.9.4) @@ -250,7 +249,7 @@ importers: devDependencies: jest: specifier: ^26.0.1 - version: 26.0.1 + version: 26.0.1(ts-node@10.9.1) ts-jest: specifier: ^26.5.6 version: 26.5.6(jest@26.0.1)(typescript@4.9.4) @@ -272,7 +271,7 @@ importers: version: 18.16.1 jest: specifier: ^26.0.1 - version: 26.0.1 + version: 26.0.1(ts-node@10.9.1) ts-jest: specifier: ^26.5.6 version: 26.5.6(jest@26.0.1)(typescript@4.9.4) @@ -378,7 +377,7 @@ importers: version: 2.0.0 jest: specifier: ^26.0.1 - version: 26.0.1 + version: 26.0.1(ts-node@10.9.1) localstorage-memory: specifier: ^1.0.3 version: 1.0.3 @@ -428,7 +427,7 @@ importers: version: 18.16.1 jest: specifier: ^26.0.1 - version: 26.0.1 + version: 26.0.1(ts-node@10.9.1) ts-jest: specifier: ^26.5.6 version: 26.5.6(jest@26.0.1)(typescript@4.9.4) @@ -453,7 +452,7 @@ importers: version: 18.16.1 jest: specifier: ^26.0.1 - version: 26.0.1 + version: 26.0.1(ts-node@10.9.1) ts-jest: specifier: ^26.5.6 version: 26.5.6(jest@26.0.1)(typescript@4.9.4) @@ -493,7 +492,7 @@ importers: version: 18.16.1 jest: specifier: ^26.0.1 - version: 26.0.1 + version: 26.0.1(ts-node@10.9.1) ts-jest: specifier: ^26.5.6 version: 26.5.6(jest@26.0.1)(typescript@4.9.4) @@ -512,7 +511,7 @@ importers: version: 18.16.1 jest: specifier: ^26.0.1 - version: 26.0.1 + version: 26.0.1(ts-node@10.9.1) ts-jest: specifier: ^26.5.6 version: 26.5.6(jest@26.0.1)(typescript@4.9.4) @@ -543,7 +542,7 @@ importers: version: 18.16.1 jest: specifier: ^26.0.1 - version: 26.0.1 + version: 26.0.1(ts-node@10.9.1) ts-jest: specifier: ^26.5.6 version: 26.5.6(jest@26.0.1)(typescript@4.9.4) @@ -586,7 +585,7 @@ importers: version: 18.16.1 jest: specifier: ^26.0.1 - version: 26.0.1 + version: 26.0.1(ts-node@10.9.1) localstorage-memory: specifier: ^1.0.3 version: 1.0.3 @@ -1468,7 +1467,7 @@ packages: slash: 3.0.0 dev: true - /@jest/core@26.6.3: + /@jest/core@26.6.3(ts-node@10.9.1): resolution: {integrity: sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==} engines: {node: '>= 10.14.2'} dependencies: @@ -1483,14 +1482,14 @@ packages: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 26.6.2 - jest-config: 26.6.3 + jest-config: 26.6.3(ts-node@10.9.1) jest-haste-map: 26.6.2 jest-message-util: 26.6.2 jest-regex-util: 26.0.0 jest-resolve: 26.6.2 jest-resolve-dependencies: 26.6.3 - jest-runner: 26.6.3 - jest-runtime: 26.6.3 + jest-runner: 26.6.3(ts-node@10.9.1) + jest-runtime: 26.6.3(ts-node@10.9.1) jest-snapshot: 26.6.2 jest-util: 26.6.2 jest-validate: 26.6.2 @@ -1592,15 +1591,15 @@ packages: collect-v8-coverage: 1.0.2 dev: true - /@jest/test-sequencer@26.6.3: + /@jest/test-sequencer@26.6.3(ts-node@10.9.1): resolution: {integrity: sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==} engines: {node: '>= 10.14.2'} dependencies: '@jest/test-result': 26.6.2 graceful-fs: 4.2.11 jest-haste-map: 26.6.2 - jest-runner: 26.6.3 - jest-runtime: 26.6.3 + jest-runner: 26.6.3(ts-node@10.9.1) + jest-runtime: 26.6.3(ts-node@10.9.1) transitivePeerDependencies: - bufferutil - canvas @@ -2216,6 +2215,8 @@ packages: /ajv-formats@2.1.1(ajv@8.11.2): resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 peerDependenciesMeta: ajv: optional: true @@ -2604,9 +2605,9 @@ packages: resolution: {integrity: sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==} hasBin: true dependencies: + JSONStream: 1.3.5 combine-source-map: 0.8.0 defined: 1.0.1 - JSONStream: 1.3.5 safe-buffer: 5.2.1 through2: 2.0.5 umd: 3.0.3 @@ -2688,6 +2689,7 @@ packages: engines: {node: '>= 0.8'} hasBin: true dependencies: + JSONStream: 1.3.5 assert: 1.5.0 browser-pack: 6.1.0 browser-resolve: 1.11.3 @@ -2709,7 +2711,6 @@ packages: https-browserify: 1.0.0 inherits: 2.0.4 insert-module-globals: 7.2.1 - JSONStream: 1.3.5 labeled-stream-splicer: 2.0.2 mkdirp: 0.5.6 module-deps: 6.2.3 @@ -3152,8 +3153,8 @@ packages: engines: {node: '>=10'} hasBin: true dependencies: - is-text-path: 1.0.1 JSONStream: 1.3.5 + is-text-path: 1.0.1 lodash: 4.17.21 meow: 8.1.2 split2: 3.2.2 @@ -4843,11 +4844,11 @@ packages: resolution: {integrity: sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==} hasBin: true dependencies: + JSONStream: 1.3.5 acorn-node: 1.8.2 combine-source-map: 0.8.0 concat-stream: 1.6.2 is-buffer: 1.1.6 - JSONStream: 1.3.5 path-is-absolute: 1.0.1 process: 0.11.10 through2: 2.0.5 @@ -5236,12 +5237,12 @@ packages: throat: 5.0.0 dev: true - /jest-cli@26.6.3: + /jest-cli@26.6.3(ts-node@10.9.1): resolution: {integrity: sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==} engines: {node: '>= 10.14.2'} hasBin: true dependencies: - '@jest/core': 26.6.3 + '@jest/core': 26.6.3(ts-node@10.9.1) '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 chalk: 4.1.2 @@ -5249,7 +5250,7 @@ packages: graceful-fs: 4.2.11 import-local: 3.1.0 is-ci: 2.0.0 - jest-config: 26.6.3 + jest-config: 26.6.3(ts-node@10.9.1) jest-util: 26.6.2 jest-validate: 26.6.2 prompts: 2.4.2 @@ -5262,7 +5263,7 @@ packages: - utf-8-validate dev: true - /jest-config@26.6.3: + /jest-config@26.6.3(ts-node@10.9.1): resolution: {integrity: sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==} engines: {node: '>= 10.14.2'} peerDependencies: @@ -5272,7 +5273,7 @@ packages: optional: true dependencies: '@babel/core': 7.22.9 - '@jest/test-sequencer': 26.6.3 + '@jest/test-sequencer': 26.6.3(ts-node@10.9.1) '@jest/types': 26.6.2 babel-jest: 26.6.3(@babel/core@7.22.9) chalk: 4.1.2 @@ -5282,13 +5283,14 @@ packages: jest-environment-jsdom: 26.6.2 jest-environment-node: 26.6.2 jest-get-type: 26.3.0 - jest-jasmine2: 26.6.3 + jest-jasmine2: 26.6.3(ts-node@10.9.1) jest-regex-util: 26.0.0 jest-resolve: 26.6.2 jest-util: 26.6.2 jest-validate: 26.6.2 micromatch: 4.0.5 pretty-format: 26.6.2 + ts-node: 10.9.1(@types/node@18.17.2)(typescript@4.9.4) transitivePeerDependencies: - bufferutil - canvas @@ -5382,7 +5384,7 @@ packages: - supports-color dev: true - /jest-jasmine2@26.6.3: + /jest-jasmine2@26.6.3(ts-node@10.9.1): resolution: {integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==} engines: {node: '>= 10.14.2'} dependencies: @@ -5399,7 +5401,7 @@ packages: jest-each: 26.6.2 jest-matcher-utils: 26.6.2 jest-message-util: 26.6.2 - jest-runtime: 26.6.3 + jest-runtime: 26.6.3(ts-node@10.9.1) jest-snapshot: 26.6.2 jest-util: 26.6.2 pretty-format: 26.6.2 @@ -5495,7 +5497,7 @@ packages: slash: 3.0.0 dev: true - /jest-runner@26.6.3: + /jest-runner@26.6.3(ts-node@10.9.1): resolution: {integrity: sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==} engines: {node: '>= 10.14.2'} dependencies: @@ -5508,13 +5510,13 @@ packages: emittery: 0.7.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 26.6.3 + jest-config: 26.6.3(ts-node@10.9.1) jest-docblock: 26.0.0 jest-haste-map: 26.6.2 jest-leak-detector: 26.6.2 jest-message-util: 26.6.2 jest-resolve: 26.6.2 - jest-runtime: 26.6.3 + jest-runtime: 26.6.3(ts-node@10.9.1) jest-util: 26.6.2 jest-worker: 26.6.2 source-map-support: 0.5.21 @@ -5527,7 +5529,7 @@ packages: - utf-8-validate dev: true - /jest-runtime@26.6.3: + /jest-runtime@26.6.3(ts-node@10.9.1): resolution: {integrity: sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==} engines: {node: '>= 10.14.2'} hasBin: true @@ -5547,7 +5549,7 @@ packages: exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.11 - jest-config: 26.6.3 + jest-config: 26.6.3(ts-node@10.9.1) jest-haste-map: 26.6.2 jest-message-util: 26.6.2 jest-mock: 26.6.2 @@ -5645,14 +5647,14 @@ packages: supports-color: 7.2.0 dev: true - /jest@26.0.1: + /jest@26.0.1(ts-node@10.9.1): resolution: {integrity: sha512-29Q54kn5Bm7ZGKIuH2JRmnKl85YRigp0o0asTc6Sb6l2ch1DCXIeZTLLFy9ultJvhkTqbswF5DEx4+RlkmCxWg==} engines: {node: '>= 10.14.2'} hasBin: true dependencies: - '@jest/core': 26.6.3 + '@jest/core': 26.6.3(ts-node@10.9.1) import-local: 3.1.0 - jest-cli: 26.6.3 + jest-cli: 26.6.3(ts-node@10.9.1) transitivePeerDependencies: - bufferutil - canvas @@ -6048,6 +6050,10 @@ packages: yallist: 4.0.0 dev: true + /lru_map@0.4.1: + resolution: {integrity: sha512-I+lBvqMMFfqaV8CJCISjI3wbjmwVu/VyOoU7+qtu9d7ioW5klMgsTTiUOUp+DJvfTTzKXoPbyC6YfgkNcyPSOg==} + dev: false + /make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -6261,6 +6267,7 @@ packages: engines: {node: '>= 0.8.0'} hasBin: true dependencies: + JSONStream: 1.3.5 browser-resolve: 2.0.0 cached-path-relative: 1.1.0 concat-stream: 1.6.2 @@ -6268,7 +6275,6 @@ packages: detective: 5.2.1 duplexer2: 0.1.4 inherits: 2.0.4 - JSONStream: 1.3.5 parents: 1.0.1 readable-stream: 2.3.8 resolve: 1.22.2 @@ -7855,7 +7861,7 @@ packages: bs-logger: 0.2.6 buffer-from: 1.1.2 fast-json-stable-stringify: 2.1.0 - jest: 26.0.1 + jest: 26.0.1(ts-node@10.9.1) jest-util: 26.6.2 json5: 2.2.3 lodash: 4.17.21 @@ -8609,3 +8615,7 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true + +settings: + autoInstallPeers: false + excludeLinksFromLockfile: false