@agoric/network 0.1.1-upgrade-16-dev-d492653.0 → 0.1.1-upgrade-16-dev-0549112.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agoric/network",
3
- "version": "0.1.1-upgrade-16-dev-d492653.0+d492653",
3
+ "version": "0.1.1-upgrade-16-dev-0549112.0+0549112",
4
4
  "description": "Agoric's network protocol API",
5
5
  "type": "module",
6
6
  "main": "./src/index.js",
@@ -21,10 +21,10 @@
21
21
  "author": "Agoric",
22
22
  "license": "Apache-2.0",
23
23
  "dependencies": {
24
- "@agoric/assert": "0.6.1-upgrade-16-dev-d492653.0+d492653",
25
- "@agoric/internal": "0.3.3-upgrade-16-dev-d492653.0+d492653",
26
- "@agoric/store": "0.9.3-upgrade-16-dev-d492653.0+d492653",
27
- "@agoric/vat-data": "0.5.3-upgrade-16-dev-d492653.0+d492653",
24
+ "@agoric/assert": "0.6.1-upgrade-16-dev-0549112.0+0549112",
25
+ "@agoric/internal": "0.3.3-upgrade-16-dev-0549112.0+0549112",
26
+ "@agoric/store": "0.9.3-upgrade-16-dev-0549112.0+0549112",
27
+ "@agoric/vat-data": "0.5.3-upgrade-16-dev-0549112.0+0549112",
28
28
  "@endo/base64": "^1.0.5",
29
29
  "@endo/far": "^1.1.2",
30
30
  "@endo/pass-style": "^1.4.0",
@@ -32,10 +32,10 @@
32
32
  "@endo/promise-kit": "^1.1.2"
33
33
  },
34
34
  "devDependencies": {
35
- "@agoric/swingset-liveslots": "0.10.3-upgrade-16-dev-d492653.0+d492653",
36
- "@agoric/swingset-vat": "0.32.3-upgrade-16-dev-d492653.0+d492653",
37
- "@agoric/vow": "0.1.1-upgrade-16-dev-d492653.0+d492653",
38
- "@agoric/zone": "0.2.3-upgrade-16-dev-d492653.0+d492653",
35
+ "@agoric/swingset-liveslots": "0.10.3-upgrade-16-dev-0549112.0+0549112",
36
+ "@agoric/swingset-vat": "0.32.3-upgrade-16-dev-0549112.0+0549112",
37
+ "@agoric/vow": "0.1.1-upgrade-16-dev-0549112.0+0549112",
38
+ "@agoric/zone": "0.2.3-upgrade-16-dev-0549112.0+0549112",
39
39
  "@endo/bundle-source": "^3.2.3",
40
40
  "ava": "^5.3.0",
41
41
  "c8": "^9.1.0"
@@ -68,5 +68,5 @@
68
68
  "typeCoverage": {
69
69
  "atLeast": 89.7
70
70
  },
71
- "gitHead": "d49265372b3cdd681558791b0c780e1c3062bdcc"
71
+ "gitHead": "05491122ee61362c8310a7924ac67f033b02e38f"
72
72
  }
package/src/bytes.d.ts CHANGED
@@ -18,14 +18,14 @@ export function coerceToByteSource(specimen: unknown): ByteSource;
18
18
  * @param {ByteSource} byteSource
19
19
  * @returns {Bytes}
20
20
  */
21
- export function toBytes(byteSource: ByteSource): string;
21
+ export function toBytes(byteSource: ByteSource): Bytes;
22
22
  /**
23
23
  * Convert bytes to a String.
24
24
  *
25
25
  * @param {Bytes} bytes
26
26
  * @returns {string}
27
27
  */
28
- export function bytesToString(bytes: string): string;
28
+ export function bytesToString(bytes: Bytes): string;
29
29
  /**
30
30
  * Base64, as specified in https://tools.ietf.org/html/rfc4648#section-4
31
31
  *
@@ -39,6 +39,8 @@ export function byteSourceToBase64(byteSource: ByteSource): string;
39
39
  * @param {string} string Base64-encoded string
40
40
  * @returns {Bytes} decoded bytes
41
41
  */
42
- export function base64ToBytes(string: string): string;
43
- export type ByteSource = string | Iterable<number> | Buffer | Uint8Array;
42
+ export function base64ToBytes(string: string): Bytes;
43
+ export type ByteSource = Bytes | Buffer | Uint8Array | Iterable<number>;
44
+ import type { Bytes } from './types.js';
45
+ import type { Bytes as Bytes_1 } from './types.js';
44
46
  //# sourceMappingURL=bytes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["bytes.js"],"names":[],"mappings":"AAKA;;GAEG;AAEH,2EAA2E;AAE3E;;;;;;;GAOG;AACH,6CAHW,OAAO,GACL,UAAU,CAmBtB;AAuBD;;;;;;GAMG;AACH,oCAHW,UAAU,UAQpB;AAED;;;;;GAKG;AACH,8CAFa,MAAM,CAIlB;AAED;;;;;GAKG;AACH,+CAHW,UAAU,GACR,MAAM,CAKlB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,UAKhB"}
