@wormhole-foundation/sdk-definitions 0.1.8-beta.6 → 0.1.8-beta.8
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/README.md +5 -5
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/payloads/connect.d.ts +1 -1
- package/dist/cjs/payloads/connect.d.ts.map +1 -1
- package/dist/cjs/payloads/connect.js +2 -1
- package/dist/cjs/payloads/connect.js.map +1 -1
- package/dist/cjs/payloads/governance.d.ts +9 -9
- package/dist/cjs/payloads/governance.d.ts.map +1 -1
- package/dist/cjs/payloads/governance.js +14 -12
- package/dist/cjs/payloads/governance.js.map +1 -1
- package/dist/cjs/protocol.d.ts +16 -0
- package/dist/cjs/protocol.d.ts.map +1 -0
- package/dist/cjs/protocol.js +34 -0
- package/dist/cjs/protocol.js.map +1 -0
- package/dist/cjs/protocols/cctp.d.ts +90 -2
- package/dist/cjs/protocols/cctp.d.ts.map +1 -1
- package/dist/cjs/protocols/cctp.js +13 -6
- package/dist/cjs/protocols/cctp.js.map +1 -1
- package/dist/cjs/protocols/core.d.ts +3 -1
- package/dist/cjs/protocols/core.d.ts.map +1 -1
- package/dist/cjs/protocols/core.js.map +1 -1
- package/dist/cjs/signature.d.ts +2 -0
- package/dist/cjs/signature.d.ts.map +1 -1
- package/dist/cjs/signature.js +8 -1
- package/dist/cjs/signature.js.map +1 -1
- package/dist/cjs/vaa.d.ts.map +1 -1
- package/dist/cjs/vaa.js +0 -3
- package/dist/cjs/vaa.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/payloads/connect.d.ts +1 -1
- package/dist/esm/payloads/connect.d.ts.map +1 -1
- package/dist/esm/payloads/connect.js +2 -1
- package/dist/esm/payloads/connect.js.map +1 -1
- package/dist/esm/payloads/governance.d.ts +9 -9
- package/dist/esm/payloads/governance.d.ts.map +1 -1
- package/dist/esm/payloads/governance.js +14 -12
- package/dist/esm/payloads/governance.js.map +1 -1
- package/dist/esm/protocol.d.ts +16 -0
- package/dist/esm/protocol.d.ts.map +1 -0
- package/dist/esm/protocol.js +28 -0
- package/dist/esm/protocol.js.map +1 -0
- package/dist/esm/protocols/cctp.d.ts +90 -2
- package/dist/esm/protocols/cctp.d.ts.map +1 -1
- package/dist/esm/protocols/cctp.js +14 -7
- package/dist/esm/protocols/cctp.js.map +1 -1
- package/dist/esm/protocols/core.d.ts +3 -1
- package/dist/esm/protocols/core.d.ts.map +1 -1
- package/dist/esm/protocols/core.js.map +1 -1
- package/dist/esm/signature.d.ts +2 -0
- package/dist/esm/signature.d.ts.map +1 -1
- package/dist/esm/signature.js +7 -0
- package/dist/esm/signature.js.map +1 -1
- package/dist/esm/vaa.d.ts.map +1 -1
- package/dist/esm/vaa.js +0 -3
- package/dist/esm/vaa.js.map +1 -1
- package/package.json +2 -1
- package/src/index.ts +1 -0
- package/src/payloads/connect.ts +5 -4
- package/src/payloads/governance.ts +36 -33
- package/src/protocol.ts +69 -0
- package/src/protocols/cctp.ts +24 -11
- package/src/protocols/core.ts +3 -2
- package/src/signature.ts +11 -0
- package/src/vaa.ts +17 -13
package/dist/esm/vaa.js
CHANGED
|
@@ -64,7 +64,6 @@ export function createVAA(payloadLiteral, vaaData) {
|
|
|
64
64
|
hash: keccak256(serializeLayout(bodyLayout, bodyWithFixed)),
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
|
-
;
|
|
68
67
|
export function registerPayloadType(protocol, name, layout) {
|
|
69
68
|
const payloadLiteral = composeLiteral(protocol, name);
|
|
70
69
|
if (payloadFactory.has(payloadLiteral))
|
|
@@ -82,14 +81,12 @@ export function serialize(vaa) {
|
|
|
82
81
|
];
|
|
83
82
|
return serializeLayout(layout, vaa);
|
|
84
83
|
}
|
|
85
|
-
;
|
|
86
84
|
export function serializePayload(payloadLiteral, payload) {
|
|
87
85
|
if (payloadLiteral === "Uint8Array")
|
|
88
86
|
return payload;
|
|
89
87
|
const layout = getPayloadLayout(payloadLiteral);
|
|
90
88
|
return serializeLayout(layout, payload);
|
|
91
89
|
}
|
|
92
|
-
;
|
|
93
90
|
export function payloadDiscriminator(payloadLiterals, allowAmbiguous) {
|
|
94
91
|
const literals = (() => {
|
|
95
92
|
if (Array.isArray(payloadLiterals[0]))
|
package/dist/esm/vaa.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vaa.js","sourceRoot":"","sources":["../../src/vaa.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"vaa.js","sourceRoot":"","sources":["../../src/vaa.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wormhole-foundation/sdk-definitions",
|
|
3
|
-
"version": "0.1.8-beta.
|
|
3
|
+
"version": "0.1.8-beta.8",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/wormhole-foundation/connect-sdk.git"
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"rebuild": "npm run clean && npm run build:cjs && npm run build:esm",
|
|
28
28
|
"clean": "rm -rf ./dist && rm -f ./*.tsbuildinfo",
|
|
29
29
|
"lint": "npm run prettier && eslint --fix",
|
|
30
|
+
"bump:beta": "bump prerelease",
|
|
30
31
|
"prettier": "prettier --write ./src"
|
|
31
32
|
},
|
|
32
33
|
"dependencies": {
|
package/src/index.ts
CHANGED
package/src/payloads/connect.ts
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
} from "../layout-items";
|
|
9
9
|
import { RegisterPayloadTypes, NamedPayloads, registerPayloadTypes } from "../vaa";
|
|
10
10
|
|
|
11
|
+
//from here: https://github.com/wormhole-foundation/wormhole-circle-integration/blob/105ad59bad687416527003e0241dee4020889341/evm/src/circle_integration/CircleIntegrationMessages.sol#L25
|
|
11
12
|
const depositWithPayloadBase = [
|
|
12
13
|
payloadIdItem(1),
|
|
13
14
|
{
|
|
@@ -41,14 +42,14 @@ export const depositWithBytesPayload = <C extends Pick<LengthPrefixedBytesLayout
|
|
|
41
42
|
customPayload: C
|
|
42
43
|
) => [
|
|
43
44
|
...depositWithPayloadBase,
|
|
44
|
-
{ name: "payload", binary: "bytes", lengthSize: 2, ...customPayload}
|
|
45
|
+
{ name: "payload", binary: "bytes", lengthSize: 2, ...customPayload }
|
|
45
46
|
] as const;
|
|
46
47
|
|
|
47
48
|
export const namedPayloads = [
|
|
48
49
|
["DepositWithPayload", depositWithBytesPayload({})],
|
|
49
50
|
["TransferRelay",
|
|
50
51
|
depositWithSizedLayoutPayload(
|
|
51
|
-
1+3*32,
|
|
52
|
+
1 + 3 * 32,
|
|
52
53
|
[
|
|
53
54
|
payloadIdItem(1),
|
|
54
55
|
{ name: "targetRelayerFee", ...amountItem },
|
|
@@ -64,8 +65,8 @@ export const namedPayloads = [
|
|
|
64
65
|
declare global {
|
|
65
66
|
namespace Wormhole {
|
|
66
67
|
interface PayloadLiteralToLayoutMapping
|
|
67
|
-
extends RegisterPayloadTypes<"
|
|
68
|
+
extends RegisterPayloadTypes<"AutomaticCircleBridge", typeof namedPayloads> { }
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
71
|
|
|
71
|
-
registerPayloadTypes("
|
|
72
|
+
registerPayloadTypes("AutomaticCircleBridge", namedPayloads);
|
|
@@ -126,42 +126,46 @@ type Action = (typeof actions)[number];
|
|
|
126
126
|
const actionMapping = constMap(actionTuples);
|
|
127
127
|
|
|
128
128
|
const sdkProtocolNameAndGovernanceVaaModuleEntries = [
|
|
129
|
-
["
|
|
129
|
+
["WormholeCore", "Core"],
|
|
130
130
|
["TokenBridge", "TokenBridge"],
|
|
131
|
+
["AutomaticTokenBridge", "TokenBridge"],
|
|
131
132
|
["NftBridge", "NFTBridge"],
|
|
132
133
|
["Relayer", "WormholeRelayer"],
|
|
133
|
-
["
|
|
134
|
+
["CircleBridge", "CircleIntegration"],
|
|
135
|
+
["AutomaticCircleBridge", "CircleIntegration"],
|
|
134
136
|
] as const satisfies RoArray<readonly [ProtocolName, string]>;
|
|
135
137
|
|
|
138
|
+
type GovernedProtocols = typeof sdkProtocolNameAndGovernanceVaaModuleEntries[number][0];
|
|
139
|
+
|
|
136
140
|
const sdkProtocolNameToGovernanceVaaModuleMapping = constMap(
|
|
137
141
|
sdkProtocolNameAndGovernanceVaaModuleEntries
|
|
138
142
|
);
|
|
139
143
|
|
|
140
|
-
const protocolConversion = <P extends
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
144
|
+
const protocolConversion = <P extends GovernedProtocols>(protocol: P) =>
|
|
145
|
+
({
|
|
146
|
+
to: protocol,
|
|
147
|
+
from: ((): Uint8Array => {
|
|
148
|
+
const moduleBytesSize = 32;
|
|
149
|
+
const bytes = new Uint8Array(moduleBytesSize);
|
|
150
|
+
const vaaModule = sdkProtocolNameToGovernanceVaaModuleMapping(protocol);
|
|
151
|
+
for (let i = 1; i <= vaaModule.length; ++i)
|
|
152
|
+
bytes[moduleBytesSize - i] = vaaModule.charCodeAt(vaaModule.length - i);
|
|
149
153
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
154
|
+
return bytes;
|
|
155
|
+
})(),
|
|
156
|
+
} as const satisfies FixedConversion<Uint8Array, P>);
|
|
153
157
|
|
|
154
158
|
const actionConversion = <A extends Action, N extends number>(
|
|
155
159
|
action: A,
|
|
156
160
|
num: N
|
|
157
161
|
) =>
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
+
({
|
|
163
|
+
to: action,
|
|
164
|
+
from: num,
|
|
165
|
+
} as const satisfies FixedConversion<N, A>);
|
|
162
166
|
|
|
163
167
|
const headerLayout = <
|
|
164
|
-
P extends
|
|
168
|
+
P extends GovernedProtocols,
|
|
165
169
|
A extends Action,
|
|
166
170
|
N extends number
|
|
167
171
|
>(
|
|
@@ -185,7 +189,7 @@ const headerLayout = <
|
|
|
185
189
|
] as const satisfies Layout;
|
|
186
190
|
|
|
187
191
|
const governancePayload = <
|
|
188
|
-
P extends
|
|
192
|
+
P extends GovernedProtocols,
|
|
189
193
|
A extends Action,
|
|
190
194
|
N extends number
|
|
191
195
|
>(
|
|
@@ -204,11 +208,11 @@ const governancePayload = <
|
|
|
204
208
|
|
|
205
209
|
const coreBridgePayloads = [
|
|
206
210
|
//see wormhole ethereum/contracts/GovernanceStructs.sol
|
|
207
|
-
governancePayload("
|
|
208
|
-
governancePayload("
|
|
209
|
-
governancePayload("
|
|
210
|
-
governancePayload("
|
|
211
|
-
governancePayload("
|
|
211
|
+
governancePayload("WormholeCore", "UpgradeContract", 1),
|
|
212
|
+
governancePayload("WormholeCore", "GuardianSetUpgrade", 2),
|
|
213
|
+
governancePayload("WormholeCore", "SetMessageFee", 3),
|
|
214
|
+
governancePayload("WormholeCore", "TransferFees", 4),
|
|
215
|
+
governancePayload("WormholeCore", "RecoverChainId", 5),
|
|
212
216
|
] as const satisfies NamedPayloads;
|
|
213
217
|
|
|
214
218
|
const tokenBridgePayloads = [
|
|
@@ -234,9 +238,9 @@ const relayerPayloads = [
|
|
|
234
238
|
|
|
235
239
|
const cctpPayloads = [
|
|
236
240
|
//see wormhole-circle-integration evm/src/circle_integration/CircleIntegrationGovernance.sol
|
|
237
|
-
governancePayload("
|
|
238
|
-
governancePayload("
|
|
239
|
-
governancePayload("
|
|
241
|
+
governancePayload("AutomaticCircleBridge", "UpdateFinality", 1),
|
|
242
|
+
governancePayload("AutomaticCircleBridge", "RegisterEmitterAndDomain", 2),
|
|
243
|
+
governancePayload("AutomaticCircleBridge", "UpgradeContract", 3),
|
|
240
244
|
] as const satisfies NamedPayloads;
|
|
241
245
|
|
|
242
246
|
|
|
@@ -244,18 +248,17 @@ const cctpPayloads = [
|
|
|
244
248
|
declare global {
|
|
245
249
|
namespace Wormhole {
|
|
246
250
|
interface PayloadLiteralToLayoutMapping extends
|
|
247
|
-
RegisterPayloadTypes<"
|
|
251
|
+
RegisterPayloadTypes<"WormholeCore", typeof coreBridgePayloads>,
|
|
248
252
|
RegisterPayloadTypes<"TokenBridge", typeof tokenBridgePayloads>,
|
|
249
253
|
RegisterPayloadTypes<"NftBridge", typeof nftBridgePayloads>,
|
|
250
254
|
RegisterPayloadTypes<"Relayer", typeof relayerPayloads>,
|
|
251
|
-
RegisterPayloadTypes<"
|
|
252
|
-
{}
|
|
255
|
+
RegisterPayloadTypes<"AutomaticCircleBridge", typeof cctpPayloads> { }
|
|
253
256
|
}
|
|
254
257
|
}
|
|
255
258
|
|
|
256
|
-
registerPayloadTypes("
|
|
259
|
+
registerPayloadTypes("WormholeCore", coreBridgePayloads);
|
|
257
260
|
registerPayloadTypes("TokenBridge", tokenBridgePayloads);
|
|
258
261
|
registerPayloadTypes("NftBridge", nftBridgePayloads);
|
|
259
262
|
registerPayloadTypes("Relayer", relayerPayloads);
|
|
260
|
-
registerPayloadTypes("
|
|
263
|
+
registerPayloadTypes("AutomaticCircleBridge", cctpPayloads);
|
|
261
264
|
|
package/src/protocol.ts
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ChainName,
|
|
3
|
+
isChain,
|
|
4
|
+
PlatformName,
|
|
5
|
+
chainToPlatform,
|
|
6
|
+
ProtocolName,
|
|
7
|
+
} from "@wormhole-foundation/sdk-base";
|
|
8
|
+
import { RpcConnection } from "./rpc";
|
|
9
|
+
import { ChainsConfig } from "./types";
|
|
10
|
+
|
|
11
|
+
declare global {
|
|
12
|
+
namespace Wormhole {
|
|
13
|
+
export interface PlatformToProtocolMapping {}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface ProtocolInitializer<P extends PlatformName> {
|
|
18
|
+
fromRpc(rpc: RpcConnection<P>, config: ChainsConfig): any;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const protocolFactory = new Map<
|
|
22
|
+
PlatformName,
|
|
23
|
+
Map<ProtocolName, ProtocolInitializer<PlatformName>>
|
|
24
|
+
>();
|
|
25
|
+
|
|
26
|
+
export function registerProtocol<
|
|
27
|
+
P extends PlatformName,
|
|
28
|
+
PN extends ProtocolName,
|
|
29
|
+
>(platform: P, protocol: PN, ctr: ProtocolInitializer<P>): void {
|
|
30
|
+
let protocols = protocolFactory.get(platform)!;
|
|
31
|
+
|
|
32
|
+
if (!protocols)
|
|
33
|
+
protocols = new Map<ProtocolName, ProtocolInitializer<PlatformName>>();
|
|
34
|
+
|
|
35
|
+
if (protocols.has(protocol))
|
|
36
|
+
throw new Error(
|
|
37
|
+
`Protocol ${protocol} for platform ${platform} has already registered`,
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
protocols.set(protocol, ctr);
|
|
41
|
+
protocolFactory.set(platform, protocols);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function protocolIsRegistered<
|
|
45
|
+
T extends PlatformName | ChainName,
|
|
46
|
+
PN extends ProtocolName,
|
|
47
|
+
>(chainOrPlatform: T, protocol: PN): boolean {
|
|
48
|
+
const platform: PlatformName = isChain(chainOrPlatform)
|
|
49
|
+
? chainToPlatform.get(chainOrPlatform)!
|
|
50
|
+
: chainOrPlatform;
|
|
51
|
+
|
|
52
|
+
const protocols = protocolFactory.get(platform);
|
|
53
|
+
return !!protocols && protocols.has(protocol);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export function getProtocolInitializer<
|
|
57
|
+
P extends PlatformName,
|
|
58
|
+
PN extends ProtocolName,
|
|
59
|
+
>(platform: P, protocol: PN): ProtocolInitializer<P> {
|
|
60
|
+
const protocols = protocolFactory.get(platform);
|
|
61
|
+
if (!protocols)
|
|
62
|
+
throw new Error(`No protocols registered for platform ${platform}`);
|
|
63
|
+
|
|
64
|
+
const pctr = protocols.get(protocol);
|
|
65
|
+
if (!pctr)
|
|
66
|
+
throw new Error(`No protocol registered for ${platform}:${protocol}`);
|
|
67
|
+
|
|
68
|
+
return pctr;
|
|
69
|
+
}
|
package/src/protocols/cctp.ts
CHANGED
|
@@ -7,34 +7,47 @@ import {
|
|
|
7
7
|
} from "@wormhole-foundation/sdk-base";
|
|
8
8
|
import { ChainAddress } from "../address";
|
|
9
9
|
import { CircleMessageId } from "../attestation";
|
|
10
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
universalAddressItem,
|
|
12
|
+
amountItem,
|
|
13
|
+
circleDomainItem,
|
|
14
|
+
circleNonceItem
|
|
15
|
+
} from "../layout-items";
|
|
11
16
|
import "../payloads/connect";
|
|
12
17
|
import { RpcConnection } from "../rpc";
|
|
13
18
|
import { AnyAddress, TokenId } from "../types";
|
|
14
19
|
import { UnsignedTransaction } from "../unsignedTransaction";
|
|
15
20
|
import { keccak256 } from "../utils";
|
|
16
21
|
|
|
22
|
+
const messageVersionItem = { binary: "uint", size: 4, custom: 0, omit: true } as const;
|
|
23
|
+
|
|
17
24
|
// https://developers.circle.com/stablecoin/docs/cctp-technical-reference#message
|
|
18
|
-
const circleBurnMessageLayout
|
|
19
|
-
|
|
25
|
+
const circleBurnMessageLayout = [
|
|
26
|
+
// messageBodyVersion is:
|
|
27
|
+
// * immutable: https://github.com/circlefin/evm-cctp-contracts/blob/adb2a382b09ea574f4d18d8af5b6706e8ed9b8f2/src/TokenMessenger.sol#L107
|
|
28
|
+
// * 0: https://etherscan.io/address/0xbd3fa81b58ba92a82136038b25adec7066af3155#readContract
|
|
29
|
+
{ name: "messageBodyVersion", ...messageVersionItem },
|
|
20
30
|
{ name: "burnToken", ...universalAddressItem },
|
|
21
31
|
{ name: "mintRecipient", ...universalAddressItem },
|
|
22
|
-
{ name: "amount",
|
|
32
|
+
{ name: "amount", ...amountItem },
|
|
23
33
|
{ name: "messageSender", ...universalAddressItem },
|
|
24
|
-
];
|
|
34
|
+
] as const satisfies Layout;
|
|
25
35
|
|
|
26
36
|
// TODO: convert domain to chain name?
|
|
27
|
-
export const circleMessageLayout
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
{ name: "
|
|
37
|
+
export const circleMessageLayout = [
|
|
38
|
+
// version is:
|
|
39
|
+
// * immutable: https://github.com/circlefin/evm-cctp-contracts/blob/adb2a382b09ea574f4d18d8af5b6706e8ed9b8f2/src/MessageTransmitter.sol#L75
|
|
40
|
+
// * 0: https://etherscan.io/address/0x0a992d191deec32afe36203ad87d7d289a738f81#readContract
|
|
41
|
+
{ name: "version", ...messageVersionItem },
|
|
42
|
+
{ name: "sourceDomain", ...circleDomainItem },
|
|
43
|
+
{ name: "destinationDomain", ...circleDomainItem },
|
|
44
|
+
{ name: "nonce", ...circleNonceItem },
|
|
32
45
|
{ name: "sender", ...universalAddressItem },
|
|
33
46
|
{ name: "recipient", ...universalAddressItem },
|
|
34
47
|
{ name: "destinationCaller", ...universalAddressItem },
|
|
35
48
|
// TODO: is this the only message body we'll get?
|
|
36
49
|
{ name: "payload", binary: "object", layout: circleBurnMessageLayout },
|
|
37
|
-
];
|
|
50
|
+
] as const satisfies Layout;
|
|
38
51
|
|
|
39
52
|
export const deserializeCircleMessage = (
|
|
40
53
|
data: Uint8Array,
|
package/src/protocols/core.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { PlatformName } from "@wormhole-foundation/sdk-base";
|
|
2
|
-
import { AnyAddress } from "../types";
|
|
2
|
+
import { AnyAddress, TxHash } from "../types";
|
|
3
3
|
import { UnsignedTransaction } from "../unsignedTransaction";
|
|
4
4
|
import { RpcConnection } from "../rpc";
|
|
5
|
+
import { WormholeMessageId } from "../attestation";
|
|
5
6
|
|
|
6
7
|
export interface SupportsWormholeCore<P extends PlatformName> {
|
|
7
8
|
getWormholeCore(rpc: RpcConnection<P>): Promise<WormholeCore<P>>;
|
|
@@ -18,6 +19,6 @@ export interface WormholeCore<P extends PlatformName> {
|
|
|
18
19
|
sender: AnyAddress,
|
|
19
20
|
message: string | Uint8Array
|
|
20
21
|
): AsyncGenerator<UnsignedTransaction>;
|
|
21
|
-
|
|
22
|
+
parseTransaction(txid: TxHash): Promise<WormholeMessageId[]>;
|
|
22
23
|
// TODO: events?
|
|
23
24
|
}
|
package/src/signature.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
// Signature represents the secp256k1 signature of a Guardian
|
|
2
|
+
|
|
3
|
+
import { signatureItem } from "./layout-items";
|
|
4
|
+
|
|
2
5
|
// use layout-items/signature.ts to serialize/deserialize
|
|
3
6
|
export class Signature {
|
|
4
7
|
constructor(
|
|
@@ -6,4 +9,12 @@ export class Signature {
|
|
|
6
9
|
readonly s: bigint,
|
|
7
10
|
readonly v: number,
|
|
8
11
|
) {}
|
|
12
|
+
|
|
13
|
+
encode(): Uint8Array {
|
|
14
|
+
return signatureItem.custom.from(this);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
static decode(data: Uint8Array): Signature {
|
|
18
|
+
return signatureItem.custom.to(data);
|
|
19
|
+
}
|
|
9
20
|
}
|
package/src/vaa.ts
CHANGED
|
@@ -107,7 +107,7 @@ const headerLayout = [
|
|
|
107
107
|
arrayItem: { binary: "object", layout: guardianSignatureLayout },
|
|
108
108
|
},
|
|
109
109
|
] as const satisfies Layout;
|
|
110
|
-
|
|
110
|
+
|
|
111
111
|
//envelope + payload are getting hashed and signed
|
|
112
112
|
const envelopeLayout = [
|
|
113
113
|
{ name: "timestamp", binary: "uint", size: 4 },
|
|
@@ -180,12 +180,18 @@ const payloadLiteralToPayloadItem = <PL extends PayloadLiteral>(
|
|
|
180
180
|
|
|
181
181
|
//annoyingly we can't use the return value of payloadLiteralToPayloadItem
|
|
182
182
|
type PayloadLiteralToDynamicItems<PL extends PayloadLiteral> =
|
|
183
|
-
DynamicItemsOfLayout<
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
183
|
+
DynamicItemsOfLayout<
|
|
184
|
+
[
|
|
185
|
+
...typeof baseLayout,
|
|
186
|
+
PL extends LayoutLiteral
|
|
187
|
+
? {
|
|
188
|
+
name: "payload";
|
|
189
|
+
binary: "object";
|
|
190
|
+
layout: DynamicItemsOfLayout<LayoutOf<PL>>;
|
|
191
|
+
}
|
|
192
|
+
: { name: "payload"; binary: "bytes" },
|
|
193
|
+
]
|
|
194
|
+
>;
|
|
189
195
|
|
|
190
196
|
export function createVAA<PL extends PayloadLiteral = "Uint8Array">(
|
|
191
197
|
payloadLiteral: PL,
|
|
@@ -212,7 +218,7 @@ export function createVAA<PL extends PayloadLiteral = "Uint8Array">(
|
|
|
212
218
|
...bodyWithFixed,
|
|
213
219
|
hash: keccak256(serializeLayout(bodyLayout, bodyWithFixed)),
|
|
214
220
|
} as VAA<PL>;
|
|
215
|
-
}
|
|
221
|
+
}
|
|
216
222
|
|
|
217
223
|
export function registerPayloadType(
|
|
218
224
|
protocol: ProtocolName,
|
|
@@ -243,15 +249,13 @@ export function registerPayloadTypes(
|
|
|
243
249
|
registerPayloadType(protocol, name, layout);
|
|
244
250
|
}
|
|
245
251
|
|
|
246
|
-
export function serialize<PL extends PayloadLiteral>(
|
|
247
|
-
vaa: VAA<PL>,
|
|
248
|
-
): Uint8Array {
|
|
252
|
+
export function serialize<PL extends PayloadLiteral>(vaa: VAA<PL>): Uint8Array {
|
|
249
253
|
const layout = [
|
|
250
254
|
...baseLayout,
|
|
251
255
|
payloadLiteralToPayloadItem(vaa.payloadLiteral),
|
|
252
256
|
] as const satisfies Layout;
|
|
253
257
|
return serializeLayout(layout, vaa as unknown as LayoutToType<typeof layout>);
|
|
254
|
-
}
|
|
258
|
+
}
|
|
255
259
|
|
|
256
260
|
export function serializePayload<PL extends PayloadLiteral>(
|
|
257
261
|
payloadLiteral: PL,
|
|
@@ -261,7 +265,7 @@ export function serializePayload<PL extends PayloadLiteral>(
|
|
|
261
265
|
|
|
262
266
|
const layout = getPayloadLayout(payloadLiteral);
|
|
263
267
|
return serializeLayout(layout, payload as LayoutToType<typeof layout>);
|
|
264
|
-
}
|
|
268
|
+
}
|
|
265
269
|
|
|
266
270
|
//string assumed to be in hex format
|
|
267
271
|
export type Byteish = Uint8Array | string;
|