@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.
Files changed (70) hide show
  1. package/README.md +5 -5
  2. package/dist/cjs/index.d.ts +1 -0
  3. package/dist/cjs/index.d.ts.map +1 -1
  4. package/dist/cjs/index.js +1 -0
  5. package/dist/cjs/index.js.map +1 -1
  6. package/dist/cjs/payloads/connect.d.ts +1 -1
  7. package/dist/cjs/payloads/connect.d.ts.map +1 -1
  8. package/dist/cjs/payloads/connect.js +2 -1
  9. package/dist/cjs/payloads/connect.js.map +1 -1
  10. package/dist/cjs/payloads/governance.d.ts +9 -9
  11. package/dist/cjs/payloads/governance.d.ts.map +1 -1
  12. package/dist/cjs/payloads/governance.js +14 -12
  13. package/dist/cjs/payloads/governance.js.map +1 -1
  14. package/dist/cjs/protocol.d.ts +16 -0
  15. package/dist/cjs/protocol.d.ts.map +1 -0
  16. package/dist/cjs/protocol.js +34 -0
  17. package/dist/cjs/protocol.js.map +1 -0
  18. package/dist/cjs/protocols/cctp.d.ts +90 -2
  19. package/dist/cjs/protocols/cctp.d.ts.map +1 -1
  20. package/dist/cjs/protocols/cctp.js +13 -6
  21. package/dist/cjs/protocols/cctp.js.map +1 -1
  22. package/dist/cjs/protocols/core.d.ts +3 -1
  23. package/dist/cjs/protocols/core.d.ts.map +1 -1
  24. package/dist/cjs/protocols/core.js.map +1 -1
  25. package/dist/cjs/signature.d.ts +2 -0
  26. package/dist/cjs/signature.d.ts.map +1 -1
  27. package/dist/cjs/signature.js +8 -1
  28. package/dist/cjs/signature.js.map +1 -1
  29. package/dist/cjs/vaa.d.ts.map +1 -1
  30. package/dist/cjs/vaa.js +0 -3
  31. package/dist/cjs/vaa.js.map +1 -1
  32. package/dist/esm/index.d.ts +1 -0
  33. package/dist/esm/index.d.ts.map +1 -1
  34. package/dist/esm/index.js +1 -0
  35. package/dist/esm/index.js.map +1 -1
  36. package/dist/esm/payloads/connect.d.ts +1 -1
  37. package/dist/esm/payloads/connect.d.ts.map +1 -1
  38. package/dist/esm/payloads/connect.js +2 -1
  39. package/dist/esm/payloads/connect.js.map +1 -1
  40. package/dist/esm/payloads/governance.d.ts +9 -9
  41. package/dist/esm/payloads/governance.d.ts.map +1 -1
  42. package/dist/esm/payloads/governance.js +14 -12
  43. package/dist/esm/payloads/governance.js.map +1 -1
  44. package/dist/esm/protocol.d.ts +16 -0
  45. package/dist/esm/protocol.d.ts.map +1 -0
  46. package/dist/esm/protocol.js +28 -0
  47. package/dist/esm/protocol.js.map +1 -0
  48. package/dist/esm/protocols/cctp.d.ts +90 -2
  49. package/dist/esm/protocols/cctp.d.ts.map +1 -1
  50. package/dist/esm/protocols/cctp.js +14 -7
  51. package/dist/esm/protocols/cctp.js.map +1 -1
  52. package/dist/esm/protocols/core.d.ts +3 -1
  53. package/dist/esm/protocols/core.d.ts.map +1 -1
  54. package/dist/esm/protocols/core.js.map +1 -1
  55. package/dist/esm/signature.d.ts +2 -0
  56. package/dist/esm/signature.d.ts.map +1 -1
  57. package/dist/esm/signature.js +7 -0
  58. package/dist/esm/signature.js.map +1 -1
  59. package/dist/esm/vaa.d.ts.map +1 -1
  60. package/dist/esm/vaa.js +0 -3
  61. package/dist/esm/vaa.js.map +1 -1
  62. package/package.json +2 -1
  63. package/src/index.ts +1 -0
  64. package/src/payloads/connect.ts +5 -4
  65. package/src/payloads/governance.ts +36 -33
  66. package/src/protocol.ts +69 -0
  67. package/src/protocols/cctp.ts +24 -11
  68. package/src/protocols/core.ts +3 -2
  69. package/src/signature.ts +11 -0
  70. 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]))