1
+ {"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["bytes.js"],"names":[],"mappings":"AAKA;;GAEG;AAEH,2EAA2E;AAE3E;;;;;;;GAOG;AACH,6CAHW,OAAO,GACL,UAAU,CAmBtB;AAuBD;;;;;;GAMG;AACH,oCAHW,UAAU,GACR,KAAK,CAOjB;AAED;;;;;GAKG;AACH,qCAHW,KAAK,GACH,MAAM,CAIlB;AAED;;;;;GAKG;AACH,+CAHW,UAAU,GACR,MAAM,CAKlB;AAED;;;;;GAKG;AACH,sCAHW,MAAM,GACJ,KAAK,CAIjB;yBA7Fa,KAAK,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;2BAHpC,YAAY;sCAAZ,YAAY"}
package/src/network.d.ts CHANGED
@@ -12,11 +12,11 @@ export function getPrefixes(addr: string): string[];
12
12
  * @param {ReturnType<import('@agoric/vow').prepareVowTools>} powers
13
13
  */
14
14
  export function prepareLoopbackProtocolHandler(zone: import("@agoric/base-zone").Zone, { watch, allVows }: ReturnType<(zone: import("@agoric/base-zone").Zone, powers?: {
15
- isRetryableReason?: ((reason: any) => boolean) | undefined;
15
+ isRetryableReason?: import("@agoric/vow").IsRetryableReason | undefined;
16
16
  } | undefined) => {
17
- when: <T, TResult1 = import("@agoric/vow").Unwrap<T>, TResult2 = never>(specimenP: T, onFulfilled?: ((value: import("@agoric/vow").Unwrap<T>) => TResult1 | PromiseLike<TResult1>) | undefined, onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined) => Promise<TResult1 | TResult2>;
18
- watch: <T_1 = any, TResult1_1 = T_1, TResult2_1 = never, C = any>(specimenP: import("@agoric/vow").ERef<T_1 | import("@agoric/vow").Vow<T_1>>, watcher?: import("@agoric/vow").Watcher<T_1, TResult1_1, TResult2_1> | undefined, watcherContext?: C | undefined) => import("@agoric/vow").Vow<Exclude<TResult1_1, void> | Exclude<TResult2_1, void> extends never ? TResult1_1 : Exclude<TResult1_1, void> | Exclude<TResult2_1, void>>;
19
- makeVowKit: <T_2>() => import("@agoric/vow").VowKit<T_2>;
17
+ when: <T, TResult1 = import("@agoric/vow").EUnwrap<T>, TResult2 = never>(specimenP: T, onFulfilled?: ((value: import("@agoric/vow").EUnwrap<T>) => TResult1 | PromiseLike<TResult1>) | undefined, onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined) => Promise<TResult1 | TResult2>;
18
+ watch: <T = any, TResult1 = T, TResult2 = never, C extends any[] = any[]>(specimenP: import("@agoric/vow").ERef<T | import("@agoric/vow").Vow<T>>, watcher?: import("@agoric/vow").Watcher<T, TResult1, TResult2, C> | undefined, ...watcherArgs: C) => import("@agoric/vow").Vow<Exclude<TResult1, void> | Exclude<TResult2, void> extends never ? TResult1 : Exclude<TResult1, void> | Exclude<TResult2, void>>;
19
+ makeVowKit: <T>() => import("@agoric/vow").VowKit<T>;
20
20
  allVows: (vows: unknown[]) => import("@agoric/vow").Vow<any[]>;
21
21
  }>): (instancePrefix?: string | undefined) => import("@endo/exo").Guarded<{
22
22
  onCreate(_impl: any, _protocolHandler: any): Promise<void>;
@@ -28,7 +28,7 @@ export function prepareLoopbackProtocolHandler(zone: import("@agoric/base-zone")
28
28
  * @param {Endpoint} remoteAddr
29
29
  * @returns {import('@agoric/vow').PromiseVow<AttemptDescription>}}
30
30
  */
31
- onConnect(_port: any, localAddr: string, remoteAddr: string): import("@agoric/vow").PromiseVow<AttemptDescription>;
31
+ onConnect(_port: any, localAddr: Endpoint, remoteAddr: Endpoint): import("@agoric/vow").PromiseVow<AttemptDescription>;
32
32
  onInstantiate(_port: any, _localAddr: any, _remote: any, _protocol: any): Promise<string>;
33
33
  onListen(port: any, localAddr: any, listenHandler: any, _protocolHandler: any): Promise<void>;
34
34
  /**
@@ -37,25 +37,7 @@ export function prepareLoopbackProtocolHandler(zone: import("@agoric/base-zone")
37
37
  * @param {import('@agoric/vow').Remote<ListenHandler>} listenHandler
38
38
  * @param {*} _protocolHandler
39
39
  */
40
- onListenRemove(port: import("@agoric/vow").Remote<Port, {}>, localAddr: string, listenHandler: import("@agoric/vow").Remote<ListenHandler, {
41
- /**
42
- * The listener has been registered
43
- */
44
- onListen?: undefined;
45
- /**
46
- * The connection was rejected
47
- */
48
- onReject?: undefined;
49
- /**
50
- * There was an error while listening
51
- */
52
- onError?: undefined;
53
- /**
54
- * The
55
- * listener has been removed
56
- */
57
- onRemove?: undefined;
58
- }>, _protocolHandler: any): Promise<void>;
40
+ onListenRemove(port: import("@agoric/vow").Remote<Port>, localAddr: Endpoint, listenHandler: import("@agoric/vow").Remote<ListenHandler>, _protocolHandler: any): Promise<void>;
59
41
  onRevoke(_port: any, _localAddr: any, _protocolHandler: any): Promise<void>;
60
42
  }>;
61
43
  /**
@@ -67,20 +49,15 @@ export function prepareLoopbackProtocolHandler(zone: import("@agoric/base-zone")
67
49
  */
68
50
  export const ENDPOINT_SEPARATOR: "/";
69
51
  export function rethrowUnlessMissing(err: unknown): undefined;
70
- export function crossoverConnection(zone: import("@agoric/zone").Zone, handler0: import("@agoric/vow").Remote<Required<ConnectionHandler>, {}>, addr0: string, handler1: import("@agoric/vow").Remote<Required<ConnectionHandler>, {}>, addr1: string, makeConnection: (opts: ConnectionOpts) => Connection, current?: globalThis.WeakSetStore<Closable> | undefined): Connection[];
52
+ export function crossoverConnection(zone: import("@agoric/zone").Zone, handler0: import("@agoric/vow").Remote<Required<ConnectionHandler>>, addr0: Endpoint, handler1: import("@agoric/vow").Remote<Required<ConnectionHandler>>, addr1: Endpoint, makeConnection: (opts: ConnectionOpts) => Connection, current?: globalThis.WeakSetStore<Closable> | undefined): Connection[];
71
53
  export function prepareNetworkProtocol(zone: import("@agoric/base-zone").Zone, powers: ReturnType<(zone: import("@agoric/base-zone").Zone, powers?: {
72
- isRetryableReason?: ((reason: any) => boolean) | undefined;
54
+ isRetryableReason?: import("@agoric/vow").IsRetryableReason | undefined;
73
55
  } | undefined) => {
74
- when: <T, TResult1 = import("@agoric/vow").Unwrap<T>, TResult2 = never>(specimenP: T, onFulfilled?: ((value: import("@agoric/vow").Unwrap<T>) => TResult1 | PromiseLike<TResult1>) | undefined, onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined) => Promise<TResult1 | TResult2>;
75
- watch: <T_1 = any, TResult1_1 = T_1, TResult2_1 = never, C = any>(specimenP: import("@agoric/vow").ERef<T_1 | import("@agoric/vow").Vow<T_1>>, watcher?: import("@agoric/vow").Watcher<T_1, TResult1_1, TResult2_1> | undefined, watcherContext?: C | undefined) => import("@agoric/vow").Vow<Exclude<TResult1_1, void> | Exclude<TResult2_1, void> extends never ? TResult1_1 : Exclude<TResult1_1, void> | Exclude<TResult2_1, void>>;
76
- makeVowKit: <T_2>() => import("@agoric/vow").VowKit<T_2>;
56
+ when: <T, TResult1 = import("@agoric/vow").EUnwrap<T>, TResult2 = never>(specimenP: T, onFulfilled?: ((value: import("@agoric/vow").EUnwrap<T>) => TResult1 | PromiseLike<TResult1>) | undefined, onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined) => Promise<TResult1 | TResult2>;
57
+ watch: <T = any, TResult1 = T, TResult2 = never, C extends any[] = any[]>(specimenP: import("@agoric/vow").ERef<T | import("@agoric/vow").Vow<T>>, watcher?: import("@agoric/vow").Watcher<T, TResult1, TResult2, C> | undefined, ...watcherArgs: C) => import("@agoric/vow").Vow<Exclude<TResult1, void> | Exclude<TResult2, void> extends never ? TResult1 : Exclude<TResult1, void> | Exclude<TResult2, void>>;
58
+ makeVowKit: <T>() => import("@agoric/vow").VowKit<T>;
77
59
  allVows: (vows: unknown[]) => import("@agoric/vow").Vow<any[]>;
78
- }>): (protocolHandler: import("@agoric/vow").Remote<ProtocolHandler, {
79
- /**
80
- * Return unique suffix for local address
81
- */
82
- onInstantiate?: undefined;
83
- }>) => Protocol;
60
+ }>): (protocolHandler: import("@agoric/vow").Remote<ProtocolHandler>) => Protocol;
84
61
  export function prepareEchoConnectionKit(zone: import("@agoric/base-zone").Zone): () => import("@endo/exo").GuardedKit<{
85
62
  handler: {
86
63
  /**
@@ -88,13 +65,13 @@ export function prepareEchoConnectionKit(zone: import("@agoric/base-zone").Zone)
88
65
  * @param {Bytes} bytes
89
66
  * @param {ConnectionHandler} _connectionHandler
90
67
  */
91
- onReceive(_connection: Connection, bytes: string, _connectionHandler: ConnectionHandler): Promise<string>;
68
+ onReceive(_connection: Connection, bytes: Bytes, _connectionHandler: ConnectionHandler): Promise<string>;
92
69
  /**
93
70
  * @param {Connection} _connection
94
71
  * @param {CloseReason} [_reason]
95
72
  * @param {ConnectionHandler} [_connectionHandler]
96
73
  */
97
- onClose(_connection: Connection, _reason?: any, _connectionHandler?: ConnectionHandler | undefined): Promise<void>;
74
+ onClose(_connection: Connection, _reason?: CloseReason, _connectionHandler?: ConnectionHandler | undefined): Promise<void>;
98
75
  };
99
76
  listener: {
100
77
  onAccept(_port: any, _localAddr: any, _remoteAddr: any, _listenHandler: any): Promise<import("@endo/exo").Guarded<{
@@ -103,42 +80,43 @@ export function prepareEchoConnectionKit(zone: import("@agoric/base-zone").Zone)
103
80
  * @param {Bytes} bytes
104
81
  * @param {ConnectionHandler} _connectionHandler
105
82
  */
106
- onReceive(_connection: Connection, bytes: string, _connectionHandler: ConnectionHandler): Promise<string>;
83
+ onReceive(_connection: Connection, bytes: Bytes, _connectionHandler: ConnectionHandler): Promise<string>;
107
84
  /**
108
85
  * @param {Connection} _connection
109
86
  * @param {CloseReason} [_reason]
110
87
  * @param {ConnectionHandler} [_connectionHandler]
111
88
  */
112
- onClose(_connection: Connection, _reason?: any, _connectionHandler?: ConnectionHandler | undefined): Promise<void>;
89
+ onClose(_connection: Connection, _reason?: CloseReason, _connectionHandler?: ConnectionHandler | undefined): Promise<void>;
113
90
  }>>;
114
91
  onListen(port: any, _listenHandler: any): Promise<void>;
115
92
  };
116
93
  }>;
