mirror of https://github.com/status-im/js-waku.git
Pass listening addresses as argument
This commit is contained in:
parent
d2f1995f3e
commit
c3cf6462cc
|
@ -7,7 +7,7 @@ import { delay } from '../build/main/test_utils/delay';
|
||||||
|
|
||||||
;(async function() {
|
;(async function() {
|
||||||
|
|
||||||
const waku = await Waku.create();
|
const waku = await Waku.create({listenAddresses: ['/ip4/0.0.0.0/tcp/55123']});
|
||||||
|
|
||||||
// TODO: Bubble event to waku, infere topic, decode msg
|
// TODO: Bubble event to waku, infere topic, decode msg
|
||||||
waku.libp2p.pubsub.on(TOPIC, event => {
|
waku.libp2p.pubsub.on(TOPIC, event => {
|
||||||
|
|
|
@ -11,7 +11,7 @@ describe('Waku', function () {
|
||||||
describe('Interop: Nim', function () {
|
describe('Interop: Nim', function () {
|
||||||
it('nim connects to js', async function () {
|
it('nim connects to js', async function () {
|
||||||
this.timeout(10_000);
|
this.timeout(10_000);
|
||||||
const waku = await Waku.create(NOISE_KEY_1);
|
const waku = await Waku.create({ staticNoiseKey: NOISE_KEY_1 });
|
||||||
|
|
||||||
const peerId = waku.libp2p.peerId.toB58String();
|
const peerId = waku.libp2p.peerId.toB58String();
|
||||||
|
|
||||||
|
|
|
@ -8,24 +8,38 @@ import PeerId from 'peer-id';
|
||||||
|
|
||||||
import { CODEC, WakuRelay, WakuRelayPubsub } from './waku_relay';
|
import { CODEC, WakuRelay, WakuRelayPubsub } from './waku_relay';
|
||||||
|
|
||||||
|
export interface CreateOptions {
|
||||||
|
listenAddresses: string[];
|
||||||
|
staticNoiseKey: bytes | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
export default class Waku {
|
export default class Waku {
|
||||||
private constructor(public libp2p: Libp2p, public relay: WakuRelay) {}
|
private constructor(public libp2p: Libp2p, public relay: WakuRelay) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create new waku node
|
* Create new waku node
|
||||||
|
* @param listenAddresses: Array of Multiaddrs on which the node should listen. If not present, defaults to ['/ip4/0.0.0.0/tcp/0'].
|
||||||
* @param staticNoiseKey: A static key to use for noise,
|
* @param staticNoiseKey: A static key to use for noise,
|
||||||
* mainly used for test to reduce entropy usage.
|
* mainly used for test to reduce entropy usage.
|
||||||
* @returns {Promise<Waku>}
|
* @returns {Promise<Waku>}
|
||||||
*/
|
*/
|
||||||
static async create(staticNoiseKey?: bytes): Promise<Waku> {
|
static async create(options: Partial<CreateOptions>): Promise<Waku> {
|
||||||
|
const opts = Object.assign(
|
||||||
|
{
|
||||||
|
listenAddresses: ['/ip4/0.0.0.0/tcp/0'],
|
||||||
|
staticNoiseKey: undefined,
|
||||||
|
},
|
||||||
|
options
|
||||||
|
);
|
||||||
|
|
||||||
const libp2p = await Libp2p.create({
|
const libp2p = await Libp2p.create({
|
||||||
addresses: {
|
addresses: {
|
||||||
listen: ['/ip4/0.0.0.0/tcp/55123'],
|
listen: opts.listenAddresses,
|
||||||
},
|
},
|
||||||
modules: {
|
modules: {
|
||||||
transport: [TCP],
|
transport: [TCP],
|
||||||
streamMuxer: [Mplex],
|
streamMuxer: [Mplex],
|
||||||
connEncryption: [new Noise(staticNoiseKey)],
|
connEncryption: [new Noise(opts.staticNoiseKey)],
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||||
// @ts-ignore: Type needs update
|
// @ts-ignore: Type needs update
|
||||||
pubsub: WakuRelayPubsub,
|
pubsub: WakuRelayPubsub,
|
||||||
|
|
|
@ -21,8 +21,8 @@ describe('Waku Relay', () => {
|
||||||
let waku2: Waku;
|
let waku2: Waku;
|
||||||
beforeEach(async function () {
|
beforeEach(async function () {
|
||||||
[waku1, waku2] = await Promise.all([
|
[waku1, waku2] = await Promise.all([
|
||||||
Waku.create(NOISE_KEY_1),
|
Waku.create({ staticNoiseKey: NOISE_KEY_1 }),
|
||||||
Waku.create(NOISE_KEY_2),
|
Waku.create({ staticNoiseKey: NOISE_KEY_2 }),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
await waku1.dialWithMultiAddr(waku2.libp2p.peerId, waku2.libp2p.multiaddrs);
|
await waku1.dialWithMultiAddr(waku2.libp2p.peerId, waku2.libp2p.multiaddrs);
|
||||||
|
@ -109,7 +109,7 @@ describe('Waku Relay', () => {
|
||||||
|
|
||||||
beforeEach(async function () {
|
beforeEach(async function () {
|
||||||
this.timeout(10_000);
|
this.timeout(10_000);
|
||||||
waku = await Waku.create(NOISE_KEY_1);
|
waku = await Waku.create({ staticNoiseKey: NOISE_KEY_1 });
|
||||||
|
|
||||||
const peerId = waku.libp2p.peerId.toB58String();
|
const peerId = waku.libp2p.peerId.toB58String();
|
||||||
const localMultiaddr = waku.libp2p.multiaddrs.find((addr) =>
|
const localMultiaddr = waku.libp2p.multiaddrs.find((addr) =>
|
||||||
|
@ -180,7 +180,7 @@ describe('Waku Relay', () => {
|
||||||
|
|
||||||
beforeEach(async function () {
|
beforeEach(async function () {
|
||||||
this.timeout(10_000);
|
this.timeout(10_000);
|
||||||
waku = await Waku.create(NOISE_KEY_1);
|
waku = await Waku.create({ staticNoiseKey: NOISE_KEY_1 });
|
||||||
|
|
||||||
nimWaku = new NimWaku(this.test!.ctx!.currentTest!.title);
|
nimWaku = new NimWaku(this.test!.ctx!.currentTest!.title);
|
||||||
await nimWaku.start();
|
await nimWaku.start();
|
||||||
|
@ -250,7 +250,7 @@ describe('Waku Relay', () => {
|
||||||
|
|
||||||
beforeEach(async function () {
|
beforeEach(async function () {
|
||||||
this.timeout(10_000);
|
this.timeout(10_000);
|
||||||
waku = await Waku.create(NOISE_KEY_1);
|
waku = await Waku.create({ staticNoiseKey: NOISE_KEY_1 });
|
||||||
|
|
||||||
nimWaku = new NimWaku(makeLogFileName(this));
|
nimWaku = new NimWaku(makeLogFileName(this));
|
||||||
await nimWaku.start();
|
await nimWaku.start();
|
||||||
|
@ -321,8 +321,8 @@ describe('Waku Relay', () => {
|
||||||
beforeEach(async function () {
|
beforeEach(async function () {
|
||||||
this.timeout(10_000);
|
this.timeout(10_000);
|
||||||
[waku1, waku2] = await Promise.all([
|
[waku1, waku2] = await Promise.all([
|
||||||
Waku.create(NOISE_KEY_1),
|
Waku.create({ staticNoiseKey: NOISE_KEY_1 }),
|
||||||
Waku.create(NOISE_KEY_2),
|
Waku.create({ staticNoiseKey: NOISE_KEY_2 }),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
nimWaku = new NimWaku(this.test!.ctx!.currentTest!.title);
|
nimWaku = new NimWaku(this.test!.ctx!.currentTest!.title);
|
||||||
|
|
|
@ -16,7 +16,6 @@ export class WakuRelayPubsub extends Gossipsub {
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param libp2p: Libp2p
|
* @param libp2p: Libp2p
|
||||||
* @param options: Partial<GossipInputOptions>
|
|
||||||
*/
|
*/
|
||||||
constructor(libp2p: Libp2p) {
|
constructor(libp2p: Libp2p) {
|
||||||
super(libp2p, {
|
super(libp2p, {
|
||||||
|
|
Loading…
Reference in New Issue