@agoric/vats 0.15.2-dev-9f8732f.0 → 0.15.2-dev-afbbd9a.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 +16 -16
- package/src/ibc.d.ts.map +1 -1
- package/src/ibc.js +75 -19
- package/src/types.d.ts +7 -2
- package/src/types.d.ts.map +1 -1
- package/src/types.ts +10 -3
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-afbbd9a.0+afbbd9a",
|
|
4
4
|
"description": "Agoric's Vat library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./index.js",
|
|
@@ -22,19 +22,19 @@
|
|
|
22
22
|
"author": "Agoric",
|
|
23
23
|
"license": "Apache-2.0",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@agoric/cosmic-proto": "0.4.1-dev-
|
|
26
|
-
"@agoric/ertp": "0.16.3-dev-
|
|
27
|
-
"@agoric/governance": "0.10.4-dev-
|
|
28
|
-
"@agoric/internal": "0.3.3-dev-
|
|
29
|
-
"@agoric/network": "0.1.1-dev-
|
|
30
|
-
"@agoric/notifier": "0.6.3-dev-
|
|
31
|
-
"@agoric/store": "0.9.3-dev-
|
|
32
|
-
"@agoric/swingset-vat": "0.32.3-dev-
|
|
33
|
-
"@agoric/time": "0.3.3-dev-
|
|
34
|
-
"@agoric/vat-data": "0.5.3-dev-
|
|
35
|
-
"@agoric/vow": "0.1.1-dev-
|
|
36
|
-
"@agoric/zoe": "0.26.3-dev-
|
|
37
|
-
"@agoric/zone": "0.2.3-dev-
|
|
25
|
+
"@agoric/cosmic-proto": "0.4.1-dev-afbbd9a.0+afbbd9a",
|
|
26
|
+
"@agoric/ertp": "0.16.3-dev-afbbd9a.0+afbbd9a",
|
|
27
|
+
"@agoric/governance": "0.10.4-dev-afbbd9a.0+afbbd9a",
|
|
28
|
+
"@agoric/internal": "0.3.3-dev-afbbd9a.0+afbbd9a",
|
|
29
|
+
"@agoric/network": "0.1.1-dev-afbbd9a.0+afbbd9a",
|
|
30
|
+
"@agoric/notifier": "0.6.3-dev-afbbd9a.0+afbbd9a",
|
|
31
|
+
"@agoric/store": "0.9.3-dev-afbbd9a.0+afbbd9a",
|
|
32
|
+
"@agoric/swingset-vat": "0.32.3-dev-afbbd9a.0+afbbd9a",
|
|
33
|
+
"@agoric/time": "0.3.3-dev-afbbd9a.0+afbbd9a",
|
|
34
|
+
"@agoric/vat-data": "0.5.3-dev-afbbd9a.0+afbbd9a",
|
|
35
|
+
"@agoric/vow": "0.1.1-dev-afbbd9a.0+afbbd9a",
|
|
36
|
+
"@agoric/zoe": "0.26.3-dev-afbbd9a.0+afbbd9a",
|
|
37
|
+
"@agoric/zone": "0.2.3-dev-afbbd9a.0+afbbd9a",
|
|
38
38
|
"@endo/errors": "^1.2.10",
|
|
39
39
|
"@endo/far": "^1.1.11",
|
|
40
40
|
"@endo/import-bundle": "^1.4.0",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"jessie.js": "^0.3.4"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@agoric/swingset-liveslots": "0.10.3-dev-
|
|
50
|
+
"@agoric/swingset-liveslots": "0.10.3-dev-afbbd9a.0+afbbd9a",
|
|
51
51
|
"@endo/bundle-source": "^4.0.0",
|
|
52
52
|
"@endo/init": "^1.1.9",
|
|
53
53
|
"ava": "^5.3.0",
|
|
@@ -79,5 +79,5 @@
|
|
|
79
79
|
"typeCoverage": {
|
|
80
80
|
"atLeast": 90.43
|
|
81
81
|
},
|
|
82
|
-
"gitHead": "
|
|
82
|
+
"gitHead": "afbbd9a93543c8c54349728adc1613edbe08660a"
|
|
83
83
|
}
|
package/src/ibc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ibc.d.ts","sourceRoot":"","sources":["ibc.js"],"names":[],"mappings":"AAsDO,kDAHI,IAAI,GACF,GAAG,
|
|
1
|
+
{"version":3,"file":"ibc.d.ts","sourceRoot":"","sources":["ibc.js"],"names":[],"mappings":"AAsDO,kDAHI,IAAI,GACF,GAAG,CA8Hf;AAMM,yCAHI,IAAI,UACJ,QAAQ;cASH,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC;;qBAOpC,eAAe;mBACjB,aAAa;EAuqBpC;AAIM,uCADK,IAAI;IAQV;;;OAGG;qBAFQ,MAAM,OACN,GAAG;GAYnB;yBAn2Ba,OAAO,kBAAkB,CAAC;uBAG3B,IAAI,CAChB,cAAkB,EAClB,cAAkB,GAAG,WAAW,GAAG,qBAAqB,CACrD,GAAG;IACF,SAAS,EAAE,QAAQ,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC;0BAdmB,mBAAmB;8BAC0B,aAAa;qCAH+B,iBAAiB;mCAC4F,YAAY;yCAAZ,YAAY;wCAZpM,iBAAiB;4BAcc,aAAa;oCAF4I,YAAY;8BADzH,iBAAiB"}
|
package/src/ibc.js
CHANGED
|
@@ -5,7 +5,7 @@ import { E } from '@endo/far';
|
|
|
5
5
|
|
|
6
6
|
import { byteSourceToBase64, base64ToBytes } from '@agoric/network';
|
|
7
7
|
|
|
8
|
-
import { makeTracer } from '@agoric/internal';
|
|
8
|
+
import { makeTracer, NonNullish } from '@agoric/internal';
|
|
9
9
|
import {
|
|
10
10
|
localAddrToPortID,
|
|
11
11
|
decodeRemoteIbcAddress,
|
|
@@ -29,7 +29,7 @@ const DEFAULT_PACKET_TIMEOUT_NS = 60n * 60n * 1_000_000_000n;
|
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
31
|
* @import {Endpoint, Connection, ConnectionHandler, InboundAttempt, Bytes, ProtocolHandler, ProtocolImpl} from '@agoric/network';
|
|
32
|
-
* @import {BridgeHandler, ScopedBridgeManager, ConnectingInfo, IBCChannelID, IBCChannelOrdering, IBCEvent, IBCPacket, IBCPortID, IBCDowncallPacket, IBCDowncallMethod, IBCDowncall, IBCBridgeEvent} from './types.js';
|
|
32
|
+
* @import {BridgeHandler, ScopedBridgeManager, ConnectingInfo, IBCChannelID, IBCChannelOrdering, IBCEvent, IBCPacket, IBCPortID, IBCDowncallPacket, IBCDowncallMethod, IBCDowncallReturn, IBCDowncall, IBCBridgeEvent} from './types.js';
|
|
33
33
|
* @import {Zone} from '@agoric/base-zone';
|
|
34
34
|
* @import {PromiseVow, Remote, VowKit, VowResolver, VowTools} from '@agoric/vow';
|
|
35
35
|
*/
|
|
@@ -73,7 +73,10 @@ export const prepareIBCConnectionHandler = zone => {
|
|
|
73
73
|
* >;
|
|
74
74
|
* channelKeyToSeqAck: MapStore<
|
|
75
75
|
* string,
|
|
76
|
-
* MapStore<
|
|
76
|
+
* MapStore<
|
|
77
|
+
* bigint | number,
|
|
78
|
+
* Partial<import('@agoric/vow').VowKit<Bytes>>
|
|
79
|
+
* >
|
|
77
80
|
* >;
|
|
78
81
|
* }} param0
|
|
79
82
|
* @param {{
|
|
@@ -153,8 +156,10 @@ export const prepareIBCConnectionHandler = zone => {
|
|
|
153
156
|
const rejectReason = Error('Connection closed');
|
|
154
157
|
const seqToAck = channelKeyToSeqAck.get(channelKey);
|
|
155
158
|
|
|
156
|
-
for (const
|
|
157
|
-
|
|
159
|
+
for (const { resolver } of seqToAck.values()) {
|
|
160
|
+
if (resolver) {
|
|
161
|
+
resolver.reject(rejectReason);
|
|
162
|
+
}
|
|
158
163
|
}
|
|
159
164
|
channelKeyToSeqAck.delete(channelKey);
|
|
160
165
|
|
|
@@ -222,7 +227,12 @@ export const prepareIBCProtocol = (zone, powers) => {
|
|
|
222
227
|
/** @type {MapStore<string, Outbound[]>} */
|
|
223
228
|
const srcPortToOutbounds = detached.mapStore('srcPortToOutbounds');
|
|
224
229
|
|
|
225
|
-
/**
|
|
230
|
+
/**
|
|
231
|
+
* @type {MapStore<
|
|
232
|
+
* string,
|
|
233
|
+
* MapStore<bigint | number, Partial<VowKit<Bytes>>>
|
|
234
|
+
* >}
|
|
235
|
+
*/
|
|
226
236
|
const channelKeyToSeqAck = detached.mapStore('channelKeyToSeqAck');
|
|
227
237
|
|
|
228
238
|
/** @type {MapStore<string, SetStore<VowResolver>>} */
|
|
@@ -572,8 +582,13 @@ export const prepareIBCProtocol = (zone, powers) => {
|
|
|
572
582
|
} = packet;
|
|
573
583
|
if (sequence === undefined)
|
|
574
584
|
throw TypeError('acknowledgementPacket without sequence');
|
|
575
|
-
const
|
|
576
|
-
|
|
585
|
+
const resolver = util.extractFromAckKit(
|
|
586
|
+
channelID,
|
|
587
|
+
portID,
|
|
588
|
+
BigInt(sequence),
|
|
589
|
+
'resolver',
|
|
590
|
+
);
|
|
591
|
+
resolver && resolver.resolve(base64ToBytes(acknowledgement));
|
|
577
592
|
break;
|
|
578
593
|
}
|
|
579
594
|
|
|
@@ -587,8 +602,13 @@ export const prepareIBCProtocol = (zone, powers) => {
|
|
|
587
602
|
if (sequence === undefined)
|
|
588
603
|
throw TypeError('timeoutPacket without sequence');
|
|
589
604
|
|
|
590
|
-
const
|
|
591
|
-
|
|
605
|
+
const resolver = util.extractFromAckKit(
|
|
606
|
+
channelID,
|
|
607
|
+
portID,
|
|
608
|
+
BigInt(sequence),
|
|
609
|
+
'resolver',
|
|
610
|
+
);
|
|
611
|
+
resolver && resolver.reject(Error(`Packet timed out`));
|
|
592
612
|
break;
|
|
593
613
|
}
|
|
594
614
|
|
|
@@ -632,6 +652,7 @@ export const prepareIBCProtocol = (zone, powers) => {
|
|
|
632
652
|
* @template {IBCDowncallMethod} M
|
|
633
653
|
* @param {M} method
|
|
634
654
|
* @param {IBCDowncall<M>} args
|
|
655
|
+
* @returns {Promise<IBCDowncallReturn<M>>}
|
|
635
656
|
*/
|
|
636
657
|
downcall(method, args) {
|
|
637
658
|
return E(this.state.ibcdev).downcall(method, args);
|
|
@@ -661,26 +682,61 @@ export const prepareIBCProtocol = (zone, powers) => {
|
|
|
661
682
|
source_port: portID,
|
|
662
683
|
} = fullPacket;
|
|
663
684
|
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
685
|
+
const vow = util.extractFromAckKit(
|
|
686
|
+
channelID,
|
|
687
|
+
portID,
|
|
688
|
+
BigInt(sequence),
|
|
689
|
+
'vow',
|
|
690
|
+
);
|
|
691
|
+
return NonNullish(vow);
|
|
667
692
|
},
|
|
668
693
|
|
|
669
694
|
/**
|
|
695
|
+
* Find an acknowledgment kit for the specified\
|
|
696
|
+
* (channelID, portID, sequence), creating it if not found, and then
|
|
697
|
+
* extract the specified key and perform any necessary cleanup.
|
|
698
|
+
*
|
|
699
|
+
* @template {'resolver' | 'vow'} K
|
|
670
700
|
* @param {IBCChannelID} channelID
|
|
671
701
|
* @param {IBCPortID} portID
|
|
672
702
|
* @param {bigint} sequence
|
|
703
|
+
* @param {K} key
|
|
704
|
+
* @returns {VowKit<Bytes>[K] | undefined}
|
|
673
705
|
*/
|
|
674
|
-
|
|
706
|
+
extractFromAckKit(channelID, portID, sequence, key) {
|
|
675
707
|
const { channelKeyToSeqAck } = this.state;
|
|
676
708
|
const channelKey = `${channelID}:${portID}`;
|
|
677
709
|
const seqToAck = channelKeyToSeqAck.get(channelKey);
|
|
678
|
-
|
|
679
|
-
|
|
710
|
+
|
|
711
|
+
// Try also looking up the sequence as a number in case it was added
|
|
712
|
+
// to the map before the upgrade to bigints.
|
|
713
|
+
for (const seq of [sequence, Number(sequence)]) {
|
|
714
|
+
if (!seqToAck.has(seq)) {
|
|
715
|
+
continue;
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
const { [key]: extracted, ...rest } = seqToAck.get(seq);
|
|
719
|
+
if (Reflect.has(rest, 'resolver') || Reflect.has(rest, 'vow')) {
|
|
720
|
+
// We have some other stuff in the kit, so just update it.
|
|
721
|
+
seqToAck.set(seq, harden(rest));
|
|
722
|
+
} else {
|
|
723
|
+
// We emptied everything from the kit, so now delete it. It
|
|
724
|
+
// shan't be resurrected, by the rules that 'vow' is used only by
|
|
725
|
+
// sendPacket, and 'resolver' is used only by one of
|
|
726
|
+
// onAcknowledgement or onTimeout.
|
|
727
|
+
seqToAck.delete(seq);
|
|
728
|
+
}
|
|
729
|
+
return extracted;
|
|
680
730
|
}
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
731
|
+
|
|
732
|
+
/**
|
|
733
|
+
* We don't have a kit for this sequence yet, so create one.
|
|
734
|
+
*
|
|
735
|
+
* @type {VowKit<Bytes>}
|
|
736
|
+
*/
|
|
737
|
+
const { [key]: extracted, ...rest } = makeVowKit();
|
|
738
|
+
seqToAck.init(sequence, harden(rest));
|
|
739
|
+
return extracted;
|
|
684
740
|
},
|
|
685
741
|
},
|
|
686
742
|
ackWatcher: {
|
package/src/types.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { BridgeId, Remote } from '@agoric/internal';
|
|
|
2
2
|
import type { Bytes } from '@agoric/network';
|
|
3
3
|
import type { Guarded } from '@endo/exo';
|
|
4
4
|
import type { PacketSDKType } from '@agoric/cosmic-proto/ibc/core/channel/v1/channel.js';
|
|
5
|
+
import type { JsonSafe } from '@agoric/cosmic-proto';
|
|
5
6
|
export type Board = ReturnType<ReturnType<typeof import('./lib-board.js').prepareBoardKit>>['board'];
|
|
6
7
|
/**
|
|
7
8
|
* read-only access to a node in a name hierarchy
|
|
@@ -112,7 +113,7 @@ export type IBCPortID = string;
|
|
|
112
113
|
export type IBCChannelID = `channel-${number}`;
|
|
113
114
|
export type IBCConnectionID = `connection-${number}`;
|
|
114
115
|
export type IBCChannelOrdering = 'ORDERED' | 'UNORDERED';
|
|
115
|
-
export type IBCPacket = {
|
|
116
|
+
export type IBCPacket = JsonSafe<{
|
|
116
117
|
data: Bytes;
|
|
117
118
|
source_channel: IBCChannelID;
|
|
118
119
|
source_port: IBCPortID;
|
|
@@ -121,7 +122,7 @@ export type IBCPacket = {
|
|
|
121
122
|
sequence?: PacketSDKType['sequence'];
|
|
122
123
|
timeout_height?: PacketSDKType['timeout_height'];
|
|
123
124
|
timeout_timestamp?: PacketSDKType['timeout_timestamp'];
|
|
124
|
-
}
|
|
125
|
+
}>;
|
|
125
126
|
export type IBCCounterParty = {
|
|
126
127
|
port_id: IBCPortID;
|
|
127
128
|
channel_id: IBCChannelID;
|
|
@@ -198,6 +199,9 @@ type IBCMethodEvents = {
|
|
|
198
199
|
};
|
|
199
200
|
initOpenExecuted: ChannelOpenAckDowncall;
|
|
200
201
|
};
|
|
202
|
+
type IBCMethodReturns = {
|
|
203
|
+
sendPacket: Required<IBCPacket>;
|
|
204
|
+
};
|
|
201
205
|
export type IBCMethod<M extends IBCDowncallMethod> = {
|
|
202
206
|
type: 'IBC_METHOD';
|
|
203
207
|
method: M;
|
|
@@ -207,6 +211,7 @@ export type IBCMethod<M extends IBCDowncallMethod> = {
|
|
|
207
211
|
export type IBCDowncall<M extends IBCDowncallMethod> = {
|
|
208
212
|
[K in keyof IBCMethodEvents[M]]: IBCMethodEvents[M][K];
|
|
209
213
|
};
|
|
214
|
+
export type IBCDowncallReturn<M extends IBCDowncallMethod> = M extends keyof IBCMethodReturns ? IBCMethodReturns[M] : void;
|
|
210
215
|
export type IBCDowncallPacket<M extends IBCDowncallMethod> = IBCMethodEvents[M] extends {
|
|
211
216
|
packet: infer P;
|
|
212
217
|
} ? P : never;
|
package/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qDAAqD,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"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"}
|
package/src/types.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { BridgeId, Remote } from '@agoric/internal';
|
|
|
3
3
|
import type { Bytes } from '@agoric/network';
|
|
4
4
|
import type { Guarded } from '@endo/exo';
|
|
5
5
|
import type { PacketSDKType } from '@agoric/cosmic-proto/ibc/core/channel/v1/channel.js';
|
|
6
|
+
import type { JsonSafe } from '@agoric/cosmic-proto';
|
|
6
7
|
import type { LocalChainAccount } from './localchain.js';
|
|
7
8
|
import type { TargetApp } from './bridge-target.js';
|
|
8
9
|
|
|
@@ -137,7 +138,7 @@ export type IBCChannelID = `channel-${number}`;
|
|
|
137
138
|
export type IBCConnectionID = `connection-${number}`;
|
|
138
139
|
export type IBCChannelOrdering = 'ORDERED' | 'UNORDERED';
|
|
139
140
|
|
|
140
|
-
export type IBCPacket = {
|
|
141
|
+
export type IBCPacket = JsonSafe<{
|
|
141
142
|
data: Bytes;
|
|
142
143
|
source_channel: IBCChannelID;
|
|
143
144
|
source_port: IBCPortID;
|
|
@@ -146,7 +147,7 @@ export type IBCPacket = {
|
|
|
146
147
|
sequence?: PacketSDKType['sequence'];
|
|
147
148
|
timeout_height?: PacketSDKType['timeout_height'];
|
|
148
149
|
timeout_timestamp?: PacketSDKType['timeout_timestamp'];
|
|
149
|
-
}
|
|
150
|
+
}>;
|
|
150
151
|
|
|
151
152
|
export type IBCCounterParty = {
|
|
152
153
|
port_id: IBCPortID;
|
|
@@ -233,10 +234,13 @@ type IBCMethodEvents = {
|
|
|
233
234
|
timeoutExecuted: {
|
|
234
235
|
packet: IBCPacket;
|
|
235
236
|
};
|
|
236
|
-
// XXX why isn't this in receiver.go?
|
|
237
237
|
initOpenExecuted: ChannelOpenAckDowncall;
|
|
238
238
|
};
|
|
239
239
|
|
|
240
|
+
type IBCMethodReturns = {
|
|
241
|
+
sendPacket: Required<IBCPacket>;
|
|
242
|
+
};
|
|
243
|
+
|
|
240
244
|
export type IBCMethod<M extends IBCDowncallMethod> = {
|
|
241
245
|
type: 'IBC_METHOD';
|
|
242
246
|
method: M;
|
|
@@ -248,6 +252,9 @@ export type IBCDowncall<M extends IBCDowncallMethod> = {
|
|
|
248
252
|
[K in keyof IBCMethodEvents[M]]: IBCMethodEvents[M][K];
|
|
249
253
|
};
|
|
250
254
|
|
|
255
|
+
export type IBCDowncallReturn<M extends IBCDowncallMethod> =
|
|
256
|
+
M extends keyof IBCMethodReturns ? IBCMethodReturns[M] : void;
|
|
257
|
+
|
|
251
258
|
export type IBCDowncallPacket<M extends IBCDowncallMethod> =
|
|
252
259
|
IBCMethodEvents[M] extends { packet: infer P } ? P : never;
|
|
253
260
|
|