@hyperlane-xyz/deploy-sdk 4.1.0 → 4.2.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/hook/hook-writer.d.ts +2 -2
- package/dist/hook/hook-writer.d.ts.map +1 -1
- package/dist/hook/hook-writer.js +9 -11
- package/dist/hook/hook-writer.js.map +1 -1
- package/dist/hook/hook-writer.test.d.ts +2 -0
- package/dist/hook/hook-writer.test.d.ts.map +1 -0
- package/dist/hook/hook-writer.test.js +69 -0
- package/dist/hook/hook-writer.test.js.map +1 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +5 -0
- package/dist/protocol.js.map +1 -1
- package/dist/protocol.test.d.ts +2 -0
- package/dist/protocol.test.d.ts.map +1 -0
- package/dist/protocol.test.js +14 -0
- package/dist/protocol.test.js.map +1 -0
- package/package.json +13 -11
|
@@ -46,7 +46,7 @@ export declare function createHookWriter(chainMetadata: ChainMetadataForAltVM, c
|
|
|
46
46
|
* - Works with pure Artifact API (HookArtifactConfig)
|
|
47
47
|
* - Delegates to typed writers from artifact manager for specific hook types
|
|
48
48
|
* - Protocol-agnostic through artifact manager abstraction
|
|
49
|
-
* - Supports
|
|
49
|
+
* - Supports mutable hook updates (e.g. IGP gas configs, protocol fee updates)
|
|
50
50
|
* - MerkleTree hooks are immutable (no updates)
|
|
51
51
|
*
|
|
52
52
|
* Note: In the future, the Artifact API will include an explicit check
|
|
@@ -67,7 +67,7 @@ export declare class HookWriter extends HookReader implements ArtifactWriter<Hoo
|
|
|
67
67
|
create(artifact: ArtifactNew<HookArtifactConfig>): Promise<[DeployedHookArtifact, TxReceipt[]]>;
|
|
68
68
|
/**
|
|
69
69
|
* Updates an existing hook to match the desired configuration.
|
|
70
|
-
*
|
|
70
|
+
* Mutable hooks delegate to their protocol-specific writers.
|
|
71
71
|
* MerkleTree hooks are immutable - returns empty array.
|
|
72
72
|
*
|
|
73
73
|
* Note: In the future, the Artifact API will provide an explicit
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-writer.d.ts","sourceRoot":"","sources":["../../src/hook/hook-writer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"hook-writer.d.ts","sourceRoot":"","sources":["../../src/hook/hook-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAEtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EACL,WAAW,EAEX,cAAc,EACf,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,uBAAuB,EAIxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAkB,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,qBAAqB,EACpC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,EACvC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,UAAU,CAMZ;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,UACX,SAAQ,UACR,YAAW,cAAc,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;IAGhE,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,uBAAuB;IAC3D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW;IAC3C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC;gBAFvC,eAAe,EAAE,uBAAuB,EACxC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC;IAK5D;;;;;;OAMG;IACG,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,kBAAkB,CAAC,GACxC,OAAO,CAAC,CAAC,oBAAoB,EAAE,SAAS,EAAE,CAAC,CAAC;IAQ/C;;;;;;;;;;OAUG;IACG,MAAM,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAWpE;;;;;;;;;;;;OAYG;IACG,cAAc,CAAC,MAAM,EAAE;QAC3B,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;QAClC,cAAc,EAAE,UAAU,CAAC;KAC5B,GAAG,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,EAAE,WAAW,EAAE,CAAC;KAC7B,CAAC;CA6CH"}
|
package/dist/hook/hook-writer.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getProtocolProvider, } from '@hyperlane-xyz/provider-sdk';
|
|
2
2
|
import { ArtifactState, } from '@hyperlane-xyz/provider-sdk/artifact';
|
|
3
|
-
import { hookConfigToArtifact, shouldDeployNewHook, } from '@hyperlane-xyz/provider-sdk/hook';
|
|
3
|
+
import { MUTABLE_HOOK_TYPE, hookConfigToArtifact, shouldDeployNewHook, } from '@hyperlane-xyz/provider-sdk/hook';
|
|
4
4
|
import { isEmptyAddress } from '@hyperlane-xyz/utils';
|
|
5
5
|
import { HookReader } from './hook-reader.js';
|
|
6
6
|
/**
|
|
@@ -39,7 +39,7 @@ export function createHookWriter(chainMetadata, chainLookup, signer, context) {
|
|
|
39
39
|
* - Works with pure Artifact API (HookArtifactConfig)
|
|
40
40
|
* - Delegates to typed writers from artifact manager for specific hook types
|
|
41
41
|
* - Protocol-agnostic through artifact manager abstraction
|
|
42
|
-
* - Supports
|
|
42
|
+
* - Supports mutable hook updates (e.g. IGP gas configs, protocol fee updates)
|
|
43
43
|
* - MerkleTree hooks are immutable (no updates)
|
|
44
44
|
*
|
|
45
45
|
* Note: In the future, the Artifact API will include an explicit check
|
|
@@ -70,7 +70,7 @@ export class HookWriter extends HookReader {
|
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
72
72
|
* Updates an existing hook to match the desired configuration.
|
|
73
|
-
*
|
|
73
|
+
* Mutable hooks delegate to their protocol-specific writers.
|
|
74
74
|
* MerkleTree hooks are immutable - returns empty array.
|
|
75
75
|
*
|
|
76
76
|
* Note: In the future, the Artifact API will provide an explicit
|
|
@@ -81,13 +81,11 @@ export class HookWriter extends HookReader {
|
|
|
81
81
|
*/
|
|
82
82
|
async update(artifact) {
|
|
83
83
|
const { artifactState, config, deployed } = artifact;
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
const writer = this.artifactManager.createWriter(config.type, this.signer);
|
|
87
|
-
return writer.update({ artifactState, config, deployed });
|
|
84
|
+
if (!MUTABLE_HOOK_TYPE.includes(config.type)) {
|
|
85
|
+
return [];
|
|
88
86
|
}
|
|
89
|
-
|
|
90
|
-
return
|
|
87
|
+
const writer = this.artifactManager.createWriter(config.type, this.signer);
|
|
88
|
+
return writer.update({ artifactState, config, deployed });
|
|
91
89
|
}
|
|
92
90
|
/**
|
|
93
91
|
* Deploys a new hook or updates an existing one based on configuration comparison.
|
|
@@ -125,7 +123,7 @@ export class HookWriter extends HookReader {
|
|
|
125
123
|
transactions: [],
|
|
126
124
|
};
|
|
127
125
|
}
|
|
128
|
-
// Update existing hook
|
|
126
|
+
// Update existing hook in place when the hook type is mutable.
|
|
129
127
|
const deployedArtifact = {
|
|
130
128
|
...expectedArtifact,
|
|
131
129
|
artifactState: ArtifactState.DEPLOYED,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-writer.js","sourceRoot":"","sources":["../../src/hook/hook-writer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"hook-writer.js","sourceRoot":"","sources":["../../src/hook/hook-writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-writer.test.d.ts","sourceRoot":"","sources":["../../src/hook/hook-writer.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { expect } from 'chai';
|
|
2
|
+
import sinon from 'sinon';
|
|
3
|
+
import { AltVM } from '@hyperlane-xyz/provider-sdk';
|
|
4
|
+
import { ArtifactState } from '@hyperlane-xyz/provider-sdk/artifact';
|
|
5
|
+
import { HookWriter } from './hook-writer.js';
|
|
6
|
+
const chainLookup = {
|
|
7
|
+
getChainMetadata: () => {
|
|
8
|
+
throw new Error('not needed');
|
|
9
|
+
},
|
|
10
|
+
getDomainId: () => null,
|
|
11
|
+
getChainName: () => null,
|
|
12
|
+
getKnownChainNames: () => [],
|
|
13
|
+
};
|
|
14
|
+
describe('HookWriter', () => {
|
|
15
|
+
it('delegates protocolFee updates to the protocol writer', async () => {
|
|
16
|
+
const expectedTxs = [
|
|
17
|
+
{ annotation: 'protocol fee update' },
|
|
18
|
+
];
|
|
19
|
+
const update = sinon.stub().resolves(expectedTxs);
|
|
20
|
+
const createWriter = sinon.stub().returns({
|
|
21
|
+
create: sinon.stub(),
|
|
22
|
+
read: sinon.stub(),
|
|
23
|
+
update,
|
|
24
|
+
});
|
|
25
|
+
const artifactManager = {
|
|
26
|
+
createReader: sinon.stub(),
|
|
27
|
+
createWriter,
|
|
28
|
+
readHook: sinon.stub(),
|
|
29
|
+
};
|
|
30
|
+
const signer = {};
|
|
31
|
+
const writer = new HookWriter(artifactManager, chainLookup, signer);
|
|
32
|
+
const artifact = {
|
|
33
|
+
artifactState: ArtifactState.DEPLOYED,
|
|
34
|
+
config: {
|
|
35
|
+
type: AltVM.HookType.PROTOCOL_FEE,
|
|
36
|
+
owner: '0xowner',
|
|
37
|
+
beneficiary: '0xbeneficiary',
|
|
38
|
+
maxProtocolFee: '100',
|
|
39
|
+
protocolFee: '10',
|
|
40
|
+
},
|
|
41
|
+
deployed: { address: '0x123' },
|
|
42
|
+
};
|
|
43
|
+
const txs = await writer.update(artifact);
|
|
44
|
+
expect(createWriter.calledOnceWith(AltVM.HookType.PROTOCOL_FEE, signer)).to.equal(true);
|
|
45
|
+
expect(update.calledOnceWith(artifact)).to.equal(true);
|
|
46
|
+
expect(txs).to.deep.equal(expectedTxs);
|
|
47
|
+
});
|
|
48
|
+
it('treats unknownHook updates as a no-op', async () => {
|
|
49
|
+
const createWriter = sinon.stub();
|
|
50
|
+
const artifactManager = {
|
|
51
|
+
createReader: sinon.stub(),
|
|
52
|
+
createWriter,
|
|
53
|
+
readHook: sinon.stub(),
|
|
54
|
+
};
|
|
55
|
+
const signer = {};
|
|
56
|
+
const writer = new HookWriter(artifactManager, chainLookup, signer);
|
|
57
|
+
const artifact = {
|
|
58
|
+
artifactState: ArtifactState.DEPLOYED,
|
|
59
|
+
config: {
|
|
60
|
+
type: 'unknownHook',
|
|
61
|
+
},
|
|
62
|
+
deployed: { address: '0x123' },
|
|
63
|
+
};
|
|
64
|
+
const txs = await writer.update(artifact);
|
|
65
|
+
expect(createWriter.called).to.equal(false);
|
|
66
|
+
expect(txs).to.deep.equal([]);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=hook-writer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-writer.test.js","sourceRoot":"","sources":["../../src/hook/hook-writer.test.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGb,MAAM,6BAA6B,CAAC;AAGrC,wBAAsB,qBAAqB,CACzC,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGb,MAAM,6BAA6B,CAAC;AAGrC,wBAAsB,qBAAqB,CACzC,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,iBAwCnC"}
|
package/dist/protocol.js
CHANGED
|
@@ -27,6 +27,11 @@ export async function loadProtocolProviders(neededProtocols) {
|
|
|
27
27
|
registerProtocol(protocol, () => new SealevelProtocolProvider());
|
|
28
28
|
break;
|
|
29
29
|
}
|
|
30
|
+
case ProtocolType.Starknet: {
|
|
31
|
+
const { StarknetProtocolProvider } = await import('@hyperlane-xyz/starknet-sdk');
|
|
32
|
+
registerProtocol(protocol, () => new StarknetProtocolProvider());
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
30
35
|
}
|
|
31
36
|
}
|
|
32
37
|
}
|
package/dist/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,eAAkC;IAElC,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,UAAU,CAAC,KAAK,CAAC,GAAG,QAAQ,iBAAiB,CAAC,CAAC;YAC/C,SAAS;QACX,CAAC;QACD,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC/B,MAAM,EAAE,4BAA4B,EAAE,GACpC,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;gBAC5C,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAC;gBACrE,MAAM;YACR,CAAC;YACD,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxB,MAAM,EAAE,qBAAqB,EAAE,GAC7B,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;gBAC3C,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;gBAC9D,MAAM;YACR,CAAC;YACD,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvB,MAAM,EAAE,oBAAoB,EAAE,GAC5B,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;gBAC1C,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;gBAC7D,MAAM;YACR,CAAC;YACD,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC3B,MAAM,EAAE,wBAAwB,EAAE,GAChC,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;gBAC9C,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,wBAAwB,EAAE,CAAC,CAAC;gBACjE,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,eAAkC;IAElC,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,UAAU,CAAC,KAAK,CAAC,GAAG,QAAQ,iBAAiB,CAAC,CAAC;YAC/C,SAAS;QACX,CAAC;QACD,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC/B,MAAM,EAAE,4BAA4B,EAAE,GACpC,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;gBAC5C,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAC;gBACrE,MAAM;YACR,CAAC;YACD,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxB,MAAM,EAAE,qBAAqB,EAAE,GAC7B,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;gBAC3C,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;gBAC9D,MAAM;YACR,CAAC;YACD,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvB,MAAM,EAAE,oBAAoB,EAAE,GAC5B,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;gBAC1C,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;gBAC7D,MAAM;YACR,CAAC;YACD,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC3B,MAAM,EAAE,wBAAwB,EAAE,GAChC,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;gBAC9C,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,wBAAwB,EAAE,CAAC,CAAC;gBACjE,MAAM;YACR,CAAC;YACD,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC3B,MAAM,EAAE,wBAAwB,EAAE,GAChC,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;gBAC9C,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,wBAAwB,EAAE,CAAC,CAAC;gBACjE,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.test.d.ts","sourceRoot":"","sources":["../src/protocol.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { expect } from 'chai';
|
|
2
|
+
import { ProtocolType, getProtocolProvider, hasProtocol, } from '@hyperlane-xyz/provider-sdk';
|
|
3
|
+
import { loadProtocolProviders } from './protocol.js';
|
|
4
|
+
describe('loadProtocolProviders', () => {
|
|
5
|
+
it('registers Starknet provider implementation', async () => {
|
|
6
|
+
await loadProtocolProviders(new Set([ProtocolType.Starknet]));
|
|
7
|
+
expect(hasProtocol(ProtocolType.Starknet)).to.equal(true);
|
|
8
|
+
const provider = getProtocolProvider(ProtocolType.Starknet);
|
|
9
|
+
expect(provider).to.have.property('createProvider');
|
|
10
|
+
expect(provider).to.have.property('createSigner');
|
|
11
|
+
expect(provider).to.have.property('createIsmArtifactManager');
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=protocol.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.test.js","sourceRoot":"","sources":["../src/protocol.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,WAAW,GACZ,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,qBAAqB,CAAC,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE9D,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACpD,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAClD,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperlane-xyz/deploy-sdk",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.2.0",
|
|
4
4
|
"description": "Deployer SDK for the Hyperlane Protocol",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": "https://github.com/hyperlane-xyz/hyperlane-monorepo",
|
|
@@ -15,15 +15,17 @@
|
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"zod": "^3.21.2",
|
|
18
|
-
"@hyperlane-xyz/aleo-sdk": "
|
|
19
|
-
"@hyperlane-xyz/cosmos-sdk": "
|
|
20
|
-
"@hyperlane-xyz/provider-sdk": "4.
|
|
21
|
-
"@hyperlane-xyz/radix-sdk": "
|
|
22
|
-
"@hyperlane-xyz/sealevel-sdk": "
|
|
23
|
-
"@hyperlane-xyz/
|
|
24
|
-
"@hyperlane-xyz/
|
|
18
|
+
"@hyperlane-xyz/aleo-sdk": "29.0.0",
|
|
19
|
+
"@hyperlane-xyz/cosmos-sdk": "29.0.0",
|
|
20
|
+
"@hyperlane-xyz/provider-sdk": "4.2.0",
|
|
21
|
+
"@hyperlane-xyz/radix-sdk": "29.0.0",
|
|
22
|
+
"@hyperlane-xyz/sealevel-sdk": "29.0.0",
|
|
23
|
+
"@hyperlane-xyz/starknet-sdk": "27.2.0",
|
|
24
|
+
"@hyperlane-xyz/tron-sdk": "22.1.4",
|
|
25
|
+
"@hyperlane-xyz/utils": "29.0.0"
|
|
25
26
|
},
|
|
26
27
|
"devDependencies": {
|
|
28
|
+
"@types/chai": "^4.3.11",
|
|
27
29
|
"@types/chai-as-promised": "^8",
|
|
28
30
|
"@types/mocha": "^10.0.1",
|
|
29
31
|
"@types/node": "^24.10.9",
|
|
@@ -35,9 +37,9 @@
|
|
|
35
37
|
"mocha": "^11.5.0",
|
|
36
38
|
"sinon": "^13.0.2",
|
|
37
39
|
"tsx": "^4.19.1",
|
|
38
|
-
"typescript": "
|
|
39
|
-
"@hyperlane-xyz/eslint-config": "^
|
|
40
|
-
"@hyperlane-xyz/tsconfig": "^
|
|
40
|
+
"typescript": "6.0.2",
|
|
41
|
+
"@hyperlane-xyz/eslint-config": "^29.0.0",
|
|
42
|
+
"@hyperlane-xyz/tsconfig": "^29.0.0"
|
|
41
43
|
},
|
|
42
44
|
"scripts": {
|
|
43
45
|
"build": "tsc",
|