diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile index acb4c4680b..e2717f7a40 100644 --- a/.gitpod.Dockerfile +++ b/.gitpod.Dockerfile @@ -1,4 +1,4 @@ -FROM blockstack/stacks-blockchain:2.05.0.0.0-stretch as corenode +FROM blockstack/stacks-blockchain:2.05.0.3.0-stretch as corenode FROM gitpod/workspace-postgres diff --git a/docker/stx-rosetta.Dockerfile b/docker/stx-rosetta.Dockerfile index 7763239744..b7a0308b25 100644 --- a/docker/stx-rosetta.Dockerfile +++ b/docker/stx-rosetta.Dockerfile @@ -1,5 +1,5 @@ ARG STACKS_API_VERSION=v0.71.2 -ARG STACKS_NODE_VERSION=2.05.0.0.0 +ARG STACKS_NODE_VERSION=2.05.0.3.0 ARG STACKS_API_REPO=blockstack/stacks-blockchain-api ARG STACKS_NODE_REPO=blockstack/stacks-blockchain ARG PG_VERSION=12 diff --git a/src/tests-bns/setup.ts b/src/tests-bns/setup.ts index cdeecb69f4..e87e72a18f 100644 --- a/src/tests-bns/setup.ts +++ b/src/tests-bns/setup.ts @@ -1,14 +1,11 @@ import { loadDotEnv } from '../helpers'; -import { StacksCoreRpcClient } from '../core-rpc/client'; // ts-unused-exports:disable-next-line -export default async (): Promise => { +export default (): void => { console.log('Jest - setup..'); if (!process.env.NODE_ENV) { process.env.NODE_ENV = 'test'; } loadDotEnv(); - console.log('Waiting for RPC connection to core node..'); - await new StacksCoreRpcClient().waitForConnection(60000); console.log('Jest - setup done'); }; diff --git a/src/tests-rosetta-cli-construction/setup.ts b/src/tests-rosetta-cli-construction/setup.ts index fe030062ff..e87e72a18f 100644 --- a/src/tests-rosetta-cli-construction/setup.ts +++ b/src/tests-rosetta-cli-construction/setup.ts @@ -1,23 +1,11 @@ import { loadDotEnv } from '../helpers'; -import { StacksCoreRpcClient } from '../core-rpc/client'; -import { PgWriteStore } from '../datastore/pg-write-store'; -export interface GlobalServices { - db: PgWriteStore; -} // ts-unused-exports:disable-next-line -export default async (): Promise => { +export default (): void => { console.log('Jest - setup..'); if (!process.env.NODE_ENV) { process.env.NODE_ENV = 'test'; } loadDotEnv(); - const db = await PgWriteStore.connect({ skipMigrations: true, usageName: 'tests' }); - console.log('Waiting for RPC connection to core node..'); - await new StacksCoreRpcClient().waitForConnection(60000); - const globalServices: GlobalServices = { - db: db, - }; - Object.assign(global, globalServices); console.log('Jest - setup done'); }; diff --git a/src/tests-rosetta-cli-construction/teardown.ts b/src/tests-rosetta-cli-construction/teardown.ts index a92094ee48..5c7476637a 100644 --- a/src/tests-rosetta-cli-construction/teardown.ts +++ b/src/tests-rosetta-cli-construction/teardown.ts @@ -1,8 +1,5 @@ -import type { GlobalServices } from './setup'; // ts-unused-exports:disable-next-line -export default async (): Promise => { +export default (): void => { console.log('Jest - teardown..'); - const globalServices = (global as unknown) as GlobalServices; - await globalServices.db.close(); console.log('Jest - teardown done'); }; diff --git a/src/tests-rosetta-cli-data/setup.ts b/src/tests-rosetta-cli-data/setup.ts index fe030062ff..e87e72a18f 100644 --- a/src/tests-rosetta-cli-data/setup.ts +++ b/src/tests-rosetta-cli-data/setup.ts @@ -1,23 +1,11 @@ import { loadDotEnv } from '../helpers'; -import { StacksCoreRpcClient } from '../core-rpc/client'; -import { PgWriteStore } from '../datastore/pg-write-store'; -export interface GlobalServices { - db: PgWriteStore; -} // ts-unused-exports:disable-next-line -export default async (): Promise => { +export default (): void => { console.log('Jest - setup..'); if (!process.env.NODE_ENV) { process.env.NODE_ENV = 'test'; } loadDotEnv(); - const db = await PgWriteStore.connect({ skipMigrations: true, usageName: 'tests' }); - console.log('Waiting for RPC connection to core node..'); - await new StacksCoreRpcClient().waitForConnection(60000); - const globalServices: GlobalServices = { - db: db, - }; - Object.assign(global, globalServices); console.log('Jest - setup done'); }; diff --git a/src/tests-rosetta-cli-data/teardown.ts b/src/tests-rosetta-cli-data/teardown.ts index a92094ee48..5c7476637a 100644 --- a/src/tests-rosetta-cli-data/teardown.ts +++ b/src/tests-rosetta-cli-data/teardown.ts @@ -1,8 +1,5 @@ -import type { GlobalServices } from './setup'; // ts-unused-exports:disable-next-line -export default async (): Promise => { +export default (): void => { console.log('Jest - teardown..'); - const globalServices = (global as unknown) as GlobalServices; - await globalServices.db.close(); console.log('Jest - teardown done'); }; diff --git a/src/tests-rosetta/api.ts b/src/tests-rosetta/api.ts index 7b709ec226..d024fa3db7 100644 --- a/src/tests-rosetta/api.ts +++ b/src/tests-rosetta/api.ts @@ -29,6 +29,7 @@ import { PgWriteStore } from '../datastore/pg-write-store'; import { cycleMigrations, runMigrations } from '../datastore/migrations'; import { PgSqlClient } from '../datastore/connection'; import { bufferToHexPrefixString } from '../helpers'; +import * as nock from 'nock'; describe('Rosetta API', () => { let db: PgWriteStore; @@ -129,6 +130,30 @@ describe('Rosetta API', () => { const block = blockData.block, genesisBlock = genesisData.block; + nock('http://127.0.0.1:20443') + .get('/v2/neighbors') + .reply(200, { + sample: [], + inbound: [], + outbound: [] + }); + nock('http://127.0.0.1:20443') + .get('/v2/info') + .reply(200, { + burn_block_height: block.burn_block_height, + burn_consensus: block.burn_block_hash, + exit_at_block_height: null, + network_id: 1, + parent_network_id: 1, + peer_version: 1, + server_version: 1, + stable_burn_block_height: block.burn_block_height, + stable_burn_consensus: block.burn_block_hash, + stacks_tip: block.block_hash, + stacks_tip_burn_block: block.burn_block_height, + stacks_tip_height: block.block_height, + unanchored_tip: '' + }); const query1 = await supertest(api.address) .post(`/rosetta/v1/network/status`) .send({ network_identifier: { blockchain: 'stacks', network: 'testnet' } }); diff --git a/src/tests-rosetta/setup.ts b/src/tests-rosetta/setup.ts index cdeecb69f4..e87e72a18f 100644 --- a/src/tests-rosetta/setup.ts +++ b/src/tests-rosetta/setup.ts @@ -1,14 +1,11 @@ import { loadDotEnv } from '../helpers'; -import { StacksCoreRpcClient } from '../core-rpc/client'; // ts-unused-exports:disable-next-line -export default async (): Promise => { +export default (): void => { console.log('Jest - setup..'); if (!process.env.NODE_ENV) { process.env.NODE_ENV = 'test'; } loadDotEnv(); - console.log('Waiting for RPC connection to core node..'); - await new StacksCoreRpcClient().waitForConnection(60000); console.log('Jest - setup done'); }; diff --git a/src/tests/core-rpc-tests.ts b/src/tests/core-rpc-tests.ts index 562b08e3d3..a89fed3e9d 100644 --- a/src/tests/core-rpc-tests.ts +++ b/src/tests/core-rpc-tests.ts @@ -1,7 +1,22 @@ +import { Server } from 'net'; +import { PgWriteStore } from '../datastore/pg-write-store'; +import { startEventServer } from '../event-stream/event-server'; import { StacksCoreRpcClient } from '../core-rpc/client'; +import { ChainID } from '@stacks/transactions'; describe('core RPC tests', () => { let client: StacksCoreRpcClient; + let db: PgWriteStore; + let eventServer: Server; + + beforeAll(async () => { + db = await PgWriteStore.connect({ usageName: 'tests' }); + eventServer = await startEventServer({ + datastore: db, + chainId: ChainID.Testnet, + httpLogLevel: 'silly', + }); + }); beforeEach(() => { client = new StacksCoreRpcClient(); @@ -34,4 +49,9 @@ describe('core RPC tests', () => { const fee = await client.getEstimatedTransferFee(); expect(fee).toBeTruthy(); }); + + afterAll(async () => { + eventServer.close(); + await db.close(); + }); }); diff --git a/src/tests/setup.ts b/src/tests/setup.ts index ea16bade12..737c21ed32 100644 --- a/src/tests/setup.ts +++ b/src/tests/setup.ts @@ -1,15 +1,12 @@ import { loadDotEnv } from '../helpers'; -import { StacksCoreRpcClient } from '../core-rpc/client'; // ts-unused-exports:disable-next-line -export default async (): Promise => { +export default (): void => { console.log('Jest - setup..'); if (!process.env.NODE_ENV) { process.env.NODE_ENV = 'test'; } loadDotEnv(); process.env.PG_DATABASE = 'postgres'; - console.log('Waiting for RPC connection to core node..'); - await new StacksCoreRpcClient().waitForConnection(60000); console.log('Jest - setup done'); }; diff --git a/stacks-blockchain/docker/Dockerfile b/stacks-blockchain/docker/Dockerfile index 190f5ca7dd..33590e0e8f 100644 --- a/stacks-blockchain/docker/Dockerfile +++ b/stacks-blockchain/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM blockstack/stacks-blockchain:2.05.0.0.0-stretch as build +FROM blockstack/stacks-blockchain:2.05.0.3.0-stretch as build FROM debian:stretch