@hyperlane-xyz/deploy-sdk 1.4.1 → 2.0.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/dist/AltVMCoreModule.d.ts.map +1 -1
- package/dist/AltVMCoreModule.js +1 -2
- package/dist/AltVMCoreModule.js.map +1 -1
- package/dist/index.d.ts +2 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -5
- package/dist/index.js.map +1 -1
- package/dist/warp/warp-reader.d.ts +51 -0
- package/dist/warp/warp-reader.d.ts.map +1 -0
- package/dist/warp/warp-reader.js +106 -0
- package/dist/warp/warp-reader.js.map +1 -0
- package/dist/warp/warp-writer.d.ts +66 -0
- package/dist/warp/warp-writer.d.ts.map +1 -0
- package/dist/warp/warp-writer.js +231 -0
- package/dist/warp/warp-writer.js.map +1 -0
- package/dist/warp/warp-writer.test.d.ts +2 -0
- package/dist/warp/warp-writer.test.d.ts.map +1 -0
- package/dist/warp/warp-writer.test.js +903 -0
- package/dist/warp/warp-writer.test.js.map +1 -0
- package/package.json +9 -9
- package/dist/AltVMWarpDeployer.d.ts +0 -14
- package/dist/AltVMWarpDeployer.d.ts.map +0 -1
- package/dist/AltVMWarpDeployer.js +0 -69
- package/dist/AltVMWarpDeployer.js.map +0 -1
- package/dist/AltVMWarpModule.d.ts +0 -96
- package/dist/AltVMWarpModule.d.ts.map +0 -1
- package/dist/AltVMWarpModule.js +0 -416
- package/dist/AltVMWarpModule.js.map +0 -1
- package/dist/AltVMWarpModule.test.d.ts +0 -2
- package/dist/AltVMWarpModule.test.d.ts.map +0 -1
- package/dist/AltVMWarpModule.test.js +0 -508
- package/dist/AltVMWarpModule.test.js.map +0 -1
- package/dist/AltVMWarpRouteReader.d.ts +0 -53
- package/dist/AltVMWarpRouteReader.d.ts.map +0 -1
- package/dist/AltVMWarpRouteReader.js +0 -168
- package/dist/AltVMWarpRouteReader.js.map +0 -1
- package/dist/ism/ism-config-utils.d.ts +0 -37
- package/dist/ism/ism-config-utils.d.ts.map +0 -1
- package/dist/ism/ism-config-utils.js +0 -72
- package/dist/ism/ism-config-utils.js.map +0 -1
- package/dist/warp-module.d.ts +0 -5
- package/dist/warp-module.d.ts.map +0 -1
- package/dist/warp-module.js +0 -28
- package/dist/warp-module.js.map +0 -1
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import { AltVM, ProtocolType } from '@hyperlane-xyz/provider-sdk';
|
|
2
|
-
import { TokenType, } from '@hyperlane-xyz/provider-sdk/warp';
|
|
3
|
-
import { ensure0x, isZeroishAddress, rootLogger, } from '@hyperlane-xyz/utils';
|
|
4
|
-
import { createHookReader } from './hook/hook-reader.js';
|
|
5
|
-
import { createIsmReader } from './ism/generic-ism.js';
|
|
6
|
-
export class AltVMWarpRouteReader {
|
|
7
|
-
chainMetadata;
|
|
8
|
-
chainLookup;
|
|
9
|
-
provider;
|
|
10
|
-
logger;
|
|
11
|
-
hookReader;
|
|
12
|
-
ismReader;
|
|
13
|
-
constructor(chainMetadata, chainLookup, provider) {
|
|
14
|
-
this.chainMetadata = chainMetadata;
|
|
15
|
-
this.chainLookup = chainLookup;
|
|
16
|
-
this.provider = provider;
|
|
17
|
-
this.hookReader = createHookReader(this.chainMetadata, this.chainLookup);
|
|
18
|
-
this.logger = rootLogger.child({
|
|
19
|
-
module: AltVMWarpRouteReader.name,
|
|
20
|
-
});
|
|
21
|
-
this.ismReader = createIsmReader(this.chainMetadata, this.chainLookup);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Reads the configuration for a Warp Route at the given address.
|
|
25
|
-
* Implements the HypReader interface.
|
|
26
|
-
*
|
|
27
|
-
* @param address - The address of the Warp Route contract.
|
|
28
|
-
* @returns The derived Warp Route configuration.
|
|
29
|
-
*/
|
|
30
|
-
async read(address) {
|
|
31
|
-
return this.deriveWarpRouteConfig(address);
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Derives the configuration for a Hyperlane ERC20 router contract at the given address.
|
|
35
|
-
*
|
|
36
|
-
* @param warpRouteAddress - The address of the Hyperlane ERC20 router contract.
|
|
37
|
-
* @returns The configuration for the Hyperlane ERC20 router.
|
|
38
|
-
*
|
|
39
|
-
*/
|
|
40
|
-
async deriveWarpRouteConfig(warpRouteAddress) {
|
|
41
|
-
// Fetch token info once - this gives us type, metadata, owner, mailbox, ISM, etc.
|
|
42
|
-
const token = await this.provider.getToken({
|
|
43
|
-
tokenAddress: warpRouteAddress,
|
|
44
|
-
});
|
|
45
|
-
const remoteRouters = await this.fetchRemoteRouters(warpRouteAddress);
|
|
46
|
-
const destinationGas = await this.fetchDestinationGas(warpRouteAddress);
|
|
47
|
-
// Derive ISM config if present, otherwise use zero address
|
|
48
|
-
const interchainSecurityModule = token.ismAddress && !isZeroishAddress(token.ismAddress)
|
|
49
|
-
? await this.ismReader.deriveIsmConfig(token.ismAddress)
|
|
50
|
-
: // TODO: replace with protocol-specific zero address
|
|
51
|
-
'0x0000000000000000000000000000000000000000';
|
|
52
|
-
// Hook address is not exposed by providers yet, use zero address as placeholder
|
|
53
|
-
// TODO: replace with protocol-specific zero address
|
|
54
|
-
let hook;
|
|
55
|
-
if (this.chainMetadata.protocol !== ProtocolType.Aleo) {
|
|
56
|
-
hook = '0x0000000000000000000000000000000000000000';
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
hook =
|
|
60
|
-
// Not using isNullish because some protocol impl might return an empty string
|
|
61
|
-
token.hookAddress && !isZeroishAddress(token.hookAddress)
|
|
62
|
-
? await this.hookReader.deriveHookConfig(token.hookAddress)
|
|
63
|
-
: '0x0000000000000000000000000000000000000000';
|
|
64
|
-
}
|
|
65
|
-
const baseConfig = {
|
|
66
|
-
owner: token.owner,
|
|
67
|
-
mailbox: token.mailboxAddress,
|
|
68
|
-
interchainSecurityModule,
|
|
69
|
-
hook,
|
|
70
|
-
remoteRouters,
|
|
71
|
-
destinationGas,
|
|
72
|
-
name: token.name ?? undefined,
|
|
73
|
-
symbol: token.symbol ?? undefined,
|
|
74
|
-
decimals: token.decimals ?? undefined,
|
|
75
|
-
};
|
|
76
|
-
// Return discriminated union based on type
|
|
77
|
-
switch (token.tokenType) {
|
|
78
|
-
case AltVM.TokenType.native: {
|
|
79
|
-
const nativeConfig = {
|
|
80
|
-
...baseConfig,
|
|
81
|
-
type: TokenType.native,
|
|
82
|
-
};
|
|
83
|
-
return nativeConfig;
|
|
84
|
-
}
|
|
85
|
-
case AltVM.TokenType.collateral: {
|
|
86
|
-
const collateralConfig = {
|
|
87
|
-
...baseConfig,
|
|
88
|
-
type: TokenType.collateral,
|
|
89
|
-
token: token.denom, // The underlying collateral denom
|
|
90
|
-
};
|
|
91
|
-
return collateralConfig;
|
|
92
|
-
}
|
|
93
|
-
case AltVM.TokenType.synthetic: {
|
|
94
|
-
const syntheticConfig = {
|
|
95
|
-
...baseConfig,
|
|
96
|
-
type: TokenType.synthetic,
|
|
97
|
-
};
|
|
98
|
-
return syntheticConfig;
|
|
99
|
-
}
|
|
100
|
-
default:
|
|
101
|
-
throw new Error(`Failed to determine token type for address ${warpRouteAddress}`);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Derives the token type for a given Warp Route address using specific methods
|
|
106
|
-
*
|
|
107
|
-
* @param warpRouteAddress - The Warp Route address to derive the token type for.
|
|
108
|
-
* @returns The derived TokenType, which can be either 'collateral' or 'synthetic'.
|
|
109
|
-
* @throws Error if the token type is not supported (i.e., not collateral or synthetic).
|
|
110
|
-
*/
|
|
111
|
-
async deriveTokenType(warpRouteAddress) {
|
|
112
|
-
const token = await this.provider.getToken({
|
|
113
|
-
tokenAddress: warpRouteAddress,
|
|
114
|
-
});
|
|
115
|
-
switch (token.tokenType) {
|
|
116
|
-
case AltVM.TokenType.native:
|
|
117
|
-
return TokenType.native;
|
|
118
|
-
case AltVM.TokenType.collateral:
|
|
119
|
-
return TokenType.collateral;
|
|
120
|
-
case AltVM.TokenType.synthetic:
|
|
121
|
-
return TokenType.synthetic;
|
|
122
|
-
default:
|
|
123
|
-
throw new Error(`Failed to determine token type for address ${warpRouteAddress}`);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Fetches the base metadata for a Warp Route contract.
|
|
128
|
-
*
|
|
129
|
-
* @param routerAddress - The address of the Warp Route contract.
|
|
130
|
-
* @returns The base metadata for the Warp Route contract, including the mailbox, owner, hook, and ism.
|
|
131
|
-
*/
|
|
132
|
-
async fetchMailboxClientConfig(routerAddress) {
|
|
133
|
-
const token = await this.provider.getToken({
|
|
134
|
-
tokenAddress: routerAddress,
|
|
135
|
-
});
|
|
136
|
-
const config = {
|
|
137
|
-
mailbox: token.mailboxAddress,
|
|
138
|
-
owner: token.owner,
|
|
139
|
-
};
|
|
140
|
-
if (token.ismAddress) {
|
|
141
|
-
const derivedIsm = await this.ismReader.deriveIsmConfig(token.ismAddress);
|
|
142
|
-
config.interchainSecurityModule = derivedIsm;
|
|
143
|
-
}
|
|
144
|
-
return config;
|
|
145
|
-
}
|
|
146
|
-
async fetchRemoteRouters(warpRouteAddress) {
|
|
147
|
-
const { remoteRouters } = await this.provider.getRemoteRouters({
|
|
148
|
-
tokenAddress: warpRouteAddress,
|
|
149
|
-
});
|
|
150
|
-
const routers = {};
|
|
151
|
-
for (const router of remoteRouters) {
|
|
152
|
-
routers[router.receiverDomainId] = {
|
|
153
|
-
address: ensure0x(router.receiverAddress),
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
return routers;
|
|
157
|
-
}
|
|
158
|
-
async fetchDestinationGas(warpRouteAddress) {
|
|
159
|
-
const { remoteRouters } = await this.provider.getRemoteRouters({
|
|
160
|
-
tokenAddress: warpRouteAddress,
|
|
161
|
-
});
|
|
162
|
-
return Object.fromEntries(remoteRouters.map((routerConfig) => [
|
|
163
|
-
routerConfig.receiverDomainId,
|
|
164
|
-
routerConfig.gas,
|
|
165
|
-
]));
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
//# sourceMappingURL=AltVMWarpRouteReader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AltVMWarpRouteReader.js","sourceRoot":"","sources":["../src/AltVMWarpRouteReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { ArtifactNew } from '@hyperlane-xyz/provider-sdk/artifact';
|
|
2
|
-
import { ChainLookup } from '@hyperlane-xyz/provider-sdk/chain';
|
|
3
|
-
import { IsmArtifactConfig, IsmConfig } from '@hyperlane-xyz/provider-sdk/ism';
|
|
4
|
-
export { shouldDeployNewIsm } from '@hyperlane-xyz/provider-sdk/ism';
|
|
5
|
-
/**
|
|
6
|
-
* Converts IsmConfig (Config API) to IsmArtifactConfig (Artifact API).
|
|
7
|
-
*
|
|
8
|
-
* Key transformations:
|
|
9
|
-
* - String chain names → numeric domain IDs (for routing ISM domains)
|
|
10
|
-
* - Address string references → ArtifactUnderived objects
|
|
11
|
-
* - Recursively handles nested routing ISM configurations
|
|
12
|
-
* - Other ISM types (multisig, testIsm) pass through unchanged
|
|
13
|
-
*
|
|
14
|
-
* @param config The ISM configuration using Config API format
|
|
15
|
-
* @param chainLookup Chain lookup interface for resolving chain names to domain IDs
|
|
16
|
-
* @returns Artifact wrapper around IsmArtifactConfig suitable for artifact writers
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```typescript
|
|
20
|
-
* // Config API format
|
|
21
|
-
* const ismConfig: IsmConfig = {
|
|
22
|
-
* type: 'domainRoutingIsm',
|
|
23
|
-
* owner: '0x123...',
|
|
24
|
-
* domains: {
|
|
25
|
-
* ethereum: { type: 'merkleRootMultisigIsm', validators: [...], threshold: 2 },
|
|
26
|
-
* polygon: '0xabc...' // address reference
|
|
27
|
-
* }
|
|
28
|
-
* };
|
|
29
|
-
*
|
|
30
|
-
* // Convert to Artifact API format
|
|
31
|
-
* const artifact = ismConfigToArtifact(ismConfig, chainLookup);
|
|
32
|
-
* // artifact.config.domains is now Record<number, Artifact<IsmArtifactConfig>>
|
|
33
|
-
* // with numeric domain IDs and properly wrapped nested configs
|
|
34
|
-
* ```
|
|
35
|
-
*/
|
|
36
|
-
export declare function ismConfigToArtifact(config: IsmConfig, chainLookup: ChainLookup): ArtifactNew<IsmArtifactConfig>;
|
|
37
|
-
//# sourceMappingURL=ism-config-utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ism-config-utils.d.ts","sourceRoot":"","sources":["../../src/ism/ism-config-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAEZ,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAEL,iBAAiB,EACjB,SAAS,EACV,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,WAAW,GACvB,WAAW,CAAC,iBAAiB,CAAC,CA0ChC"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { ArtifactState, } from '@hyperlane-xyz/provider-sdk/artifact';
|
|
2
|
-
// Re-export ISM utility functions from provider-sdk for convenience
|
|
3
|
-
export { shouldDeployNewIsm } from '@hyperlane-xyz/provider-sdk/ism';
|
|
4
|
-
/**
|
|
5
|
-
* Converts IsmConfig (Config API) to IsmArtifactConfig (Artifact API).
|
|
6
|
-
*
|
|
7
|
-
* Key transformations:
|
|
8
|
-
* - String chain names → numeric domain IDs (for routing ISM domains)
|
|
9
|
-
* - Address string references → ArtifactUnderived objects
|
|
10
|
-
* - Recursively handles nested routing ISM configurations
|
|
11
|
-
* - Other ISM types (multisig, testIsm) pass through unchanged
|
|
12
|
-
*
|
|
13
|
-
* @param config The ISM configuration using Config API format
|
|
14
|
-
* @param chainLookup Chain lookup interface for resolving chain names to domain IDs
|
|
15
|
-
* @returns Artifact wrapper around IsmArtifactConfig suitable for artifact writers
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* // Config API format
|
|
20
|
-
* const ismConfig: IsmConfig = {
|
|
21
|
-
* type: 'domainRoutingIsm',
|
|
22
|
-
* owner: '0x123...',
|
|
23
|
-
* domains: {
|
|
24
|
-
* ethereum: { type: 'merkleRootMultisigIsm', validators: [...], threshold: 2 },
|
|
25
|
-
* polygon: '0xabc...' // address reference
|
|
26
|
-
* }
|
|
27
|
-
* };
|
|
28
|
-
*
|
|
29
|
-
* // Convert to Artifact API format
|
|
30
|
-
* const artifact = ismConfigToArtifact(ismConfig, chainLookup);
|
|
31
|
-
* // artifact.config.domains is now Record<number, Artifact<IsmArtifactConfig>>
|
|
32
|
-
* // with numeric domain IDs and properly wrapped nested configs
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
export function ismConfigToArtifact(config, chainLookup) {
|
|
36
|
-
// Handle routing ISMs - need to convert chain names to domain IDs
|
|
37
|
-
if (config.type === 'domainRoutingIsm') {
|
|
38
|
-
const domains = {};
|
|
39
|
-
for (const [chainName, nestedConfig] of Object.entries(config.domains)) {
|
|
40
|
-
const domainId = chainLookup.getDomainId(chainName);
|
|
41
|
-
if (!domainId) {
|
|
42
|
-
// Skip unknown chains - they'll be warned about during deployment
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
if (typeof nestedConfig === 'string') {
|
|
46
|
-
// Address reference - create an UNDERIVED artifact
|
|
47
|
-
// This represents a predeployed ISM with unspecified type
|
|
48
|
-
// The routing ISM writer will pass it through without reading
|
|
49
|
-
// Only readers will fetch its config from chain if needed
|
|
50
|
-
domains[domainId] = {
|
|
51
|
-
artifactState: ArtifactState.UNDERIVED,
|
|
52
|
-
deployed: { address: nestedConfig },
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
// Nested ISM config - recursively convert
|
|
57
|
-
domains[domainId] = ismConfigToArtifact(nestedConfig, chainLookup);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return {
|
|
61
|
-
config: {
|
|
62
|
-
type: 'domainRoutingIsm',
|
|
63
|
-
owner: config.owner,
|
|
64
|
-
domains,
|
|
65
|
-
},
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
// Other ISM types (multisig, testIsm) have identical config structure
|
|
69
|
-
// between Config API and Artifact API - just wrap in artifact object
|
|
70
|
-
return { artifactState: ArtifactState.NEW, config };
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=ism-config-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ism-config-utils.js","sourceRoot":"","sources":["../../src/ism/ism-config-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,aAAa,GACd,MAAM,sCAAsC,CAAC;AAQ9C,oEAAoE;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAiB,EACjB,WAAwB;IAExB,kEAAkE;IAClE,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACvC,MAAM,OAAO,GAGT,EAAE,CAAC;QAEP,KAAK,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACvE,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,kEAAkE;gBAClE,SAAS;YACX,CAAC;YAED,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;gBACrC,mDAAmD;gBACnD,0DAA0D;gBAC1D,8DAA8D;gBAC9D,0DAA0D;gBAC1D,OAAO,CAAC,QAAQ,CAAC,GAAG;oBAClB,aAAa,EAAE,aAAa,CAAC,SAAS;oBACtC,QAAQ,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;iBACpC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,0CAA0C;gBAC1C,OAAO,CAAC,QAAQ,CAAC,GAAG,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAED,OAAO;YACL,MAAM,EAAE;gBACN,IAAI,EAAE,kBAAkB;gBACxB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO;aACR;SACF,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,qEAAqE;IACrE,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;AACtD,CAAC"}
|
package/dist/warp-module.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { ChainLookup, ChainMetadataForAltVM } from '@hyperlane-xyz/provider-sdk/chain';
|
|
2
|
-
import { ModuleProvider } from '@hyperlane-xyz/provider-sdk/module';
|
|
3
|
-
import { TokenRouterModuleType } from '@hyperlane-xyz/provider-sdk/warp';
|
|
4
|
-
export declare function warpModuleProvider(chainLookup: ChainLookup, chainMetadata: ChainMetadataForAltVM): ModuleProvider<TokenRouterModuleType>;
|
|
5
|
-
//# sourceMappingURL=warp-module.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"warp-module.d.ts","sourceRoot":"","sources":["../src/warp-module.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,qBAAqB,EACtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAKL,cAAc,EAEf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,qBAAqB,EAEtB,MAAM,kCAAkC,CAAC;AAuC1C,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,qBAAqB,GACnC,cAAc,CAAC,qBAAqB,CAAC,CAEvC"}
|
package/dist/warp-module.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { AltVMWarpModule } from './AltVMWarpModule.js';
|
|
2
|
-
import { AltVMWarpRouteReader } from './AltVMWarpRouteReader.js';
|
|
3
|
-
class WarpModuleProvider {
|
|
4
|
-
chainLookup;
|
|
5
|
-
chainMetadata;
|
|
6
|
-
constructor(chainLookup, chainMetadata) {
|
|
7
|
-
this.chainLookup = chainLookup;
|
|
8
|
-
this.chainMetadata = chainMetadata;
|
|
9
|
-
}
|
|
10
|
-
async createModule(signer, config) {
|
|
11
|
-
return await AltVMWarpModule.create({
|
|
12
|
-
chainLookup: this.chainLookup,
|
|
13
|
-
chain: this.chainMetadata.name,
|
|
14
|
-
signer,
|
|
15
|
-
config,
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
connectModule(signer, args) {
|
|
19
|
-
return new AltVMWarpModule(this.chainLookup, signer, args);
|
|
20
|
-
}
|
|
21
|
-
connectReader(provider) {
|
|
22
|
-
return new AltVMWarpRouteReader(this.chainMetadata, this.chainLookup, provider);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
export function warpModuleProvider(chainLookup, chainMetadata) {
|
|
26
|
-
return new WarpModuleProvider(chainLookup, chainMetadata);
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=warp-module.js.map
|
package/dist/warp-module.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"warp-module.js","sourceRoot":"","sources":["../src/warp-module.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,kBAAkB;IAEZ;IACA;IAFV,YACU,WAAwB,EACxB,aAAoC;QADpC,gBAAW,GAAX,WAAW,CAAa;QACxB,kBAAa,GAAb,aAAa,CAAuB;IAC3C,CAAC;IAEJ,KAAK,CAAC,YAAY,CAChB,MAAuC,EACvC,MAAkB;QAElB,OAAO,MAAM,eAAe,CAAC,MAAM,CAAC;YAClC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;YAC9B,MAAM;YACN,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CACX,MAAuC,EACvC,IAA0C;QAE1C,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,aAAa,CAAC,QAAwB;QACpC,OAAO,IAAI,oBAAoB,CAC7B,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,WAAW,EAChB,QAAQ,CACT,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAChC,WAAwB,EACxB,aAAoC;IAEpC,OAAO,IAAI,kBAAkB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAC5D,CAAC"}
|