From c1964dabee8134d61d7c40228eca7a7cd6755f7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20C=C3=A1rdenas?= Date: Wed, 21 Sep 2022 12:12:47 -0500 Subject: [PATCH 1/4] chore: upgrade stacks node version --- .gitpod.Dockerfile | 2 +- docker/stx-rosetta.Dockerfile | 2 +- stacks-blockchain/docker/Dockerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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/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 From 527140648412fcd634ad363aab76be7750e8a6b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20C=C3=A1rdenas?= Date: Wed, 21 Sep 2022 12:13:18 -0500 Subject: [PATCH 2/4] fix: api and bns tests --- src/tests-bns/setup.ts | 5 +---- src/tests/core-rpc-tests.ts | 20 ++++++++++++++++++++ src/tests/setup.ts | 5 +---- 3 files changed, 22 insertions(+), 8 deletions(-) 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/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'); }; From a1a8cd93aa546b369e1b79ca6cc3fef8f96efeb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20C=C3=A1rdenas?= Date: Wed, 21 Sep 2022 12:26:55 -0500 Subject: [PATCH 3/4] fix: rosetta-cli tests --- src/tests-rosetta-cli-construction/setup.ts | 14 +------------- src/tests-rosetta-cli-construction/teardown.ts | 5 +---- src/tests-rosetta-cli-data/setup.ts | 14 +------------- src/tests-rosetta-cli-data/teardown.ts | 5 +---- 4 files changed, 4 insertions(+), 34 deletions(-) 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'); }; From d2ae1b8fdeede49c6aa5003dc8c7e7ece60cec6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20C=C3=A1rdenas?= Date: Wed, 21 Sep 2022 12:58:33 -0500 Subject: [PATCH 4/4] fix: rosetta tests --- src/tests-rosetta/api.ts | 25 +++++++++++++++++++++++++ src/tests-rosetta/setup.ts | 5 +---- 2 files changed, 26 insertions(+), 4 deletions(-) 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'); };