@agoric/orchestration 0.1.1-dev-e26d66b.0 → 0.1.1-dev-9b9282d.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.
@@ -1 +1 @@
1
- {"version":3,"file":"chain-info.d.ts","sourceRoot":"","sources":["chain-info.js"],"names":[],"mappings":";;;6BAwBU,CAAC,OAAO,cAAc,EAAE,MAAM,OAAO,cAAc,CAAC;;;;;;AA6BvD,sDALI,IAAI,CAAC,SAAS,CAAC,QACf,MAAM,UACN,eAAe,EAAE,iBAS3B;AAYM,gDAPI,IAAI,CAAC,SAAS,CAAC,QACf,MAAM,aACN,SAAS,QACT,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,uBAC/B,GAAG,CAAC,MAAM,CAAC,iBAkDrB;AAUM,sDAHI,IAAI,CAAC,OAAO,cAAc,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,QACpD,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,iBAOzC;0BA7FY,OAAO,WAAW;+BAvBH,cAAc;qCAD4B,YAAY;+BAEtD,wBAAwB;AAiBpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEE"}
1
+ {"version":3,"file":"chain-info.d.ts","sourceRoot":"","sources":["chain-info.js"],"names":[],"mappings":";;;6BAwBU,CAAC,OAAO,cAAc,EAAE,MAAM,OAAO,cAAc,CAAC;;;;;;AA6BvD,sDALI,IAAI,CAAC,SAAS,CAAC,QACf,MAAM,UACN,eAAe,EAAE,iBAS3B;AAYM,gDAPI,IAAI,CAAC,SAAS,CAAC,QACf,MAAM,aACN,SAAS,QACT,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,uBAC/B,GAAG,CAAC,MAAM,CAAC,iBAkDrB;AAUM,sDAHI,IAAI,CAAC,OAAO,cAAc,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,QACpD,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,iBAOzC;0BA7FY,OAAO,WAAW;+BAvBH,cAAc;qCAD4B,YAAY;+BAEtD,wBAAwB;AAiBpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEE"}
@@ -0,0 +1,67 @@
1
+ export function prepareEvmAccountKit(zone: Zone, { zcf, vowTools, log, zoeTools }: {
2
+ zcf: ZCF;
3
+ vowTools: VowTools;
4
+ log: (msg: string) => Vow<void>;
5
+ zoeTools: ZoeTools;
6
+ }): (initialState: EvmTapState) => import("@endo/exo").GuardedKit<{
7
+ tap: {
8
+ /**
9
+ * @param {VTransferIBCEvent} event
10
+ */
11
+ receiveUpcall(event: VTransferIBCEvent): void;
12
+ };
13
+ holder: {
14
+ getLocalAddress(): `${string}1${string}`;
15
+ getRemoteAddress(): Promise<string | undefined>;
16
+ getLatestMessage(): Promise<string>;
17
+ /**
18
+ * Sends tokens from the local account to a specified Cosmos chain
19
+ * address.
20
+ *
21
+ * @param {import('@agoric/orchestration').CosmosChainAddress} toAccount
22
+ * @param {import('@agoric/orchestration').AmountArg} amount
23
+ * @returns {Promise<string>} A success message upon completion.
24
+ */
25
+ send(toAccount: import("@agoric/orchestration").CosmosChainAddress, amount: import("@agoric/orchestration").AmountArg): Promise<string>;
26
+ /**
27
+ * @param {ZCFSeat} seat
28
+ * @param {{
29
+ * destinationAddress: string;
30
+ * type: GMPMessageType;
31
+ * destinationEVMChain: SupportedDestinationChains;
32
+ * gasAmount: number;
33
+ * contractInvocationData: ContractCall[];
34
+ * }} offerArgs
35
+ */
36
+ sendGmp(seat: ZCFSeat, offerArgs: {
37
+ destinationAddress: string;
38
+ type: GMPMessageType;
39
+ destinationEVMChain: SupportedDestinationChains;
40
+ gasAmount: number;
41
+ contractInvocationData: ContractCall[];
42
+ }): Promise<string>;
43
+ /**
44
+ * @param {ZCFSeat} seat
45
+ * @param {any} give
46
+ */
47
+ fundLCA(seat: ZCFSeat, give: any): Vow<void>;
48
+ };
49
+ invitationMakers: {
50
+ makeEVMTransactionInvitation(method: any, args: any): Promise<globalThis.Invitation<string | void, undefined>>;
51
+ };
52
+ }>;
53
+ export type ContractCall = ContractCall;
54
+ export type MakeEvmAccountKit = ReturnType<typeof prepareEvmAccountKit>;
55
+ export type EvmAccountKit = ReturnType<MakeEvmAccountKit>;
56
+ import type { Zone } from '@agoric/zone';
57
+ import type { ZCF } from '@agoric/zoe';
58
+ import type { VowTools } from '@agoric/vow';
59
+ import type { Vow } from '@agoric/vow';
60
+ import type { ZoeTools } from '../utils/zoe-tools.js';
61
+ import type { EvmTapState } from '../axelar-types.js';
62
+ import type { VTransferIBCEvent } from '@agoric/vats';
63
+ import type { ZCFSeat } from '@agoric/zoe';
64
+ import type { GMPMessageType } from '../axelar-types.js';
65
+ import type { SupportedDestinationChains } from '../axelar-types.js';
66
+ import type { ContractCall } from '../axelar-types.js';
67
+ //# sourceMappingURL=axelar-gmp-account-kit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axelar-gmp-account-kit.d.ts","sourceRoot":"","sources":["axelar-gmp-account-kit.js"],"names":[],"mappings":"AAgEO,2CARI,IAAI,oCACJ;IACN,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC;IAChC,QAAQ,EAAE,QAAQ,CAAC;CACpB;;QAsCI;;WAEG;6BADQ,iBAAiB;;;;;;QAyE5B;;;;;;;WAOG;wBAHQ,OAAO,uBAAuB,EAAE,kBAAkB,UAClD,OAAO,uBAAuB,EAAE,SAAS,GACvC,OAAO,CAAC,MAAM,CAAC;QAO5B;;;;;;;;;WASG;sBARQ,OAAO,aACP;YACN,kBAAkB,EAAE,MAAM,CAAC;YAC3B,IAAI,EAAE,cAAc,CAAC;YACrB,mBAAmB,EAAE,0BAA0B,CAAC;YAChD,SAAS,EAAE,MAAM,CAAC;YAClB,sBAAsB,EAAE,YAAY,EAAE,CAAC;SACxC;QA4FJ;;;WAGG;sBAFQ,OAAO,QACP,GAAG;;;;;GAoErB;2BAzVa,YAAY;gCA2VZ,UAAU,CAAC,OAAO,oBAAoB,CAAC;4BACvC,UAAU,CAAC,iBAAiB,CAAC;0BArWpB,cAAc;yBAKN,aAAa;8BANZ,aAAa;yBAAb,aAAa;8BAIlB,uBAAuB;iCAC6C,oBAAoB;uCAN/E,cAAc;6BAOnB,aAAa;oCACY,oBAAoB;gDAFmB,oBAAoB;kCAApB,oBAAoB"}
@@ -0,0 +1,361 @@
1
+ /**
2
+ * @import {VTransferIBCEvent} from '@agoric/vats';
3
+ * @import {Vow, VowTools} from '@agoric/vow';
4
+ * @import {Zone} from '@agoric/zone';
5
+ * @import {TypedPattern} from '@agoric/internal';
6
+ * @import {FungibleTokenPacketData} from '@agoric/cosmic-proto/ibc/applications/transfer/v2/packet.js';
7
+ * @import {ZoeTools} from '../utils/zoe-tools.js';
8
+ * @import {AxelarGmpIncomingMemo, EvmTapState, ContractCall, SupportedDestinationChains} from '../axelar-types.js';
9
+ * @import {ZCF, ZCFSeat} from '@agoric/zoe';
10
+ * @import {AxelarGmpOutgoingMemo, GMPMessageType} from '../axelar-types.js'
11
+ */
12
+
13
+ /** @typedef {ContractCall} ContractCall */
14
+
15
+ import { M, mustMatch } from '@endo/patterns';
16
+ import { VowShape } from '@agoric/vow';
17
+ import { makeTracer, NonNullish } from '@agoric/internal';
18
+ import { atob, decodeBase64 } from '@endo/base64';
19
+ import { decodeAbiParameters } from 'viem';
20
+ import { Fail } from '@endo/errors';
21
+ import { CosmosChainAddressShape } from '../typeGuards.js';
22
+ import { gmpAddresses, buildGMPPayload } from '../utils/gmp.js';
23
+
24
+ const trace = makeTracer('EvmAccountKit');
25
+ const { entries } = Object;
26
+
27
+ const EVMI = M.interface('holder', {
28
+ getLocalAddress: M.call().returns(M.any()),
29
+ getRemoteAddress: M.call().returns(M.any()),
30
+ // TODO: This is currently a placeholder.
31
+ // Replace with a proper message tracking mechanism that can correlate
32
+ // incoming messages with outgoing `sendGmp` calls, possibly using vows/promises.
33
+ getLatestMessage: M.call().returns(M.any()),
34
+ send: M.call(M.any(), M.any()).returns(M.any()),
35
+ sendGmp: M.call(M.any(), M.any()).returns(M.any()),
36
+ fundLCA: M.call(M.any(), M.any()).returns(VowShape),
37
+ });
38
+ harden(EVMI);
39
+
40
+ const InvitationMakerI = M.interface('invitationMaker', {
41
+ makeEVMTransactionInvitation: M.call(M.string(), M.array()).returns(M.any()),
42
+ });
43
+ harden(InvitationMakerI);
44
+
45
+ /** @type {TypedPattern<EvmTapState>} */
46
+ const EvmKitStateShape = {
47
+ localChainAddress: CosmosChainAddressShape,
48
+ sourceChannel: M.string(),
49
+ localDenom: M.string(),
50
+ localAccount: M.remotable('LocalAccount'),
51
+ assets: M.any(),
52
+ remoteChainInfo: M.any(),
53
+ };
54
+ harden(EvmKitStateShape);
55
+
56
+ /**
57
+ * @param {Zone} zone
58
+ * @param {{
59
+ * zcf: ZCF;
60
+ * vowTools: VowTools;
61
+ * log: (msg: string) => Vow<void>;
62
+ * zoeTools: ZoeTools;
63
+ * }} powers
64
+ */
65
+ export const prepareEvmAccountKit = (
66
+ zone,
67
+ { zcf, vowTools, log, zoeTools },
68
+ ) => {
69
+ return zone.exoClassKit(
70
+ 'EvmTapKit',
71
+ {
72
+ tap: M.interface('EvmTap', {
73
+ receiveUpcall: M.call(M.record()).returns(
74
+ M.or(VowShape, M.undefined()),
75
+ ),
76
+ }),
77
+ holder: EVMI,
78
+ invitationMakers: InvitationMakerI,
79
+ },
80
+ /**
81
+ * @param {EvmTapState} initialState
82
+ * @returns {{
83
+ * evmAccountAddress: string | undefined;
84
+ * latestMessage:
85
+ * | { success: boolean; result: `0x${string}` }[]
86
+ * | undefined;
87
+ * } & EvmTapState}
88
+ */
89
+ initialState => {
90
+ mustMatch(initialState, EvmKitStateShape);
91
+ return harden({
92
+ evmAccountAddress: /** @type {string | undefined} */ (undefined),
93
+ latestMessage: /**
94
+ * @type {{ success: boolean; result: `0x${string}` }[] | undefined}
95
+ */ (undefined),
96
+ ...initialState,
97
+ });
98
+ },
99
+ {
100
+ tap: {
101
+ /**
102
+ * @param {VTransferIBCEvent} event
103
+ */
104
+ receiveUpcall(event) {
105
+ trace('receiveUpcall', event);
106
+
107
+ const tx = /** @type {FungibleTokenPacketData} */ (
108
+ JSON.parse(atob(event.packet.data))
109
+ );
110
+
111
+ trace('receiveUpcall packet data', tx);
112
+ /** @type {AxelarGmpIncomingMemo} */
113
+ const memo = JSON.parse(tx.memo);
114
+
115
+ if (memo.source_chain === 'Ethereum') {
116
+ const payloadBytes = decodeBase64(memo.payload);
117
+ const [{ isContractCallResult, data }] = decodeAbiParameters(
118
+ [
119
+ {
120
+ type: 'tuple',
121
+ components: [
122
+ { name: 'isContractCallResult', type: 'bool' },
123
+ {
124
+ name: 'data',
125
+ type: 'tuple[]',
126
+ components: [
127
+ { name: 'success', type: 'bool' },
128
+ { name: 'result', type: 'bytes' },
129
+ ],
130
+ },
131
+ ],
132
+ },
133
+ ],
134
+ payloadBytes,
135
+ );
136
+
137
+ trace(
138
+ 'receiveUpcall Decoded:',
139
+ JSON.stringify({ isContractCallResult, data }),
140
+ );
141
+
142
+ if (this.state.evmAccountAddress) {
143
+ trace('Setting latestMessage:', data);
144
+ this.state.latestMessage = harden([...data]);
145
+ } else {
146
+ const [message] = data;
147
+ const { success, result } = message;
148
+
149
+ trace('Contract Call Status:', success);
150
+
151
+ if (success) {
152
+ const [address] = decodeAbiParameters(
153
+ [{ type: 'address' }],
154
+ result,
155
+ );
156
+ this.state.evmAccountAddress = address;
157
+ trace('evmAccountAddress:', this.state.evmAccountAddress);
158
+ }
159
+ }
160
+ }
161
+
162
+ trace('receiveUpcall completed');
163
+ },
164
+ },
165
+ holder: {
166
+ getLocalAddress() {
167
+ return this.state.localAccount.getAddress().value;
168
+ },
169
+ async getRemoteAddress() {
170
+ return this.state.evmAccountAddress;
171
+ },
172
+ async getLatestMessage() {
173
+ return JSON.stringify(this.state.latestMessage);
174
+ },
175
+ /**
176
+ * Sends tokens from the local account to a specified Cosmos chain
177
+ * address.
178
+ *
179
+ * @param {import('@agoric/orchestration').CosmosChainAddress} toAccount
180
+ * @param {import('@agoric/orchestration').AmountArg} amount
181
+ * @returns {Promise<string>} A success message upon completion.
182
+ */
183
+ async send(toAccount, amount) {
184
+ await this.state.localAccount.send(toAccount, amount);
185
+ return 'transfer success';
186
+ },
187
+
188
+ /**
189
+ * @param {ZCFSeat} seat
190
+ * @param {{
191
+ * destinationAddress: string;
192
+ * type: GMPMessageType;
193
+ * destinationEVMChain: SupportedDestinationChains;
194
+ * gasAmount: number;
195
+ * contractInvocationData: ContractCall[];
196
+ * }} offerArgs
197
+ */
198
+ async sendGmp(seat, offerArgs) {
199
+ void log('Inside sendGmp');
200
+ const {
201
+ destinationAddress,
202
+ type,
203
+ destinationEVMChain,
204
+ gasAmount,
205
+ contractInvocationData,
206
+ } = offerArgs;
207
+
208
+ trace('Offer Args:', JSON.stringify(offerArgs));
209
+
210
+ destinationAddress != null ||
211
+ Fail`Destination address must be defined`;
212
+ destinationEVMChain != null ||
213
+ Fail`Destination evm address must be defined`;
214
+
215
+ const isContractInvocation = [1, 2].includes(type);
216
+ if (isContractInvocation) {
217
+ gasAmount != null ||
218
+ Fail`gasAmount must be defined for type ${type}`;
219
+ contractInvocationData != null ||
220
+ Fail`contractInvocationData is not defined`;
221
+
222
+ contractInvocationData.length !== 0 ||
223
+ Fail`contractInvocationData array is empty`;
224
+ }
225
+
226
+ const { give } = seat.getProposal();
227
+
228
+ const [[_kw, amt]] = entries(give);
229
+ amt.value > 0n || Fail`IBC transfer amount must be greater than zero`;
230
+ trace('_kw, amt', _kw, amt);
231
+ trace(`targets: [${destinationAddress}]`);
232
+ trace(
233
+ `contractInvocationData: ${JSON.stringify(contractInvocationData)}`,
234
+ );
235
+
236
+ const payload =
237
+ type === 3 ? null : buildGMPPayload(contractInvocationData);
238
+
239
+ void log(`Payload: ${JSON.stringify(payload)}`);
240
+
241
+ const { denom } = NonNullish(
242
+ this.state.assets.find(a => a.brand === amt.brand),
243
+ `${amt.brand} not registered in vbank`,
244
+ );
245
+
246
+ trace('amt and brand', amt.brand);
247
+
248
+ const { chainId } = this.state.remoteChainInfo;
249
+
250
+ /** @type {AxelarGmpOutgoingMemo} */
251
+ const memo = {
252
+ destination_chain: destinationEVMChain,
253
+ destination_address: destinationAddress,
254
+ payload,
255
+ type,
256
+ };
257
+
258
+ if (type === 1 || type === 2) {
259
+ memo.fee = {
260
+ amount: String(gasAmount),
261
+ recipient: gmpAddresses.AXELAR_GAS,
262
+ };
263
+ void log(`Fee object ${JSON.stringify(memo.fee)}`);
264
+ trace(`Fee object ${JSON.stringify(memo.fee)}`);
265
+ }
266
+
267
+ void log(`Initiating IBC Transfer...`);
268
+ void log(`DENOM of token:${denom}`);
269
+
270
+ trace('Initiating IBC Transfer...');
271
+ await this.state.localAccount.transfer(
272
+ {
273
+ value: gmpAddresses.AXELAR_GMP,
274
+ encoding: 'bech32',
275
+ chainId,
276
+ },
277
+ {
278
+ denom,
279
+ value: amt.value,
280
+ },
281
+ { memo: JSON.stringify(memo) },
282
+ );
283
+
284
+ seat.exit();
285
+ void log('sendGmp successful');
286
+ return 'sendGmp successful';
287
+ },
288
+ /**
289
+ * @param {ZCFSeat} seat
290
+ * @param {any} give
291
+ */
292
+ fundLCA(seat, give) {
293
+ seat.hasExited() && Fail`The seat cannot be exited.`;
294
+ return zoeTools.localTransfer(seat, this.state.localAccount, give);
295
+ },
296
+ },
297
+ invitationMakers: {
298
+ // "method" and "args" can be used to invoke methods of localAccount obj
299
+ makeEVMTransactionInvitation(method, args) {
300
+ const continuingEVMTransactionHandler = async seat => {
301
+ await null;
302
+ const { holder } = this.facets;
303
+ switch (method) {
304
+ case 'sendGmp': {
305
+ const { give } = seat.getProposal();
306
+ await vowTools.when(holder.fundLCA(seat, give));
307
+ return holder.sendGmp(seat, args[0]);
308
+ }
309
+ case 'getLocalAddress': {
310
+ const vow = holder.getLocalAddress();
311
+ return vowTools.when(vow, res => {
312
+ seat.exit();
313
+ return res;
314
+ });
315
+ }
316
+ case 'getRemoteAddress': {
317
+ const vow = holder.getRemoteAddress();
318
+ return vowTools.when(vow, res => {
319
+ seat.exit();
320
+ return res;
321
+ });
322
+ }
323
+ case 'getLatestMessage': {
324
+ const vow = holder.getLatestMessage();
325
+ return vowTools.when(vow, res => {
326
+ seat.exit();
327
+ return res;
328
+ });
329
+ }
330
+ case 'send': {
331
+ const vow = holder.send(args[0], args[1]);
332
+ return vowTools.when(vow, res => {
333
+ seat.exit();
334
+ return res;
335
+ });
336
+ }
337
+ case 'fundLCA': {
338
+ const { give } = seat.getProposal();
339
+ const vow = holder.fundLCA(seat, give);
340
+ return vowTools.when(vow, res => {
341
+ seat.exit();
342
+ return res;
343
+ });
344
+ }
345
+ default:
346
+ return 'Invalid method';
347
+ }
348
+ };
349
+
350
+ return zcf.makeInvitation(
351
+ continuingEVMTransactionHandler,
352
+ 'evmTransaction',
353
+ );
354
+ },
355
+ },
356
+ },
357
+ );
358
+ };
359
+
360
+ /** @typedef {ReturnType<typeof prepareEvmAccountKit>} MakeEvmAccountKit */
361
+ /** @typedef {ReturnType<MakeEvmAccountKit>} EvmAccountKit */
@@ -0,0 +1,52 @@
1
+ export function contract(zcf: ZCF, privateArgs: OrchestrationPowers & {
2
+ marshaller: Marshaller;
3
+ chainInfo?: Record<string, CosmosChainInfo>;
4
+ assetInfo?: [Denom, DenomDetail & {
5
+ brandKey?: string;
6
+ }][];
7
+ storageNode: Remote<StorageNode>;
8
+ }, zone: Zone, { chainHub, orchestrateAll, vowTools, zoeTools }: OrchestrationTools): Promise<{
9
+ publicFacet: import("@endo/exo").Guarded<{
10
+ createAndMonitorLCA(): Promise<globalThis.Invitation<Vow<{
11
+ invitationMakers: import("@endo/exo").Guarded<{
12
+ makeEVMTransactionInvitation(method: any, args: any): Promise<globalThis.Invitation<string | void, undefined>>;
13
+ }>;
14
+ }>, undefined>>;
15
+ }>;
16
+ creatorFacet: import("@endo/exo").Guarded<{
17
+ registerChain(chainName: string, chainInfo: import("@agoric/orchestration").ChainInfo, ibcConnectionInfo?: import("@agoric/orchestration").IBCConnectionInfo): Promise<void>;
18
+ registerAsset(denom: Denom, detail: DenomDetail): Promise<void>;
19
+ }>;
20
+ }>;
21
+ export const start: (zcf: ZCF<Record<string, unknown>>, privateArgs: OrchestrationPowers & {
22
+ marshaller: Marshaller;
23
+ chainInfo?: Record<string, CosmosChainInfo>;
24
+ assetInfo?: [Denom, DenomDetail & {
25
+ brandKey?: string;
26
+ }][];
27
+ storageNode: Remote<StorageNode>;
28
+ }, baggage: Baggage) => Promise<{
29
+ publicFacet: import("@endo/exo").Guarded<{
30
+ createAndMonitorLCA(): Promise<globalThis.Invitation<Vow<{
31
+ invitationMakers: import("@endo/exo").Guarded<{
32
+ makeEVMTransactionInvitation(method: any, args: any): Promise<globalThis.Invitation<string | void, undefined>>;
33
+ }>;
34
+ }>, undefined>>;
35
+ }>;
36
+ creatorFacet: import("@endo/exo").Guarded<{
37
+ registerChain(chainName: string, chainInfo: import("@agoric/orchestration").ChainInfo, ibcConnectionInfo?: import("@agoric/orchestration").IBCConnectionInfo): Promise<void>;
38
+ registerAsset(denom: Denom, detail: DenomDetail): Promise<void>;
39
+ }>;
40
+ }>;
41
+ import type { ZCF } from '@agoric/zoe';
42
+ import type { OrchestrationPowers } from '../utils/start-helper.js';
43
+ import type { Marshaller } from '@agoric/internal/src/lib-chainStorage.js';
44
+ import type { CosmosChainInfo } from '@agoric/orchestration';
45
+ import type { Denom } from '@agoric/orchestration';
46
+ import type { DenomDetail } from '@agoric/orchestration';
47
+ import type { StorageNode } from '@agoric/internal/src/lib-chainStorage.js';
48
+ import type { Remote } from '@agoric/vow';
49
+ import type { Zone } from '@agoric/zone';
50
+ import type { OrchestrationTools } from '../utils/start-helper.js';
51
+ import type { Vow } from '@agoric/vow';
52
+ //# sourceMappingURL=axelar-gmp.contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axelar-gmp.contract.d.ts","sourceRoot":"","sources":["axelar-gmp.contract.js"],"names":[],"mappings":"AAiCO,8BAVI,GAAG,eACH,mBAAmB,GAAG;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IAC3D,WAAW,EAAE,OAAO,WAAW,CAAC,CAAC;CAClC,QACO,IAAI,oDACJ,kBAAkB;;;;;;;;;;;;GAyD5B;AAGD;gBAlEiB,UAAU;gBACV,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;gBAC/B,CAAC,KAAK,EAAE,WAAW,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE;iBAC7C,OAAO,WAAW,CAAC;;;;;;;;;;;;;GA+DY;yBA5E3B,aAAa;yCAHuB,0BAA0B;gCAE1C,0CAA0C;qCAD9B,uBAAuB;2BAAvB,uBAAuB;iCAAvB,uBAAuB;iCACnC,0CAA0C;4BAJtD,aAAa;0BACpB,cAAc;wCACqB,0BAA0B;yBAFtD,aAAa"}
@@ -0,0 +1,93 @@
1
+ import { M } from '@endo/patterns';
2
+ import { E } from '@endo/far';
3
+ import { makeTracer } from '@agoric/internal';
4
+ import { prepareChainHubAdmin } from '../exos/chain-hub-admin.js';
5
+ import { withOrchestration } from '../utils/start-helper.js';
6
+ import { registerChainsAndAssets } from '../utils/chain-hub-helper.js';
7
+ import * as evmFlows from './axelar-gmp.flows.js';
8
+ import { prepareEvmAccountKit } from './axelar-gmp-account-kit.js';
9
+
10
+ /**
11
+ * @import {Remote, Vow} from '@agoric/vow';
12
+ * @import {Zone} from '@agoric/zone';
13
+ * @import {OrchestrationPowers, OrchestrationTools} from '../utils/start-helper.js';
14
+ * @import {CosmosChainInfo, Denom, DenomDetail} from '@agoric/orchestration';
15
+ * @import {Marshaller, StorageNode} from '@agoric/internal/src/lib-chainStorage.js';
16
+ * @import {ZCF} from '@agoric/zoe';
17
+ */
18
+
19
+ const trace = makeTracer('AxelarGmp');
20
+
21
+ /**
22
+ * Orchestration contract to be wrapped by withOrchestration for Zoe
23
+ *
24
+ * @param {ZCF} zcf
25
+ * @param {OrchestrationPowers & {
26
+ * marshaller: Marshaller;
27
+ * chainInfo?: Record<string, CosmosChainInfo>;
28
+ * assetInfo?: [Denom, DenomDetail & { brandKey?: string }][];
29
+ * storageNode: Remote<StorageNode>;
30
+ * }} privateArgs
31
+ * @param {Zone} zone
32
+ * @param {OrchestrationTools} tools
33
+ */
34
+ export const contract = async (
35
+ zcf,
36
+ privateArgs,
37
+ zone,
38
+ { chainHub, orchestrateAll, vowTools, zoeTools },
39
+ ) => {
40
+ trace('Inside Contract');
41
+
42
+ registerChainsAndAssets(
43
+ chainHub,
44
+ zcf.getTerms().brands,
45
+ privateArgs.chainInfo,
46
+ privateArgs.assetInfo,
47
+ );
48
+
49
+ const creatorFacet = prepareChainHubAdmin(zone, chainHub);
50
+
51
+ // UNTIL https://github.com/Agoric/agoric-sdk/issues/9066
52
+ const logNode = E(privateArgs.storageNode).makeChildNode('log');
53
+ /** @type {(msg: string) => Vow<void>} */
54
+ const log = msg => vowTools.watch(E(logNode).setValue(msg));
55
+
56
+ const makeEvmAccountKit = prepareEvmAccountKit(zone.subZone('evmTap'), {
57
+ zcf,
58
+ vowTools,
59
+ log,
60
+ zoeTools,
61
+ });
62
+
63
+ const { localTransfer, withdrawToSeat } = zoeTools;
64
+ const { createAndMonitorLCA } = orchestrateAll(evmFlows, {
65
+ makeEvmAccountKit,
66
+ log,
67
+ chainHub,
68
+ localTransfer,
69
+ withdrawToSeat,
70
+ });
71
+
72
+ const publicFacet = zone.exo(
73
+ 'Send PF',
74
+ M.interface('Send PF', {
75
+ createAndMonitorLCA: M.callWhen().returns(M.any()),
76
+ }),
77
+ {
78
+ createAndMonitorLCA() {
79
+ return zcf.makeInvitation(
80
+ createAndMonitorLCA,
81
+ 'makeAccount',
82
+ undefined,
83
+ );
84
+ },
85
+ },
86
+ );
87
+
88
+ return { publicFacet, creatorFacet };
89
+ };
90
+ harden(contract);
91
+
92
+ export const start = withOrchestration(contract);
93
+ harden(start);
@@ -0,0 +1,21 @@
1
+ export function createAndMonitorLCA(orch: Orchestrator, { makeEvmAccountKit, chainHub, log, localTransfer, withdrawToSeat }: {
2
+ makeEvmAccountKit: MakeEvmAccountKit;
3
+ chainHub: GuestInterface<ChainHub>;
4
+ log: GuestOf<(msg: string) => Vow<void>>;
5
+ localTransfer: GuestOf<(srcSeat: ZCFSeat, localAccount: LocalAccountMethods, amounts: AmountKeywordRecord) => Vow<void>>;
6
+ withdrawToSeat: GuestOf<(localAccount: LocalAccountMethods, destSeat: ZCFSeat, amounts: AmountKeywordRecord) => Vow<void>>;
7
+ }, seat: ZCFSeat): Promise<{
8
+ invitationMakers: import("@endo/exo").Guarded<{
9
+ makeEVMTransactionInvitation(method: any, args: any): Promise<globalThis.Invitation<string | void, undefined>>;
10
+ }>;
11
+ }>;
12
+ import type { Orchestrator } from '@agoric/orchestration';
13
+ import type { MakeEvmAccountKit } from './axelar-gmp-account-kit.js';
14
+ import type { ChainHub } from '@agoric/orchestration/src/exos/chain-hub.js';
15
+ import type { GuestInterface } from '@agoric/async-flow';
16
+ import type { Vow } from '@agoric/vow';
17
+ import type { GuestOf } from '@agoric/async-flow';
18
+ import type { ZCFSeat } from '@agoric/zoe';
19
+ import type { LocalAccountMethods } from '@agoric/orchestration';
20
+ import type { AmountKeywordRecord } from '@agoric/zoe';
21
+ //# sourceMappingURL=axelar-gmp.flows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axelar-gmp.flows.d.ts","sourceRoot":"","sources":["axelar-gmp.flows.js"],"names":[],"mappings":"AAsDO,0CAtBI,YAAY,uEACZ;IACN,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,QAAQ,EAAE,eAAe,QAAQ,CAAC,CAAC;IACnC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;IACzC,aAAa,EAAE,QACnB,CACQ,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,mBAAmB,EACjC,OAAO,EAAE,mBAAmB,KACzB,IAAI,IAAI,CAAC,CACf,CAAC;IACF,cAAc,EAAE,QACpB,CACQ,YAAY,EAAE,mBAAmB,EACjC,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,mBAAmB,KACzB,IAAI,IAAI,CAAC,CACf,CAAC;CACH,QACO,OAAO;;;;GAsGjB;kCAvIiD,uBAAuB;uCACrC,6BAA6B;8BACtC,6CAA6C;oCAH9B,oBAAoB;yBAIxC,aAAa;6BAJO,oBAAoB;6BAKf,aAAa;yCACtB,uBAAuB;yCADd,aAAa"}