117
94
  export function preparePortAllocator(zone: import("@agoric/base-zone").Zone, { watch }: ReturnType<(zone: import("@agoric/base-zone").Zone, powers?: {
118
- isRetryableReason?: ((reason: any) => boolean) | undefined;
95
+ isRetryableReason?: import("@agoric/vow").IsRetryableReason | undefined;
119
96
  } | undefined) => {
120
- when: <T, TResult1 = import("@agoric/vow").Unwrap<T>, TResult2 = never>(specimenP: T, onFulfilled?: ((value: import("@agoric/vow").Unwrap<T>) => TResult1 | PromiseLike<TResult1>) | undefined, onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined) => Promise<TResult1 | TResult2>;
121
- watch: <T_1 = any, TResult1_1 = T_1, TResult2_1 = never, C = any>(specimenP: import("@agoric/vow").ERef<T_1 | import("@agoric/vow").Vow<T_1>>, watcher?: import("@agoric/vow").Watcher<T_1, TResult1_1, TResult2_1> | undefined, watcherContext?: C | undefined) => import("@agoric/vow").Vow<Exclude<TResult1_1, void> | Exclude<TResult2_1, void> extends never ? TResult1_1 : Exclude<TResult1_1, void> | Exclude<TResult2_1, void>>;
122
- makeVowKit: <T_2>() => import("@agoric/vow").VowKit<T_2>;
97
+ when: <T, TResult1 = import("@agoric/vow").EUnwrap<T>, TResult2 = never>(specimenP: T, onFulfilled?: ((value: import("@agoric/vow").EUnwrap<T>) => TResult1 | PromiseLike<TResult1>) | undefined, onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined) => Promise<TResult1 | TResult2>;
98
+ watch: <T = any, TResult1 = T, TResult2 = never, C extends any[] = any[]>(specimenP: import("@agoric/vow").ERef<T | import("@agoric/vow").Vow<T>>, watcher?: import("@agoric/vow").Watcher<T, TResult1, TResult2, C> | undefined, ...watcherArgs: C) => import("@agoric/vow").Vow<Exclude<TResult1, void> | Exclude<TResult2, void> extends never ? TResult1 : Exclude<TResult1, void> | Exclude<TResult2, void>>;
99
+ makeVowKit: <T>() => import("@agoric/vow").VowKit<T>;
123
100
  allVows: (vows: unknown[]) => import("@agoric/vow").Vow<any[]>;
124
101
  }>): (args_0: {
125
102
  protocol: Protocol;
126
103
  }) => import("@endo/exo").Guarded<{
127
- allocateCustomIBCPort(specifiedName?: string): import("@agoric/vow").Vow<Port>;
128
- allocateICAControllerPort(): import("@agoric/vow").Vow<Port>;
129
- allocateICQControllerPort(): import("@agoric/vow").Vow<Port>;
130
- allocateCustomLocalPort(specifiedName?: string): import("@agoric/vow").Vow<Port>;
104
+ allocateCustomIBCPort(specifiedName?: string): Promise<import("@agoric/vow").Vow<Port>>;
105
+ allocateICAControllerPort(): Promise<import("@agoric/vow").Vow<Port>>;
106
+ allocateICQControllerPort(): Promise<import("@agoric/vow").Vow<Port>>;
107
+ allocateCustomLocalPort(specifiedName?: string): Promise<import("@agoric/vow").Vow<Port>>;
131
108
  }>;
