@agoric/vats 0.15.2-dev-f8bd523.0.f8bd523 → 0.15.2-dev-c596c96.0.c596c96
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 +16 -16
- package/src/ibc.js +1 -1
- package/src/types.d.ts +2 -5
- package/src/types.d.ts.map +1 -1
- package/src/types.js +13 -5
- package/tools/ibc-utils.d.ts +0 -77
- package/tools/ibc-utils.d.ts.map +0 -1
- package/tools/ibc-utils.js +0 -275
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agoric/vats",
|
|
3
|
-
"version": "0.15.2-dev-
|
|
3
|
+
"version": "0.15.2-dev-c596c96.0.c596c96",
|
|
4
4
|
"description": "Agoric's Vat library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./index.js",
|
|
@@ -20,19 +20,19 @@
|
|
|
20
20
|
"author": "Agoric",
|
|
21
21
|
"license": "Apache-2.0",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@agoric/cosmic-proto": "0.4.1-dev-
|
|
24
|
-
"@agoric/ertp": "0.16.3-dev-
|
|
25
|
-
"@agoric/governance": "0.10.4-dev-
|
|
26
|
-
"@agoric/internal": "0.3.3-dev-
|
|
27
|
-
"@agoric/network": "0.1.1-dev-
|
|
28
|
-
"@agoric/notifier": "0.6.3-dev-
|
|
29
|
-
"@agoric/store": "0.9.3-dev-
|
|
30
|
-
"@agoric/swingset-vat": "0.32.3-dev-
|
|
31
|
-
"@agoric/time": "0.3.3-dev-
|
|
32
|
-
"@agoric/vat-data": "0.5.3-dev-
|
|
33
|
-
"@agoric/vow": "0.1.1-dev-
|
|
34
|
-
"@agoric/zoe": "0.26.3-dev-
|
|
35
|
-
"@agoric/zone": "0.2.3-dev-
|
|
23
|
+
"@agoric/cosmic-proto": "0.4.1-dev-c596c96.0.c596c96",
|
|
24
|
+
"@agoric/ertp": "0.16.3-dev-c596c96.0.c596c96",
|
|
25
|
+
"@agoric/governance": "0.10.4-dev-c596c96.0.c596c96",
|
|
26
|
+
"@agoric/internal": "0.3.3-dev-c596c96.0.c596c96",
|
|
27
|
+
"@agoric/network": "0.1.1-dev-c596c96.0.c596c96",
|
|
28
|
+
"@agoric/notifier": "0.6.3-dev-c596c96.0.c596c96",
|
|
29
|
+
"@agoric/store": "0.9.3-dev-c596c96.0.c596c96",
|
|
30
|
+
"@agoric/swingset-vat": "0.32.3-dev-c596c96.0.c596c96",
|
|
31
|
+
"@agoric/time": "0.3.3-dev-c596c96.0.c596c96",
|
|
32
|
+
"@agoric/vat-data": "0.5.3-dev-c596c96.0.c596c96",
|
|
33
|
+
"@agoric/vow": "0.1.1-dev-c596c96.0.c596c96",
|
|
34
|
+
"@agoric/zoe": "0.26.3-dev-c596c96.0.c596c96",
|
|
35
|
+
"@agoric/zone": "0.2.3-dev-c596c96.0.c596c96",
|
|
36
36
|
"@endo/errors": "^1.2.13",
|
|
37
37
|
"@endo/far": "^1.1.14",
|
|
38
38
|
"@endo/import-bundle": "^1.5.2",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"jessie.js": "^0.3.4"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@agoric/swingset-liveslots": "0.10.3-dev-
|
|
48
|
+
"@agoric/swingset-liveslots": "0.10.3-dev-c596c96.0.c596c96",
|
|
49
49
|
"@endo/bundle-source": "^4.1.2",
|
|
50
50
|
"@endo/init": "^1.1.12",
|
|
51
51
|
"ava": "^6.4.1",
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
"typeCoverage": {
|
|
78
78
|
"atLeast": 90.6
|
|
79
79
|
},
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "c596c962d3107a5666565e01b22d56f7b29c2fc6"
|
|
81
81
|
}
|
package/src/ibc.js
CHANGED
package/src/types.d.ts
CHANGED
|
@@ -3,10 +3,12 @@ import type { Brand, Issuer } from '@agoric/ertp';
|
|
|
3
3
|
import type { PacketSDKType } from '@agoric/cosmic-proto/ibc/core/channel/v1/channel.js';
|
|
4
4
|
import type { BridgeId, Remote } from '@agoric/internal';
|
|
5
5
|
import type { Bytes } from '@agoric/network';
|
|
6
|
+
import type { IBCChannelID, IBCChannelOrdering, IBCConnectionID, IBCPortID } from '@agoric/network/ibc';
|
|
6
7
|
import type { Guarded } from '@endo/exo';
|
|
7
8
|
import type { CaipChainId } from '@agoric/orchestration';
|
|
8
9
|
import type { Installation, Instance } from '@agoric/zoe/src/zoeService/types.js';
|
|
9
10
|
import type { AssetInfo } from './vat-bank.js';
|
|
11
|
+
export type { IBCChannelID, IBCChannelOrdering, IBCConnectionID, IBCPortID, } from '@agoric/network/ibc';
|
|
10
12
|
/**
|
|
11
13
|
* Published vstorage values under the `agoricNames.` hierarchy.
|
|
12
14
|
*/
|
|
@@ -123,10 +125,6 @@ export type ScopedBridgeManager<B extends BridgeId> = Guarded<ScopedBridgeManage
|
|
|
123
125
|
export type BridgeManager = {
|
|
124
126
|
register: <B extends BridgeId>(bridgeId: B, handler?: Remote<BridgeHandler>) => ScopedBridgeManager<B>;
|
|
125
127
|
};
|
|
126
|
-
export type IBCPortID = string;
|
|
127
|
-
export type IBCChannelID = `channel-${number}`;
|
|
128
|
-
export type IBCConnectionID = `connection-${number}`;
|
|
129
|
-
export type IBCChannelOrdering = 'ORDERED' | 'UNORDERED';
|
|
130
128
|
export type IBCPacket = JsonSafe<{
|
|
131
129
|
data: Bytes;
|
|
132
130
|
source_channel: IBCChannelID;
|
|
@@ -296,5 +294,4 @@ type SendPacketDownCall = {
|
|
|
296
294
|
* `JSON.parse(atob(packet.data))` to extract it.
|
|
297
295
|
*/
|
|
298
296
|
export type VTransferIBCEvent = IBCEvent<'acknowledgementPacket', 'VTRANSFER_IBC_EVENT'> | IBCEvent<'writeAcknowledgement', 'VTRANSFER_IBC_EVENT'> | IBCEvent<'timeoutPacket', 'VTRANSFER_IBC_EVENT'>;
|
|
299
|
-
export {};
|
|
300
297
|
//# sourceMappingURL=types.d.ts.map
|
package/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"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"}
|
package/src/types.js
CHANGED
|
@@ -5,6 +5,12 @@
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
8
14
|
|
|
9
15
|
|
|
10
16
|
|
|
@@ -14,6 +20,13 @@
|
|
|
14
20
|
|
|
15
21
|
|
|
16
22
|
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
17
30
|
|
|
18
31
|
/**
|
|
19
32
|
* Published vstorage values under the `agoricNames.` hierarchy.
|
|
@@ -152,11 +165,6 @@
|
|
|
152
165
|
|
|
153
166
|
|
|
154
167
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
168
|
|
|
161
169
|
|
|
162
170
|
|
package/tools/ibc-utils.d.ts
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file Conversion from IBC endpoints to Agoric Network API Endpoints
|
|
3
|
-
* @summary Utilities for constructing and parsing Agoric Network API IBC addresses, which
|
|
4
|
-
* are used to identify IBC ports and channels in a Cosmos-participating
|
|
5
|
-
* blockchain.
|
|
6
|
-
*
|
|
7
|
-
* Agoric Network API addresses are roughly akin to Multiaddrs (@ref
|
|
8
|
-
* https://github.com/multiformats/js-multiaddr) but with a less rigid
|
|
9
|
-
* structure. Both share a similar textual representation, which is
|
|
10
|
-
* encapsulated protocols and values separated by slashes.
|
|
11
|
-
*/
|
|
12
|
-
/** @typedef {`/${string}ibc-port/${string}/${'ordered' | 'unordered'}/${string}`} RemoteIbcAddress */
|
|
13
|
-
/** @typedef {`/ibc-port/${string}`} LocalIbcAddress */
|
|
14
|
-
/**
|
|
15
|
-
* @import {IBCChannelID, IBCChannelOrdering,
|
|
16
|
-
* IBCConnectionID, IBCPortID} from '../src/types.js';
|
|
17
|
-
* @import {Endpoint} from '@agoric/network';
|
|
18
|
-
*/
|
|
19
|
-
/**
|
|
20
|
-
* @typedef {object} IBCEndpoint
|
|
21
|
-
* @property {IBCConnectionID[]} hops
|
|
22
|
-
* @property {IBCPortID} portID
|
|
23
|
-
* @property {IBCChannelOrdering} [order]
|
|
24
|
-
* @property {string} [version]
|
|
25
|
-
* @property {IBCChannelID} [channelID]
|
|
26
|
-
*/
|
|
27
|
-
export const IBC_ADDR_RE: RegExp;
|
|
28
|
-
export const VALID_ORDERS: readonly ["ordered", "unordered", "ORDERED", "UNORDERED"];
|
|
29
|
-
export function encodeSlashes(raw: string): string;
|
|
30
|
-
export function decodeSlashes(encoded: string): string;
|
|
31
|
-
export function validateIbcAddress(addr: any): any;
|
|
32
|
-
export function decodeIbcHops(h: string): IBCConnectionID[];
|
|
33
|
-
export function decodeIbcEndpoint(addr: string): IBCEndpoint;
|
|
34
|
-
export function encodeIbcEndpoint({ hops, portID, order: rawOrder, version, channelID, }: {
|
|
35
|
-
hops?: string[] | undefined;
|
|
36
|
-
portID: string;
|
|
37
|
-
order: "ordered" | "unordered" | "ORDERED" | "UNORDERED";
|
|
38
|
-
version: string;
|
|
39
|
-
channelID?: string | undefined;
|
|
40
|
-
}): Endpoint;
|
|
41
|
-
/**
|
|
42
|
-
* @overload
|
|
43
|
-
* @param {string} remoteAddr
|
|
44
|
-
* @param {undefined | false} [returnMatch]
|
|
45
|
-
* @returns {boolean}
|
|
46
|
-
*/
|
|
47
|
-
export function validateRemoteIbcAddress(remoteAddr: string, returnMatch?: undefined | false): boolean;
|
|
48
|
-
/**
|
|
49
|
-
* @overload
|
|
50
|
-
* @param {string} remoteAddr
|
|
51
|
-
* @param {true} returnMatch
|
|
52
|
-
* @returns {RegExpMatchArray}
|
|
53
|
-
*/
|
|
54
|
-
export function validateRemoteIbcAddress(remoteAddr: string, returnMatch: true): RegExpMatchArray;
|
|
55
|
-
export function decodeRemoteIbcAddress(remoteAddr: string): {
|
|
56
|
-
rPortID: string;
|
|
57
|
-
order: IBCChannelOrdering;
|
|
58
|
-
version: string;
|
|
59
|
-
hops: `connection-${number}`[];
|
|
60
|
-
};
|
|
61
|
-
export function localAddrToPortID(localAddr: LocalIbcAddress): string;
|
|
62
|
-
export function encodeRemoteIbcAddress(hops: string[], portID: string, order: "ordered" | "unordered" | "ORDERED" | "UNORDERED", version: string, channelID?: string): RemoteIbcAddress;
|
|
63
|
-
export function encodeLocalIbcAddress(portID: string, order: "ordered" | "unordered" | "ORDERED" | "UNORDERED", version: string): string;
|
|
64
|
-
export type RemoteIbcAddress = `/${string}ibc-port/${string}/${"ordered" | "unordered"}/${string}`;
|
|
65
|
-
export type LocalIbcAddress = `/ibc-port/${string}`;
|
|
66
|
-
export type IBCEndpoint = {
|
|
67
|
-
hops: IBCConnectionID[];
|
|
68
|
-
portID: IBCPortID;
|
|
69
|
-
order?: IBCChannelOrdering | undefined;
|
|
70
|
-
version?: string | undefined;
|
|
71
|
-
channelID?: `channel-${number}` | undefined;
|
|
72
|
-
};
|
|
73
|
-
import type { IBCConnectionID } from '../src/types.js';
|
|
74
|
-
import type { Endpoint } from '@agoric/network';
|
|
75
|
-
import type { IBCChannelOrdering } from '../src/types.js';
|
|
76
|
-
import type { IBCPortID } from '../src/types.js';
|
|
77
|
-
//# sourceMappingURL=ibc-utils.d.ts.map
|
package/tools/ibc-utils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ibc-utils.d.ts","sourceRoot":"","sources":["ibc-utils.js"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,sGAAsG;AACtG,uDAAuD;AAEvD;;;;GAIG;AAEH;;;;;;;GAOG;AAEH,iCACsJ;AAGtJ,qFAKG;AAII,mCADK,MAAM,UAC8C;AAIzD,uCADK,MAAM,UACsD;AAGjE,mDASN;AAQM,iCAHI,MAAM,GACJ,eAAe,EAAE,CAsB7B;AAOM,wCAHI,MAAM,GACJ,WAAW,CAkBvB;AAYM,0FAPJ;IAAwB,IAAI;IACP,MAAM,EAAnB,MAAM;IACkD,KAAK,EAA7D,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW;IACpC,OAAO,EAApB,MAAM;IACQ,SAAS;CAC/B,GAAU,QAAQ,CAwCpB;;;;;;;AAIE,qDACQ,MAAM,gBACN,SAAS,GAAG,KAAK,GACf,OAAO,CACnB;;;;;;;AAEE,qDACQ,MAAM,eACN,IAAI,GACF,gBAAgB,CAC5B;AA0BM,mDADK,MAAM;;;;;EAYjB;AAOM,6CAHI,eAAe,GACb,MAAM,CAqBlB;AAWM,6CAPI,MAAM,EAAE,UACR,MAAM,SACN,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,WACjD,MAAM,cACN,MAAM,GACJ,gBAAgB,CAiB5B;AAQM,8CAJI,MAAM,SACN,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,WACjD,MAAM,UAIhB;+BArQa,IAAI,MAAM,YAAY,MAAM,IAAI,SAAS,GAAG,WAAW,IAAI,MAAM,EAAE;8BACnE,aAAa,MAAM,EAAE;;UAUrB,eAAe,EAAE;YACjB,SAAS;;;;;qCAPe,iBAAiB;8BAC5B,iBAAiB;wCADN,iBAAiB;+BAAjB,iBAAiB"}
|
package/tools/ibc-utils.js
DELETED
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file Conversion from IBC endpoints to Agoric Network API Endpoints
|
|
3
|
-
* @summary Utilities for constructing and parsing Agoric Network API IBC addresses, which
|
|
4
|
-
* are used to identify IBC ports and channels in a Cosmos-participating
|
|
5
|
-
* blockchain.
|
|
6
|
-
*
|
|
7
|
-
* Agoric Network API addresses are roughly akin to Multiaddrs (@ref
|
|
8
|
-
* https://github.com/multiformats/js-multiaddr) but with a less rigid
|
|
9
|
-
* structure. Both share a similar textual representation, which is
|
|
10
|
-
* encapsulated protocols and values separated by slashes.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
/** @typedef {`/${string}ibc-port/${string}/${'ordered' | 'unordered'}/${string}`} RemoteIbcAddress */
|
|
14
|
-
/** @typedef {`/ibc-port/${string}`} LocalIbcAddress */
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* @import {IBCChannelID, IBCChannelOrdering,
|
|
18
|
-
* IBCConnectionID, IBCPortID} from '../src/types.js';
|
|
19
|
-
* @import {Endpoint} from '@agoric/network';
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* @typedef {object} IBCEndpoint
|
|
24
|
-
* @property {IBCConnectionID[]} hops
|
|
25
|
-
* @property {IBCPortID} portID
|
|
26
|
-
* @property {IBCChannelOrdering} [order]
|
|
27
|
-
* @property {string} [version]
|
|
28
|
-
* @property {IBCChannelID} [channelID]
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
export const IBC_ADDR_RE =
|
|
32
|
-
/^(?<hops>\/ibc-hop\/[^/]+)*\/ibc-port\/(?<portID>[^/]+)(\/(?<order>ordered|unordered)\/(?<version>[^/]+)(\/ibc-channel\/(?<channelID>[^/]+))?)?$/s;
|
|
33
|
-
harden(IBC_ADDR_RE);
|
|
34
|
-
|
|
35
|
-
export const VALID_ORDERS = /** @type {const} */ ([
|
|
36
|
-
'ordered',
|
|
37
|
-
'unordered',
|
|
38
|
-
'ORDERED',
|
|
39
|
-
'UNORDERED',
|
|
40
|
-
]);
|
|
41
|
-
harden(VALID_ORDERS);
|
|
42
|
-
|
|
43
|
-
/** @param {string} raw */
|
|
44
|
-
export const encodeSlashes = raw => raw.replaceAll('/', '\\x2f');
|
|
45
|
-
harden(encodeSlashes);
|
|
46
|
-
|
|
47
|
-
/** @param {string} encoded */
|
|
48
|
-
export const decodeSlashes = encoded => encoded.replaceAll('\\x2f', '/');
|
|
49
|
-
harden(decodeSlashes);
|
|
50
|
-
|
|
51
|
-
export const validateIbcAddress = addr => {
|
|
52
|
-
const match = addr.match(IBC_ADDR_RE);
|
|
53
|
-
// .groups is to inform TS
|
|
54
|
-
if (!(match && match.groups)) {
|
|
55
|
-
throw TypeError(
|
|
56
|
-
`IBC address ${addr} must be '(/ibc-hop/CONNECTION)*/ibc-port/PORT/(ordered|unordered)/VERSION(/ibc-channel/CHANNEL_ID)?'`,
|
|
57
|
-
);
|
|
58
|
-
}
|
|
59
|
-
return match;
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Decode the /ibc-hop/CONNECTION segments of an IBC address.
|
|
64
|
-
*
|
|
65
|
-
* @param {string} h
|
|
66
|
-
* @returns {IBCConnectionID[]}
|
|
67
|
-
*/
|
|
68
|
-
export const decodeIbcHops = h => {
|
|
69
|
-
/** @type {IBCConnectionID[]} */
|
|
70
|
-
const hops = [];
|
|
71
|
-
|
|
72
|
-
/** @type {string} */
|
|
73
|
-
while (h) {
|
|
74
|
-
const m = h.match(/^\/ibc-hop\/(?<hop>[^/]+)/);
|
|
75
|
-
if (!m || !m.groups) {
|
|
76
|
-
throw Error(
|
|
77
|
-
`internal: ${JSON.stringify(h)} did not begin with "/ibc-hop/XXX"`,
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
h = h.slice(m[0].length);
|
|
81
|
-
|
|
82
|
-
const hop = /** @type {IBCConnectionID} */ (m.groups.hop);
|
|
83
|
-
assert(typeof hop === 'string' && hop.startsWith('connection-'));
|
|
84
|
-
hops.push(hop);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
return hops;
|
|
88
|
-
};
|
|
89
|
-
harden(decodeIbcHops);
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* @param {string} addr
|
|
93
|
-
* @returns {IBCEndpoint}
|
|
94
|
-
*/
|
|
95
|
-
export const decodeIbcEndpoint = addr => {
|
|
96
|
-
const match = validateIbcAddress(addr);
|
|
97
|
-
if (!match.groups)
|
|
98
|
-
throw Error('Unexpected error, validateRemoteIbcAddress should throw.');
|
|
99
|
-
|
|
100
|
-
const hops = decodeIbcHops(match.groups.hops);
|
|
101
|
-
|
|
102
|
-
// Generate a circuit.
|
|
103
|
-
const { portID, version, channelID, order } = match.groups;
|
|
104
|
-
return {
|
|
105
|
-
hops,
|
|
106
|
-
portID,
|
|
107
|
-
...(order && { order: order.toUpperCase() }),
|
|
108
|
-
...(version && { version: decodeSlashes(version) }),
|
|
109
|
-
...(channelID && { channelID }),
|
|
110
|
-
};
|
|
111
|
-
};
|
|
112
|
-
harden(decodeIbcEndpoint);
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* @param {object} spec
|
|
116
|
-
* @param {string[]} [spec.hops]
|
|
117
|
-
* @param {string} spec.portID
|
|
118
|
-
* @param {'ordered' | 'unordered' | 'ORDERED' | 'UNORDERED'} spec.order
|
|
119
|
-
* @param {string} spec.version
|
|
120
|
-
* @param {string} [spec.channelID]
|
|
121
|
-
* @returns {Endpoint}
|
|
122
|
-
*/
|
|
123
|
-
export const encodeIbcEndpoint = ({
|
|
124
|
-
hops = [],
|
|
125
|
-
portID,
|
|
126
|
-
order: rawOrder,
|
|
127
|
-
version,
|
|
128
|
-
channelID,
|
|
129
|
-
}) => {
|
|
130
|
-
const isLegitString = str =>
|
|
131
|
-
typeof str === 'string' && str && !str.includes('/');
|
|
132
|
-
let addr = '';
|
|
133
|
-
assert(Array.isArray(hops), 'hops must be an array');
|
|
134
|
-
for (const hop of hops) {
|
|
135
|
-
assert(isLegitString(hop), `invalid hop ${hop}`);
|
|
136
|
-
addr += `/ibc-hop/${hop}`;
|
|
137
|
-
}
|
|
138
|
-
assert(isLegitString(portID), `invalid portID ${portID}`);
|
|
139
|
-
addr += `/ibc-port/${portID}`;
|
|
140
|
-
|
|
141
|
-
if (rawOrder !== undefined) {
|
|
142
|
-
assert(isLegitString(rawOrder), `invalid order ${rawOrder}`);
|
|
143
|
-
|
|
144
|
-
assert(
|
|
145
|
-
VALID_ORDERS.includes(rawOrder),
|
|
146
|
-
`invalid order ${rawOrder}; ${rawOrder} not found in ${JSON.stringify(VALID_ORDERS)}`,
|
|
147
|
-
);
|
|
148
|
-
|
|
149
|
-
const order = rawOrder.toLowerCase();
|
|
150
|
-
|
|
151
|
-
assert(typeof version === 'string' && version, 'missing version');
|
|
152
|
-
addr += `/${order}/${encodeSlashes(version)}`;
|
|
153
|
-
|
|
154
|
-
if (channelID !== undefined) {
|
|
155
|
-
assert(isLegitString(channelID), `invalid channelID ${channelID}`);
|
|
156
|
-
addr += `/ibc-channel/${channelID}`;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
return addr;
|
|
161
|
-
};
|
|
162
|
-
harden(encodeIbcEndpoint);
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* @overload
|
|
166
|
-
* @param {string} remoteAddr
|
|
167
|
-
* @param {undefined | false} [returnMatch]
|
|
168
|
-
* @returns {boolean}
|
|
169
|
-
*/
|
|
170
|
-
/**
|
|
171
|
-
* @overload
|
|
172
|
-
* @param {string} remoteAddr
|
|
173
|
-
* @param {true} returnMatch
|
|
174
|
-
* @returns {RegExpMatchArray}
|
|
175
|
-
*/
|
|
176
|
-
/**
|
|
177
|
-
* Validates a remote IBC address format and returns true if the address is
|
|
178
|
-
* valid.
|
|
179
|
-
*
|
|
180
|
-
* @param {string} remoteAddr
|
|
181
|
-
* @param {boolean} [returnMatch]
|
|
182
|
-
*/
|
|
183
|
-
export const validateRemoteIbcAddress = (remoteAddr, returnMatch = false) => {
|
|
184
|
-
const match = validateIbcAddress(remoteAddr);
|
|
185
|
-
// .groups is to inform TS https://github.com/microsoft/TypeScript/issues/32098
|
|
186
|
-
if (!(match && match.groups)) {
|
|
187
|
-
throw TypeError(
|
|
188
|
-
`Remote address ${remoteAddr} must be '(/ibc-hop/CONNECTION)*/ibc-port/PORT/(ordered|unordered)/VERSION'`,
|
|
189
|
-
);
|
|
190
|
-
}
|
|
191
|
-
if (match.groups.channelID) {
|
|
192
|
-
throw TypeError(
|
|
193
|
-
`Remote address ${remoteAddr} must not include channelID; found ${match.groups.channelID}`,
|
|
194
|
-
);
|
|
195
|
-
}
|
|
196
|
-
return returnMatch ? match : true;
|
|
197
|
-
};
|
|
198
|
-
harden(validateRemoteIbcAddress);
|
|
199
|
-
|
|
200
|
-
/** @param {string} remoteAddr */
|
|
201
|
-
export const decodeRemoteIbcAddress = remoteAddr => {
|
|
202
|
-
validateRemoteIbcAddress(remoteAddr);
|
|
203
|
-
const {
|
|
204
|
-
hops,
|
|
205
|
-
portID: rPortID,
|
|
206
|
-
order,
|
|
207
|
-
version,
|
|
208
|
-
} = decodeIbcEndpoint(remoteAddr);
|
|
209
|
-
assert(order !== undefined, 'missing order');
|
|
210
|
-
assert(version !== undefined, 'missing version');
|
|
211
|
-
return { rPortID, order, version, hops };
|
|
212
|
-
};
|
|
213
|
-
harden(decodeRemoteIbcAddress);
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* @param {LocalIbcAddress} localAddr
|
|
217
|
-
* @returns {string}
|
|
218
|
-
*/
|
|
219
|
-
export const localAddrToPortID = localAddr => {
|
|
220
|
-
const m = localAddr.match(IBC_ADDR_RE);
|
|
221
|
-
// .groups is to inform TS https://github.com/microsoft/TypeScript/issues/32098
|
|
222
|
-
if (!(m && m.groups)) {
|
|
223
|
-
throw TypeError(
|
|
224
|
-
`Invalid port specification ${localAddr}; expected "/ibc-port/PORT"`,
|
|
225
|
-
);
|
|
226
|
-
}
|
|
227
|
-
for (const group of Object.keys(m.groups)) {
|
|
228
|
-
if (group === 'portID') {
|
|
229
|
-
continue;
|
|
230
|
-
}
|
|
231
|
-
if (m.groups[group] !== undefined) {
|
|
232
|
-
throw TypeError(
|
|
233
|
-
`Invalid port specification ${localAddr}; unexpected ${group}=${m.groups[group]}`,
|
|
234
|
-
);
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
return m.groups.portID;
|
|
238
|
-
};
|
|
239
|
-
harden(localAddrToPortID);
|
|
240
|
-
|
|
241
|
-
/**
|
|
242
|
-
* @param {string[]} hops
|
|
243
|
-
* @param {string} portID
|
|
244
|
-
* @param {'ordered' | 'unordered' | 'ORDERED' | 'UNORDERED'} order
|
|
245
|
-
* @param {string} version
|
|
246
|
-
* @param {string} [channelID]
|
|
247
|
-
* @returns {RemoteIbcAddress}
|
|
248
|
-
*/
|
|
249
|
-
export const encodeRemoteIbcAddress = (
|
|
250
|
-
hops,
|
|
251
|
-
portID,
|
|
252
|
-
order,
|
|
253
|
-
version,
|
|
254
|
-
channelID,
|
|
255
|
-
) => {
|
|
256
|
-
const ep = encodeIbcEndpoint({
|
|
257
|
-
hops,
|
|
258
|
-
portID,
|
|
259
|
-
order,
|
|
260
|
-
version,
|
|
261
|
-
...(channelID && { channelID }),
|
|
262
|
-
});
|
|
263
|
-
return /** @type {RemoteIbcAddress} */ (ep);
|
|
264
|
-
};
|
|
265
|
-
harden(encodeRemoteIbcAddress);
|
|
266
|
-
|
|
267
|
-
/**
|
|
268
|
-
* @param {string} portID
|
|
269
|
-
* @param {'ordered' | 'unordered' | 'ORDERED' | 'UNORDERED'} order
|
|
270
|
-
* @param {string} version
|
|
271
|
-
*/
|
|
272
|
-
export const encodeLocalIbcAddress = (portID, order, version) => {
|
|
273
|
-
return encodeIbcEndpoint({ portID, order, version });
|
|
274
|
-
};
|
|
275
|
-
harden(encodeLocalIbcAddress);
|