Skip to content

Commit f97e238

Browse files
committed
feat: connect to envelop database
1 parent 4908c0b commit f97e238

File tree

5 files changed

+38
-8
lines changed

5 files changed

+38
-8
lines changed

.env.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ NETWORK=testnet
33
MAINTENANCE=
44
HUB_DATABASE_URL=mysql://...
55
SEQ_DATABASE_URL=mysql://...
6+
ENVELOP_DATABASE_URL=mysql://
67
RELAYER_PK=0x123...
78
DEFAULT_NETWORK=1
89
SHUTTER_URL=https://...

src/helpers/mysql.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,21 @@ sequencerConfig.connectTimeout = 60e3;
3333
sequencerConfig.acquireTimeout = 60e3;
3434
sequencerConfig.timeout = 60e3;
3535
sequencerConfig.charset = 'utf8mb4';
36-
bluebird.promisifyAll([Pool, Connection]);
3736
const sequencerDB = mysql.createPool(sequencerConfig);
3837

39-
export { hubDB as default, sequencerDB };
38+
// @ts-ignore
39+
const envelopConfig = parse(process.env.ENVELOP_DATABASE_URL);
40+
envelopConfig.connectionLimit = connectionLimit;
41+
envelopConfig.multipleStatements = true;
42+
envelopConfig.database = envelopConfig.path[0];
43+
envelopConfig.host = envelopConfig.hosts[0].name;
44+
envelopConfig.port = envelopConfig.hosts[0].port;
45+
envelopConfig.connectTimeout = 60e3;
46+
envelopConfig.acquireTimeout = 60e3;
47+
envelopConfig.timeout = 60e3;
48+
envelopConfig.charset = 'utf8mb4';
49+
const envelopDB = mysql.createPool(envelopConfig);
50+
51+
bluebird.promisifyAll([Pool, Connection]);
52+
53+
export { hubDB as default, sequencerDB, envelopDB };

test/.env.test

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
HUB_DATABASE_URL=mysql://root:[email protected]:3306/snapshot_sequencer_test
22
SEQ_DATABASE_URL=mysql://root:[email protected]:3306/snapshot_sequencer_test
3+
ENVELOP_DATABASE_URL=mysql://root:[email protected]:3306/snapshot_sequencer_test
34
NETWORK=mainnet
45
RELAYER_PK=01686849e86499c1860ea0afc97f29c11018cbac049abf843df875c60054076e
56
NODE_ENV=test

test/schema_envelop.sql

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
CREATE TABLE subscribers (
2+
email VARCHAR(256) NOT NULL,
3+
address VARCHAR(256) NOT NULL,
4+
subscriptions JSON DEFAULT NULL,
5+
created BIGINT NOT NULL,
6+
verified BIGINT NOT NULL DEFAULT 0,
7+
PRIMARY KEY (email, address),
8+
UNIQUE KEY idx_address_email (address, email),
9+
INDEX created (created),
10+
INDEX verified (verified)
11+
);

test/setupDb.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import mysql from 'mysql';
2-
import Pool from 'mysql/lib/Pool';
3-
import Connection from 'mysql/lib/Connection';
1+
import fs from 'fs';
42
import bluebird from 'bluebird';
53
import parse from 'connection-string';
6-
import fs from 'fs';
4+
import mysql from 'mysql';
5+
import Connection from 'mysql/lib/Connection';
6+
import Pool from 'mysql/lib/Pool';
77

88
// @ts-ignore
99
const config = parse(process.env.HUB_DATABASE_URL);
@@ -19,6 +19,8 @@ if (!dbName.endsWith('_test')) {
1919
process.exit(1);
2020
}
2121

22+
const schemaFiles = ['./test/schema.sql', './test/schema_envelop.sql'];
23+
2224
async function run() {
2325
const splitToken = ');';
2426

@@ -30,8 +32,9 @@ async function run() {
3032
console.info(`- Creating new database: ${dbName}`);
3133
await db.queryAsync(`CREATE DATABASE ${dbName}`);
3234

33-
const schema = fs
34-
.readFileSync('./test/schema.sql', 'utf8')
35+
const schema = schemaFiles
36+
.map(file => fs.readFileSync(file, 'utf8'))
37+
.join(' ')
3538
.replaceAll('CREATE TABLE ', `CREATE TABLE ${dbName}.`)
3639
.split(splitToken)
3740
.filter(s => s.trim().length > 0);

0 commit comments

Comments
 (0)