132
109
  export type MakeEchoConnectionKit = ReturnType<typeof prepareEchoConnectionKit>;
133
110
  export type ConnectionOpts = {
134
- addrs: string[];
135
- handlers: import("@agoric/vow").Remote<Required<ConnectionHandler>, {}>[];
136
- conns: globalThis.MapStore<number, Connection>;
137
- current: globalThis.WeakSetStore<Closable>;
111
+ addrs: Endpoint[];
112
+ handlers: import("@agoric/vow").Remote<Required<ConnectionHandler>>[];
113
+ conns: MapStore<number, Connection>;
114
+ current: WeakSetStore<Closable>;
138
115
  l: 0 | 1;
139
116
  r: 0 | 1;
140
117
  };
141
118
  export type PortAllocator = ReturnType<ReturnType<typeof preparePortAllocator>>;
119
+ import type { Endpoint } from './types.js';
142
120
  import type { AttemptDescription } from './types.js';
143
121
  import type { Port } from './types.js';
144
122
  import type { ListenHandler } from './types.js';
@@ -147,4 +125,6 @@ import type { Connection } from './types.js';
147
125
  import type { Closable } from './types.js';
148
126
  import type { ProtocolHandler } from './types.js';
149
127
  import type { Protocol } from './types.js';
128
+ import type { Bytes } from './types.js';
129
+ import type { CloseReason } from './types.js';
150
130
  //# sourceMappingURL=network.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["network.js"],"names":[],"mappings":"AAkCA;;;;GAIG;AACH,kCAFW,MAAM,YAahB;AAutCD,mFAAmF;AAEnF;;;;;GAKG;AACH,qDAHW,OAAO,mBAAmB,EAAE,IAAI,sBAChC,UAAU;;;uFAnwCoG,CAAC;;;oBAc7F,SAC1B;EAovCyD;;;;IAmCpD;;;;;OAKG;;;;IAgEH;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;GA8CV;AA/5CD;;GAEG;AAEH;;;GAGG;AACH,qCAAsC;AAG/B,0CADK,OAAO,aAWlB;AAyJM,0CARI,OAAO,cAAc,EAAE,IAAI,yMAKpB,cAAc,wFAgD/B;AA+6BM,6CAHI,OAAO,mBAAmB,EAAE,IAAI,UAChC,UAAU;;;;;;;EAAuC;;;;;gBAkC3D;AAOM,+CAFI,OAAO,mBAAmB,EAAE,IAAI;;QAsCnC;;;;WAIG;;QASH;;;;WAIG;;;;;YAjBH;;;;eAIG;;YASH;;;;eAIG;;;;;GAuBV;AAyKM,2CAHI,OAAO,mBAAmB,EAAE,IAAI,aAChC,UAAU;;;;;;;EAAuC;;;;;;;GAoEzD;oCA1OW,UAAU,CAAC,OAAO,wBAAwB,CAAC;;;;;;OAjsC3C,CAAC,GAAC,CAAC;OACH,CAAC,GAAC,CAAC;;4BA26CH,UAAU,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;wCAx+CyG,YAAY;0BAAZ,YAAY;mCAAZ,YAAY;uCAAZ,YAAY;gCAAZ,YAAY;8BAAZ,YAAY;qCAAZ,YAAY;8BAAZ,YAAY"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["network.js"],"names":[],"mappings":"AAkCA;;;;GAIG;AACH,kCAFW,MAAM,YAahB;AAutCD,mFAAmF;AAEnF;;;;;GAKG;AACH,qDAHW,OAAO,mBAAmB,EAAE,IAAI,sBAChC,UAAU,CAAC;;;;;;;CAAqC,CAAC;;;;IAmCpD;;;;;OAKG;qBAJQ,GAAC,aACD,QAAQ,cACR,QAAQ,GACN,OAAO,aAAa,EAAE,UAAU,CAAC,kBAAkB,CAAC;;;IAiEjE;;;;;OAKG;yBAJQ,OAAO,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAClC,QAAQ,iBACR,OAAO,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,oBAC3C,GAAC;;GA+CnB;AA/5CD;;GAEG;AAEH;;;GAGG;AACH,qCAAsC;AAG/B,0CADK,OAAO,aAWlB;AAyJM,0CARI,OAAO,cAAc,EAAE,IAAI,YAC3B,OAAO,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,SACzD,QAAQ,YACR,OAAO,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,SACzD,QAAQ,kBACR,CAAC,IAAI,EAAE,cAAc,KAAK,UAAU,yEAgD9C;AA+6BM,6CAHI,OAAO,mBAAmB,EAAE,IAAI,UAChC,UAAU,CAAC;;;;;;;CAAqC,CAAC,qBAM/C,OAAO,aAAa,EAAE,MAAM,CAAC,eAAe,CAAC,KAC3C,QAAQ,CA2BtB;AAOM,+CAFI,OAAO,mBAAmB,EAAE,IAAI;;QAsCnC;;;;WAIG;+BAHQ,UAAU,SACV,KAAK,sBACL,iBAAiB;QAU5B;;;;WAIG;6BAHQ,UAAU,YACV,WAAW;;;;YAftB;;;;eAIG;mCAHQ,UAAU,SACV,KAAK,sBACL,iBAAiB;YAU5B;;;;eAIG;iCAHQ,UAAU,YACV,WAAW;;;;GAyB7B;AAyKM,2CAHI,OAAO,mBAAmB,EAAE,IAAI,aAChC,UAAU,CAAC;;;;;;;CAAqC,CAAC;cAkB7C,QAAQ;;;;;;GAkDpB;oCA1OW,UAAU,CAAC,OAAO,wBAAwB,CAAC;;WArsC3C,QAAQ,EAAE;cACV,OAAO,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE;WAC3D,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;aAC5B,YAAY,CAAC,QAAQ,CAAC;OACtB,CAAC,GAAC,CAAC;OACH,CAAC,GAAC,CAAC;;4BA26CH,UAAU,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;8BAx+CyG,YAAY;wCAAZ,YAAY;0BAAZ,YAAY;mCAAZ,YAAY;uCAAZ,YAAY;gCAAZ,YAAY;8BAAZ,YAAY;qCAAZ,YAAY;8BAAZ,YAAY;2BAAZ,YAAY;iCAAZ,YAAY"}
