Update Multiaddr

This commit is contained in:
Jaco Greeff 2018-06-27 14:26:54 +02:00
parent 4f827100e0
commit c21c2f94e3
5 changed files with 168 additions and 56 deletions

View File

@ -11,7 +11,7 @@
"test": "echo \"No 'yarn run test' available\""
},
"devDependencies": {
"@polkadot/dev": "^0.20.3",
"@polkadot/dev": "^0.20.8",
"@types/node": "^10.3.4"
}
}

View File

@ -8,7 +8,7 @@
declare namespace LibP2pRailing {
type Options = {
list: Array<string | MultiAddr>,
list: Array<string | Multiaddr.Multiaddr>,
interval?: number
};

View File

@ -6,51 +6,80 @@
/// <reference types="node"/>
/// <reference types="peer-id"/>
declare namespace MultiAddr {
type Address = {
family: string,
host: string,
port: string
};
declare namespace Multiaddr {
type Code = number
type Size = number
type Options = Address & {
transport: string
};
type Protocol = {
code: Code,
size: Size,
name: string,
resolvable: boolean
}
type Proto = {
code: number,
name: string,
size: number
};
interface Protocols {
(proto: string | number): Protocol;
type Tuple = [ number, Buffer ];
readonly lengthPrefixedVarSize: number;
readonly V: number;
readonly table: Array<[number, number, string]>;
readonly names: { [index: string]: Protocol };
readonly codes: { [index: number]: Protocol };
type TupleString = [ number, string ];
}
object(code: Code, size: Size, name: string, resolvable: boolean): Protocol;
}
declare class MultiAddr {
constructor (addr: MultiAddr | Buffer | string);
type Options = {
family: string,
host: string,
transport: string,
port: string
}
static isMultiAddr (addr: any): addr is MultiAddr;
static isName (other: MultiAddr): boolean;
static fromNodeAddress (addr: { address: string, port: string }, transport: string): MultiAddr;
type NodeAddress = {
family: string,
address: string,
port: string
}
decapsulate (other: MultiAddr): MultiAddr;
encapsulate (other: MultiAddr): MultiAddr;
equals (other: MultiAddr): boolean;
getPeerId (): PeerId;
inspect (): string;
isThinWaistAddress (other?: MultiAddr): boolean;
nodeAddress (): MultiAddr.Address;
protos (): MultiAddr.Proto[];
protoCodes (): number[];
protoNames (): string[];
stringTuples (): MultiAddr.TupleString[];
tuples (): MultiAddr.Tuple[];
toOptions (): MultiAddr.Options;
toString (): string;
}
interface Multiaddr {
readonly buffer: Buffer;
toString(): string;
toOptions(): Options;
inspect(): string;
protos(): Protocol[];
protoCodes(): Code[];
protoNames(): string[];
tuples(): Array<[Code, Buffer]>;
stringTuples(): Array<[Code, string | number]>;
encapsulate(addr: string | Buffer | Multiaddr): Multiaddr;
decapsulate(addr: string | Buffer | Multiaddr): Multiaddr;
getPeerId(): string | undefined;
equals(other: Multiaddr): boolean;
nodeAddress(): NodeAddress;
isThinWaistAddress(addr: Multiaddr): boolean;
fromStupidString(str: string): never;
}
interface Exports {
(addr: string | Buffer | Multiaddr): Multiaddr;
readonly Buffer: typeof Buffer;
readonly protocols: Protocols;
fromNodeAddress(addr: NodeAddress, transport: string): Multiaddr;
isMultiaddr(addr: any): boolean;
isName(name: any): boolean;
resolve(value: any, cb: (error: Error) => void): void;
}
}
declare module 'multiaddr' {
export default MultiAddr;
const multiaddr: Multiaddr.Exports
export type Multiaddr = Multiaddr.Multiaddr
export type Protocol = Multiaddr.Protocol
export default multiaddr
}

View File

@ -14,16 +14,16 @@ declare namespace PeerInfo {
bits: number
};
type MultiAddrSet = {
type MultiaddrSet = {
readonly size: number;
add (addr: MultiAddr | string): void;
addSafe (add: MultiAddr | string): void;
delete (addr: MultiAddr): void;
forEach (cb: (addr: MultiAddr, index: number) => any): void;
has (addr: MultiAddr): boolean;
replace (addr: MultiAddr, other: MultiAddr): void;
toArray (): MultiAddr[];
add (addr: Multiaddr.Multiaddr | string): void;
addSafe (add: Multiaddr.Multiaddr | string): void;
delete (addr: Multiaddr.Multiaddr): void;
forEach (cb: (addr: Multiaddr.Multiaddr, index: number) => any): void;
has (addr: Multiaddr.Multiaddr): boolean;
replace (addr: Multiaddr.Multiaddr, other: Multiaddr.Multiaddr): void;
toArray (): Multiaddr.Multiaddr[];
};
}
@ -34,9 +34,9 @@ declare class PeerInfo {
static isPeerInfo (info: any): info is PeerInfo;
readonly id: PeerId;
readonly multiaddrs: PeerInfo.MultiAddrSet;
readonly multiaddrs: PeerInfo.MultiaddrSet;
connect (addr: MultiAddr): void;
connect (addr: Multiaddr.Multiaddr): void;
disconnect (): void;
isConnected (): boolean;
}

View File

@ -683,9 +683,9 @@
lodash "^4.17.5"
to-fast-properties "^2.0.0"
"@polkadot/dev@^0.20.3":
version "0.20.3"
resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.20.3.tgz#4650600dd1f5952ee0054f267c7ebc76dd883593"
"@polkadot/dev@^0.20.8":
version "0.20.8"
resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.20.8.tgz#48d96f5b8c9b16c3abb94fa0df25705b48055bba"
dependencies:
"@babel/cli" "^7.0.0-beta.51"
"@babel/core" "^7.0.0-beta.51"
@ -724,6 +724,8 @@
mkdirp "^0.5.1"
ncp "^2.0.0"
rimraf "^2.6.2"
tslint "^5.10.0"
tslint-config-semistandard "^7.0.0"
typescript "^2.9.2"
"@types/jest@^23.1.1":
@ -1217,7 +1219,7 @@ buffer-from@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04"
builtin-modules@^1.0.0:
builtin-modules@^1.0.0, builtin-modules@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
@ -1319,7 +1321,7 @@ chalk@^1.1.1, chalk@^1.1.3:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1:
chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
dependencies:
@ -1473,7 +1475,7 @@ commander@2.9.0, commander@~2.9.0:
dependencies:
graceful-readlink ">= 1.0.0"
commander@^2.8.1, commander@^2.9.0:
commander@^2.12.1, commander@^2.8.1, commander@^2.9.0:
version "2.15.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
@ -1883,6 +1885,13 @@ diff@^3.2.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
doctrine@0.7.2, doctrine@^0.7.2:
version "0.7.2"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523"
dependencies:
esutils "^1.1.6"
isarray "0.0.1"
doctrine@1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
@ -2126,6 +2135,10 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
esutils@^1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375"
esutils@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
@ -5360,6 +5373,76 @@ trim-right@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
tslib@1.9.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8"
tslib@^1.0.0, tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1:
version "1.9.3"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
tslint-config-semistandard@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/tslint-config-semistandard/-/tslint-config-semistandard-7.0.0.tgz#c2d3214b6282a4fed07e875dd9f0691be4e832f1"
dependencies:
tslint-config-standard "^7.0.0"
tslint-eslint-rules "^4.1.1"
tslint-config-standard@^7.0.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/tslint-config-standard/-/tslint-config-standard-7.1.0.tgz#6bcc435a179478e365f6cc62312a561221985760"
dependencies:
tslint-eslint-rules "^5.3.1"
tslint-eslint-rules@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-4.1.1.tgz#7c30e7882f26bc276bff91d2384975c69daf88ba"
dependencies:
doctrine "^0.7.2"
tslib "^1.0.0"
tsutils "^1.4.0"
tslint-eslint-rules@^5.3.1:
version "5.3.1"
resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-5.3.1.tgz#10dec4361df0b3e4385d91ff8e0226bda4ec2ad4"
dependencies:
doctrine "0.7.2"
tslib "1.9.0"
tsutils "2.8.0"
tslint@^5.10.0:
version "5.10.0"
resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.10.0.tgz#11e26bccb88afa02dd0d9956cae3d4540b5f54c3"
dependencies:
babel-code-frame "^6.22.0"
builtin-modules "^1.1.1"
chalk "^2.3.0"
commander "^2.12.1"
diff "^3.2.0"
glob "^7.1.1"
js-yaml "^3.7.0"
minimatch "^3.0.4"
resolve "^1.3.2"
semver "^5.3.0"
tslib "^1.8.0"
tsutils "^2.12.1"
tsutils@2.8.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.8.0.tgz#0160173729b3bf138628dd14a1537e00851d814a"
dependencies:
tslib "^1.7.1"
tsutils@^1.4.0:
version "1.9.1"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-1.9.1.tgz#b9f9ab44e55af9681831d5f28d0aeeaf5c750cb0"
tsutils@^2.12.1:
version "2.27.1"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.27.1.tgz#ab0276ac23664f36ce8fd4414daec4aebf4373ee"
dependencies:
tslib "^1.8.1"
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"