@@ -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.6",
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
@@ -6,6 +6,7 @@ import "./payloads/tokenBridge";
6
6
  import "./payloads/bam";
7
7
 
8
8
  export * from "./address";
9
+ export * from "./protocol";
9
10
  export * from "./universalAddress";
10
11
  export * from "./unsignedTransaction";
11
12
  export * from "./vaa";
@@ -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<"CCTP", typeof namedPayloads> {}
68
+ extends RegisterPayloadTypes<"AutomaticCircleBridge", typeof namedPayloads> { }
68
69
  }
69
70
  }
70
71
 
71
- registerPayloadTypes("CCTP", namedPayloads);
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
- ["CoreBridge", "Core"],
129
+ ["WormholeCore", "Core"],
130
130
  ["TokenBridge", "TokenBridge"],
131
+ ["AutomaticTokenBridge", "TokenBridge"],
131
132
  ["NftBridge", "NFTBridge"],
132
133
  ["Relayer", "WormholeRelayer"],
133
- ["CCTP", "CircleIntegration"],
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 ProtocolName>(protocol: P) =>
141
- ({
142
- to: protocol,
143
- from: ((): Uint8Array => {
144
- const moduleBytesSize = 32;
145
- const bytes = new Uint8Array(moduleBytesSize);
146
- const vaaModule = sdkProtocolNameToGovernanceVaaModuleMapping(protocol);
147
- for (let i = 1; i <= vaaModule.length; ++i)
148
- bytes[moduleBytesSize - i] = vaaModule.charCodeAt(vaaModule.length - i);
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
- return bytes;
151
- })(),
152
- } as const satisfies FixedConversion<Uint8Array, P>);
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
- to: action,
160
- from: num,
161
- } as const satisfies FixedConversion<N, A>);
162
+ ({
163
+ to: action,
164
+ from: num,
165
+ } as const satisfies FixedConversion<N, A>);
162
166
 
163
167
  const headerLayout = <
164
- P extends ProtocolName,
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 ProtocolName,
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("CoreBridge", "UpgradeContract", 1),
208
- governancePayload("CoreBridge", "GuardianSetUpgrade", 2),
209
- governancePayload("CoreBridge", "SetMessageFee", 3),
210
- governancePayload("CoreBridge", "TransferFees", 4),
211
- governancePayload("CoreBridge", "RecoverChainId", 5),
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("CCTP", "UpdateFinality", 1),
238
- governancePayload("CCTP", "RegisterEmitterAndDomain", 2),
239
- governancePayload("CCTP", "UpgradeContract", 3),
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<"CoreBridge", typeof coreBridgePayloads>,
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<"CCTP", typeof cctpPayloads>
252
- {}
255
+ RegisterPayloadTypes<"AutomaticCircleBridge", typeof cctpPayloads> { }
253
256
  }
254
257
  }
255
258
 
256
- registerPayloadTypes("CoreBridge", coreBridgePayloads);
259
+ registerPayloadTypes("WormholeCore", coreBridgePayloads);
257
260
  registerPayloadTypes("TokenBridge", tokenBridgePayloads);
258
261
  registerPayloadTypes("NftBridge", nftBridgePayloads);
259
262
  registerPayloadTypes("Relayer", relayerPayloads);
260
- registerPayloadTypes("CCTP", cctpPayloads);
263
+ registerPayloadTypes("AutomaticCircleBridge", cctpPayloads);
261
264
 
@@ -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
+ }
@@ -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 { universalAddressItem } from "../layout-items";
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: Layout = [
19
- { name: "version", binary: "uint", size: 4 },
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", binary: "uint", size: 32 },
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: Layout = [
28
- { name: "version", binary: "uint", size: 4 },
29
- { name: "sourceDomain", binary: "uint", size: 4 },
30
- { name: "destinationDomain", binary: "uint", size: 4 },
31
- { name: "nonce", binary: "uint", size: 8 },
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,
@@ -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
- // TODO: parseTransactionDetails
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
- ...typeof baseLayout,
185
- PL extends LayoutLiteral
186
- ? { name: "payload"; binary: "object"; layout: DynamicItemsOfLayout<LayoutOf<PL>> }
187
- : { name: "payload"; binary: "bytes" },
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;