package/src/network.js CHANGED
@@ -1475,7 +1475,7 @@ export const preparePortAllocator = (zone, { watch }) =>
1475
1475
  */
1476
1476
  ({ protocol }) => ({ protocol, lastICAPortNum: 0n, lastICQPortNum: 0n }),
1477
1477
  {
1478
- allocateCustomIBCPort(specifiedName = '') {
1478
+ async allocateCustomIBCPort(specifiedName = '') {
1479
1479
  const { state } = this;
1480
1480
  let localAddr = `/ibc-port/`;
1481
1481
 
@@ -1488,7 +1488,7 @@ export const preparePortAllocator = (zone, { watch }) =>
1488
1488
  // Allocate an IBC port with a unique generated name.
1489
1489
  return watch(E(state.protocol).bindPort(localAddr));
1490
1490
  },
1491
- allocateICAControllerPort() {
1491
+ async allocateICAControllerPort() {
1492
1492
  const { state } = this;
1493
1493
  state.lastICAPortNum += 1n;
1494
1494
  return watch(
@@ -1497,7 +1497,7 @@ export const preparePortAllocator = (zone, { watch }) =>
1497
1497
  ),
1498
1498
  );
1499
1499
  },
1500
- allocateICQControllerPort() {
1500
+ async allocateICQControllerPort() {
1501
1501
  const { state } = this;
1502
1502
  state.lastICQPortNum += 1n;
1503
1503
  return watch(
@@ -1506,7 +1506,7 @@ export const preparePortAllocator = (zone, { watch }) =>
1506
1506
  ),
1507
1507
  );
1508
1508
  },
1509
- allocateCustomLocalPort(specifiedName = '') {
1509
+ async allocateCustomLocalPort(specifiedName = '') {
1510
1510
  const { state } = this;
1511
1511
 
1512
1512
  let localAddr = `/local/`;
package/src/router.d.ts CHANGED
@@ -19,7 +19,7 @@ export const RouterI: import("@endo/patterns").InterfaceGuard<{
19
19
  }>;
20
20
  export function prepareRouter<T>(zone: import("@agoric/base-zone").Zone): () => import("@endo/exo").Guarded<{
21
21
  /** @param {Endpoint} addr */
22
- getRoutes(addr: string): [string, T][];
22
+ getRoutes(addr: Endpoint): [string, T][];
23
23
  /**
24
24
  * @param {string} prefix
25
25
  * @param {T} route
@@ -32,36 +32,21 @@ export function prepareRouter<T>(zone: import("@agoric/base-zone").Zone): () =>
32
32
  unregister(prefix: string, route: T): void;
33
33
  }>;
34
34
  export function prepareRouterProtocol(zone: import("@agoric/base-zone").Zone, powers: ReturnType<(zone: import("@agoric/base-zone").Zone, powers?: {
35
- isRetryableReason?: ((reason: any) => boolean) | undefined;
35
+ isRetryableReason?: import("@agoric/vow").IsRetryableReason | undefined;
36
36
  } | undefined) => {
37
- when: <T, TResult1 = import("@agoric/vow").Unwrap<T>, TResult2 = never>(specimenP: T, onFulfilled?: ((value: import("@agoric/vow").Unwrap<T>) => TResult1 | PromiseLike<TResult1>) | undefined, onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined) => Promise<TResult1 | TResult2>;
38
- watch: <T_1 = any, TResult1_1 = T_1, TResult2_1 = never, C = any>(specimenP: import("@agoric/vow").ERef<T_1 | import("@agoric/vow").Vow<T_1>>, watcher?: import("@agoric/vow").Watcher<T_1, TResult1_1, TResult2_1> | undefined, watcherContext?: C | undefined) => import("@agoric/vow").Vow<Exclude<TResult1_1, void> | Exclude<TResult2_1, void> extends never ? TResult1_1 : Exclude<TResult1_1, void> | Exclude<TResult2_1, void>>;
39
- makeVowKit: <T_2>() => VowKit<T_2>;
37
+ when: <T, TResult1 = import("@agoric/vow").EUnwrap<T>, TResult2 = never>(specimenP: T, onFulfilled?: ((value: import("@agoric/vow").EUnwrap<T>) => TResult1 | PromiseLike<TResult1>) | undefined, onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined) => Promise<TResult1 | TResult2>;
38
+ watch: <T = any, TResult1 = T, TResult2 = never, C extends any[] = any[]>(specimenP: import("@agoric/vow").ERef<T | import("@agoric/vow").Vow<T>>, watcher?: import("@agoric/vow").Watcher<T, TResult1, TResult2, C> | undefined, ...watcherArgs: C) => import("@agoric/vow").Vow<Exclude<TResult1, void> | Exclude<TResult2, void> extends never ? TResult1 : Exclude<TResult1, void> | Exclude<TResult2, void>>;
39
+ makeVowKit: <T>() => VowKit<T>;
40
40
  allVows: (vows: unknown[]) => import("@agoric/vow").Vow<any[]>;
41
- }>, E?: ((<T_3>(x: T_3) => import("../../../node_modules/@endo/eventual-send/src/E.js").ECallableOrMethods<import("@endo/eventual-send").RemoteFunctions<T_3>>) & {
42
- readonly get: <T_1_1>(x: T_1_1) => import("../../../node_modules/@endo/eventual-send/src/E.js").EGetters<import("@endo/eventual-send").LocalRecord<T_1_1>>;
41
+ }>, E?: ((<T>(x: T) => import("../../../node_modules/@endo/eventual-send/src/E.js").ECallableOrMethods<import("@endo/eventual-send").RemoteFunctions<T>>) & {
42
+ readonly get: <T_1>(x: T_1) => import("../../../node_modules/@endo/eventual-send/src/E.js").EGetters<import("@endo/eventual-send").LocalRecord<T_1>>;
43
43
  readonly resolve: {
44
44
  (): Promise<void>;
45
- <T_2_1>(value: T_2_1): Promise<Awaited<T_2_1>>;
46
- <T_3_1>(value: T_3_1 |
47
- /**
48
- * @import {AttemptDescription, Bytes, Closable, CloseReason, Connection, ConnectionHandler, Endpoint, ListenHandler, Port, Protocol, ProtocolHandler, ProtocolImpl} from './types.js';
49
- * @import {PromiseVow, Remote, VowKit, VowResolver, VowTools} from '@agoric/vow';
50
- */
51
- /**
52
- * @template T
53
- * @typedef {object} Router A delimited string router implementation
54
- * @property {(addr: string) => [string, T][]} getRoutes Return the match and
55
- * route in order of preference
56
- * @property {(prefix: string, route: T) => void} register Add a prefix->route
57
- * to the database
58
- * @property {(prefix: string, route: T) => void} unregister Remove a
59
- * prefix->route from the database
60
- */
61
- PromiseLike<T_3_1>): Promise<Awaited<T_3_1>>;
45
+ <T_2>(value: T_2): Promise<Awaited<T_2>>;
46
+ <T_3>(value: T_3 | PromiseLike<T_3>): Promise<Awaited<T_3>>;
62
47
  };
63
48
  readonly sendOnly: <T_4>(x: T_4) => import("../../../node_modules/@endo/eventual-send/src/E.js").ESendOnlyCallableOrMethods<import("@endo/eventual-send").RemoteFunctions<T_4>>;
64
- readonly when: <T_5, U = T_5>(x: T_5 | PromiseLike<T_5>, onfulfilled?: ((value: T_5) => import("../../../node_modules/@endo/eventual-send/src/E.js").ERef<U>) | undefined, onrejected?: ((reason: any) => import("../../../node_modules/@endo/eventual-send/src/E.js").ERef<U>) | undefined) => Promise<U>;
49
+ readonly when: <T_5, U = T_5>(x: T_5 | PromiseLike<T_5>, onfulfilled?: ((value: T_5) => import("@endo/eventual-send").ERef<U>) | undefined, onrejected?: ((reason: any) => import("@endo/eventual-send").ERef<U>) | undefined) => Promise<U>;
65
50
  }) | undefined): () => import("@endo/exo").Guarded<{
66
51
  /**
67
52
  * @param {string[]} paths
@@ -74,7 +59,7 @@ export function prepareRouterProtocol(zone: import("@agoric/base-zone").Zone, po
74
59
  */
75
60
  unregisterProtocolHandler(prefix: string, protocolHandler: Remote<ProtocolHandler>): void;
76
61
  /** @param {Endpoint} localAddr */
77
- bindPort(localAddr: string): Promise<Port | import("@agoric/vow").Vow<Port>>;
62
+ bindPort(localAddr: Endpoint): Promise<Port | import("@agoric/vow").Vow<Port>>;
78
63
  }>;
79
64
  /**
80
65
  * A delimited string router implementation
@@ -101,6 +86,7 @@ export type RouterProtocol = {
101
86
  registerProtocolHandler: (paths: string[], protocolHandler: ProtocolHandler) => void;
102
87
  unregisterProtocolHandler: (prefix: string, protocolHandler: ProtocolHandler) => void;
103
88
  };
89
+ import type { Endpoint } from './types.js';
104
90
  import type { VowKit } from '@agoric/vow';
105
91
  import type { ProtocolHandler } from './types.js';
106
92
  import type { Remote } from '@agoric/vow';
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["router.js"],"names":[],"mappings":"AAWA;;;GAGG;AAEH;;;;;;;;;GASG;AAEH;;;;GAIG;AAMI,8BAiDU,CAAC,QAnDP,OAAO,mBAAmB,EAAE,IAAI;IAiBrC,6BAA6B;;IAyB7B;;;OAGG;qBAFQ,MAAM,SAQN,CAAC,AAPA;IAKZ;;;OAGG;uBAFQ,MAAM,SACN,CAAC;GAWjB;AAgBM,4CAJI,OAAO,mBAAmB,EAAE,IAAI,UAChC,UAAU;;;uFAlGmD,CAAC;;;oBAQ3C,SACzB;EAyFuD,iBA5GnD,GAAE;6BAGoB,KAAI;;;uBAGoB,KAAI;uBAC7B,KAAI;QAElC;;;WAGG;QAEH;;;;;;;;;WASG;QAEH,YAfO,KAAG,CAAC;;gCAAgE,GAAI;qCAC3D,GAAI,GAAE,YAAc,GAAE,CAAC,gBAAe,CAAE,CAAC,OAAO,GAAG,KAAI,OAC1E,oDAEE,EACF,IAAI,CAAC,CAAC,CAAC,CAAC,YACH,eAAe,CAAC,CAAC,WAAW,KAAI,OAAS,oDAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,YACzD;;IA+HD;;;OAGG;mCAFQ,MAAM,EAAE;IAanB;;;OAGG;sCAFQ,MAAM;IAejB,kCAAkC;;GAUvC;;;;mBAnKqC,CAAC;;;;;eAJzB,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,MAAM,EAID,CAAC,AAJG,CAAC,EAAE;;;;;cAE/B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAEE,CAAC,AAFA,KAAK,IAAI;;;;;gBAElC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI;;;uBA8EzB,MAAM;qCACP,MAAM,EAAE,uCAAuC,IAAI;wCAClD,MAAM,uCAAuC,IAAI;;4BA1FJ,aAAa;qCADyF,YAAY;4BAClH,aAAa;0BADyF,YAAY;gCAClH,aAAa"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["router.js"],"names":[],"mappings":"AAWA;;;GAGG;AAEH;;;;;;;;;GASG;AAEH;;;;GAIG;AAMI,8BAHM,CAAC,QACH,OAAO,mBAAmB,EAAE,IAAI;IAiBrC,6BAA6B;oBAAjB,QAAQ;IAyBpB;;;OAGG;qBAFQ,MAAM,SACN,CAAC;IAKZ;;;OAGG;uBAFQ,MAAM,SACN,CAAC;GAWjB;AAgBM,4CAJI,OAAO,mBAAmB,EAAE,IAAI,UAChC,UAAU,CAAC;;;;;;;CAAqC,CAAC;;;;;;;;wEAjGJ,CAAC,0BACxD,qBAEE,kCAEe,CAAC,2BAA4B,qBAAO;;IAgIhD;;;OAGG;mCAFQ,MAAM,EAAE,mBACR,OAAO,eAAe,CAAC;IAYlC;;;OAGG;sCAFQ,MAAM,mBACN,OAAO,eAAe,CAAC;IAclC,kCAAkC;wBAAtB,QAAQ;GAUzB;;;;mBAzKY,CAAC;;;;;eAEA,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;;;;;cAE/B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI;;;;;gBAElC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI;;;cA8ElC,CAAC,MAAM,EAAE,MAAM,KAAK,WAAW,IAAI,CAAC;6BACpC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,eAAe,KAAK,IAAI;+BAC3D,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,KAAK,IAAI;;8BA3FkG,YAAY;4BAClH,aAAa;qCADyF,YAAY;4BAClH,aAAa;0BADyF,YAAY;gCAClH,aAAa"}
package/src/types.d.ts CHANGED
@@ -50,7 +50,7 @@ export type Port = {
50
50
  /**
51
51
  * Make an outbound connection
52
52
  */
53
- connect: (remote: Endpoint, connectionHandler?: Remote<ConnectionHandler> | undefined) => PromiseVow<Connection>;
53
+ connect: (remote: Endpoint, connectionHandler?: Remote<ConnectionHandler>) => PromiseVow<Connection>;
54
54
  /**
55
55
  * Remove the currently-bound listener
56
56
  */
@@ -91,7 +91,7 @@ export type ConnectionI = {
91
91
  /**
92
92
  * Send a packet on the connection
93
93
  */
94
- send: (packetBytes: Bytes, opts?: Record<string, any>) => PromiseVow<string>;
94
+ send: (packetBytes: Bytes, opts?: Record<string, any>) => PromiseVow<Bytes>;
95
95
  /**
96
96
  * Close both ends of the connection
97
97
  */
@@ -118,11 +118,11 @@ export type ConnectionHandler = {
118
118
  /**
119
119
  * The connection received a packet
120
120
  */
121
- onReceive?: ((connection: Remote<Connection>, ack: Bytes, c: Remote<ConnectionHandler>, opts?: Record<string, any>) => PromiseVow<string>) | undefined;
121
+ onReceive?: ((connection: Remote<Connection>, ack: Bytes, c: Remote<ConnectionHandler>, opts?: Record<string, any>) => PromiseVow<Bytes>) | undefined;
122
122
  /**
123
123
  * The connection has been closed
124
124
  */
125
- onClose?: ((connection: Remote<Connection>, reason?: CloseReason, c?: Remote<ConnectionHandler> | undefined) => PromiseVow<void>) | undefined;
125
+ onClose?: ((connection: Remote<Connection>, reason?: CloseReason, c?: Remote<ConnectionHandler>) => PromiseVow<void>) | undefined;
126
126
  };
127
127
  /**
128
128
  * The reason a connection was closed
@@ -161,7 +161,7 @@ export type ProtocolHandler = {
161
161
  /**
162
162
  * Return unique suffix for local address
163
163
  */
164
- onInstantiate?: ((port: Remote<Port>, localAddr: Endpoint, remote: Endpoint, p: Remote<ProtocolHandler>) => PromiseVow<string>) | undefined;
164
+ onInstantiate?: ((port: Remote<Port>, localAddr: Endpoint, remote: Endpoint, p: Remote<ProtocolHandler>) => PromiseVow<Endpoint>) | undefined;
165
165
  /**
166
166
  * A port initiates an outbound connection
167
167
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.js"],"names":[],"mappings":";;;4BAa8D,CAAC,sCAAqB,CAAC,mBAD7D,GAAG,EAAE,KAAK,GAAG,IACyB,CAAC,AAAjD,GAAG,QAAQ,CAAC;IAAE,IAAI,EAAE,OAAO,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC;;;;oBAK5E,MAAM;;;;;uBAIN,MAAM;;;;;;;;;;;;;;;;;;;uBAcI,QAAQ;;;;;;;;;;qBAMjB,MAAM,QAAQ;;;;;;;;sBAKf,QAAQ;;;;;;;;;;;;;;;;;;;;;;8CAeL,QAAQ,cACP,QAAQ;;;;gDAMT,QAAQ,cACP,QAAQ;;;;yCAIe,GAAG;;;;;;;;;;;wBASzB,KAAK,SACX,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;;;;;;qBAIjB,MAAM,QAAQ;;;;sBAEd,MAAM,QAAQ;;;;;;;;;;0DAUZ,QAAQ,cACP,QAAQ;;;;uDAMf,KAAK,uCAEH,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;yDAKjB,WAAW;;;;;0BAKZ,GAAG,GAAG,IAAI;;;;;;;;;;;;;;;;;;gCAeG,QAAQ;;;;4CAIlB,QAAQ;;;;8CAMR,QAAQ;;;;oDAOR,QAAQ;;;;qDAOR,QAAQ,UACX,QAAQ;;;;+CAML,QAAQ,UACX,QAAQ;;;;8CAOL,QAAQ;;;;;;;;;mBAMH,kBAAkB;;;;;qBAEzB,MAAM,QAAQ;;;;;sBAEd,MAAM,QAAQ;;;;;;;;;;;;;;uBAKL,QAAQ;;;;0BAGd,QAAQ,cACR,QAAQ;;;;+CAKR,QAAQ;;gCA9LY,aAAa;qCADN,kBAAkB;4BACzB,aAAa"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.js"],"names":[],"mappings":"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"}