@wormhole-foundation/sdk-definitions 0.1.8-beta.5 → 0.1.8-beta.7
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/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/layout-items/amount.d.ts.map +1 -1
- package/dist/cjs/layout-items/amount.js.map +1 -1
- package/dist/cjs/layout-items/chain.d.ts +1 -1
- package/dist/cjs/layout-items/chain.d.ts.map +1 -1
- package/dist/cjs/layout-items/chain.js +1 -1
- package/dist/cjs/layout-items/chain.js.map +1 -1
- package/dist/cjs/layout-items/circle.d.ts +14 -0
- package/dist/cjs/layout-items/circle.d.ts.map +1 -0
- package/dist/cjs/layout-items/circle.js +17 -0
- package/dist/cjs/layout-items/circle.js.map +1 -0
- package/dist/cjs/layout-items/guardianSet.d.ts.map +1 -1
- package/dist/cjs/layout-items/guardianSet.js.map +1 -1
- package/dist/cjs/layout-items/index.d.ts +1 -0
- package/dist/cjs/layout-items/index.d.ts.map +1 -1
- package/dist/cjs/layout-items/index.js +1 -0
- package/dist/cjs/layout-items/index.js.map +1 -1
- package/dist/cjs/layout-items/payloadId.d.ts.map +1 -1
- package/dist/cjs/layout-items/payloadId.js.map +1 -1
- package/dist/cjs/layout-items/sequence.d.ts.map +1 -1
- package/dist/cjs/layout-items/sequence.js.map +1 -1
- package/dist/cjs/layout-items/signature.d.ts.map +1 -1
- package/dist/cjs/layout-items/signature.js.map +1 -1
- package/dist/cjs/layout-items/universalAddress.d.ts.map +1 -1
- package/dist/cjs/layout-items/universalAddress.js.map +1 -1
- package/dist/cjs/payloads/bam.js.map +1 -1
- package/dist/cjs/payloads/connect.d.ts +44 -12
- package/dist/cjs/payloads/connect.d.ts.map +1 -1
- package/dist/cjs/payloads/connect.js +3 -3
- package/dist/cjs/payloads/connect.js.map +1 -1
- package/dist/cjs/payloads/governance.d.ts +2 -3
- package/dist/cjs/payloads/governance.d.ts.map +1 -1
- package/dist/cjs/payloads/governance.js +1 -3
- package/dist/cjs/payloads/governance.js.map +1 -1
- package/dist/cjs/payloads/relayer.d.ts +45 -38
- package/dist/cjs/payloads/relayer.d.ts.map +1 -1
- package/dist/cjs/payloads/relayer.js +26 -13
- package/dist/cjs/payloads/relayer.js.map +1 -1
- package/dist/cjs/payloads/tokenBridge.d.ts +1 -1
- package/dist/cjs/payloads/tokenBridge.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/vaa.d.ts +20 -102
- package/dist/cjs/vaa.d.ts.map +1 -1
- package/dist/cjs/vaa.js +10 -7
- 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/layout-items/amount.d.ts.map +1 -1
- package/dist/esm/layout-items/amount.js.map +1 -1
- package/dist/esm/layout-items/chain.d.ts +1 -1
- package/dist/esm/layout-items/chain.d.ts.map +1 -1
- package/dist/esm/layout-items/chain.js +1 -1
- package/dist/esm/layout-items/chain.js.map +1 -1
- package/dist/esm/layout-items/circle.d.ts +14 -0
- package/dist/esm/layout-items/circle.d.ts.map +1 -0
- package/dist/esm/layout-items/circle.js +14 -0
- package/dist/esm/layout-items/circle.js.map +1 -0
- package/dist/esm/layout-items/guardianSet.d.ts.map +1 -1
- package/dist/esm/layout-items/guardianSet.js.map +1 -1
- package/dist/esm/layout-items/index.d.ts +1 -0
- package/dist/esm/layout-items/index.d.ts.map +1 -1
- package/dist/esm/layout-items/index.js +1 -0
- package/dist/esm/layout-items/index.js.map +1 -1
- package/dist/esm/layout-items/payloadId.d.ts.map +1 -1
- package/dist/esm/layout-items/payloadId.js.map +1 -1
- package/dist/esm/layout-items/sequence.d.ts.map +1 -1
- package/dist/esm/layout-items/sequence.js.map +1 -1
- package/dist/esm/layout-items/signature.d.ts.map +1 -1
- package/dist/esm/layout-items/signature.js.map +1 -1
- package/dist/esm/layout-items/universalAddress.d.ts.map +1 -1
- package/dist/esm/layout-items/universalAddress.js.map +1 -1
- package/dist/esm/payloads/bam.js.map +1 -1
- package/dist/esm/payloads/connect.d.ts +44 -12
- package/dist/esm/payloads/connect.d.ts.map +1 -1
- package/dist/esm/payloads/connect.js +4 -4
- package/dist/esm/payloads/connect.js.map +1 -1
- package/dist/esm/payloads/governance.d.ts +2 -3
- package/dist/esm/payloads/governance.d.ts.map +1 -1
- package/dist/esm/payloads/governance.js +1 -3
- package/dist/esm/payloads/governance.js.map +1 -1
- package/dist/esm/payloads/relayer.d.ts +45 -38
- package/dist/esm/payloads/relayer.d.ts.map +1 -1
- package/dist/esm/payloads/relayer.js +25 -12
- package/dist/esm/payloads/relayer.js.map +1 -1
- package/dist/esm/payloads/tokenBridge.d.ts +1 -1
- package/dist/esm/payloads/tokenBridge.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/vaa.d.ts +20 -102
- package/dist/esm/vaa.d.ts.map +1 -1
- package/dist/esm/vaa.js +10 -7
- package/dist/esm/vaa.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/layout-items/amount.ts +1 -1
- package/src/layout-items/chain.ts +3 -3
- package/src/layout-items/circle.ts +15 -0
- package/src/layout-items/guardianSet.ts +1 -1
- package/src/layout-items/index.ts +1 -0
- package/src/layout-items/payloadId.ts +1 -1
- package/src/layout-items/sequence.ts +1 -1
- package/src/layout-items/signature.ts +1 -1
- package/src/layout-items/universalAddress.ts +1 -1
- package/src/payloads/bam.ts +1 -1
- package/src/payloads/connect.ts +10 -10
- package/src/payloads/governance.ts +1 -3
- package/src/payloads/relayer.ts +37 -24
- package/src/payloads/tokenBridge.ts +2 -2
- package/src/protocol.ts +71 -0
- package/src/vaa.ts +18 -24
package/dist/esm/vaa.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Layout,
|
|
1
|
+
import { Layout, LayoutToType, DynamicItemsOfLayout } from "@wormhole-foundation/sdk-base";
|
|
2
2
|
declare global {
|
|
3
3
|
namespace Wormhole {
|
|
4
4
|
interface PayloadLiteralToLayoutMapping {
|
|
@@ -29,19 +29,22 @@ declare const baseLayout: readonly [{
|
|
|
29
29
|
readonly name: "signatures";
|
|
30
30
|
readonly binary: "array";
|
|
31
31
|
readonly lengthSize: 1;
|
|
32
|
-
readonly
|
|
33
|
-
readonly
|
|
34
|
-
readonly
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
readonly
|
|
41
|
-
readonly
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
32
|
+
readonly arrayItem: {
|
|
33
|
+
readonly binary: "object";
|
|
34
|
+
readonly layout: readonly [{
|
|
35
|
+
readonly name: "guardianIndex";
|
|
36
|
+
readonly binary: "uint";
|
|
37
|
+
readonly size: 1;
|
|
38
|
+
}, {
|
|
39
|
+
readonly binary: "bytes";
|
|
40
|
+
readonly size: 65;
|
|
41
|
+
readonly custom: {
|
|
42
|
+
readonly to: (val: Uint8Array) => import("./signature").Signature;
|
|
43
|
+
readonly from: (val: import("./signature").Signature) => Uint8Array;
|
|
44
|
+
};
|
|
45
|
+
readonly name: "signature";
|
|
46
|
+
}];
|
|
47
|
+
};
|
|
45
48
|
}, {
|
|
46
49
|
readonly name: "timestamp";
|
|
47
50
|
readonly binary: "uint";
|
|
@@ -96,92 +99,7 @@ type PayloadLiteralToDynamicItems<PL extends PayloadLiteral> = DynamicItemsOfLay
|
|
|
96
99
|
binary: "bytes";
|
|
97
100
|
}
|
|
98
101
|
]>;
|
|
99
|
-
export declare
|
|
100
|
-
readonly binary: "uint";
|
|
101
|
-
readonly size: 4;
|
|
102
|
-
readonly name: "guardianSet";
|
|
103
|
-
}, {
|
|
104
|
-
readonly name: "signatures";
|
|
105
|
-
readonly binary: "array";
|
|
106
|
-
readonly lengthSize: 1;
|
|
107
|
-
readonly layout: readonly [{
|
|
108
|
-
readonly name: "guardianIndex";
|
|
109
|
-
readonly binary: "uint";
|
|
110
|
-
readonly size: 1;
|
|
111
|
-
}, {
|
|
112
|
-
readonly binary: "bytes";
|
|
113
|
-
readonly size: 65;
|
|
114
|
-
readonly custom: {
|
|
115
|
-
readonly to: (val: Uint8Array) => import("./signature").Signature;
|
|
116
|
-
readonly from: (val: import("./signature").Signature) => Uint8Array;
|
|
117
|
-
};
|
|
118
|
-
readonly name: "signature";
|
|
119
|
-
}];
|
|
120
|
-
}, {
|
|
121
|
-
readonly name: "timestamp";
|
|
122
|
-
readonly binary: "uint";
|
|
123
|
-
readonly size: 4;
|
|
124
|
-
}, {
|
|
125
|
-
readonly name: "nonce";
|
|
126
|
-
readonly binary: "uint";
|
|
127
|
-
readonly size: 4;
|
|
128
|
-
}, {
|
|
129
|
-
readonly custom: {
|
|
130
|
-
to: (val: number) => "Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Base" | "Sei" | "Rootstock" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Sepolia";
|
|
131
|
-
from: (val: "Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Base" | "Sei" | "Rootstock" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Sepolia") => number;
|
|
132
|
-
};
|
|
133
|
-
readonly binary: "uint";
|
|
134
|
-
readonly size: 2;
|
|
135
|
-
readonly name: "emitterChain";
|
|
136
|
-
}, {
|
|
137
|
-
readonly binary: "bytes";
|
|
138
|
-
readonly size: 32;
|
|
139
|
-
readonly custom: {
|
|
140
|
-
to: (val: Uint8Array) => import("./universalAddress").UniversalAddress;
|
|
141
|
-
from: (val: import("./universalAddress").UniversalAddress) => Uint8Array;
|
|
142
|
-
};
|
|
143
|
-
readonly name: "emitterAddress";
|
|
144
|
-
}, {
|
|
145
|
-
readonly binary: "uint";
|
|
146
|
-
readonly size: 8;
|
|
147
|
-
readonly name: "sequence";
|
|
148
|
-
}, {
|
|
149
|
-
readonly name: "consistencyLevel";
|
|
150
|
-
readonly binary: "uint";
|
|
151
|
-
readonly size: 1;
|
|
152
|
-
}, ...[(PL extends LayoutLiteral ? {
|
|
153
|
-
name: "payload";
|
|
154
|
-
binary: "object";
|
|
155
|
-
layout: DynamicItemsOfLayout<LayoutOf<PL>>;
|
|
156
|
-
} : {
|
|
157
|
-
name: "payload";
|
|
158
|
-
binary: "bytes";
|
|
159
|
-
}) extends infer T ? T extends (PL extends LayoutLiteral ? {
|
|
160
|
-
name: "payload";
|
|
161
|
-
binary: "object";
|
|
162
|
-
layout: DynamicItemsOfLayout<LayoutOf<PL>>;
|
|
163
|
-
} : {
|
|
164
|
-
name: "payload";
|
|
165
|
-
binary: "bytes";
|
|
166
|
-
}) ? T extends {
|
|
167
|
-
custom: import("@wormhole-foundation/sdk-base/dist/esm/utils/layout/layout").PrimitiveType | import("@wormhole-foundation/sdk-base").FixedConversion<import("@wormhole-foundation/sdk-base/dist/esm/utils/layout/layout").PrimitiveType, any>;
|
|
168
|
-
} ? never : T extends import("@wormhole-foundation/sdk-base").ArrayLayoutItem | import("@wormhole-foundation/sdk-base").ObjectLayoutItem ? DynamicItemsOfLayout<T["layout"]> extends readonly LayoutItem[] ? [DynamicItemsOfLayout<T["layout"]>[number]] extends [never] ? never : { readonly [K in keyof T]: K extends "layout" ? DynamicItemsOfLayout<T["layout"]> : T[K]; } : never : T : never : never] extends [never] ? readonly [] : readonly [(PL extends LayoutLiteral ? {
|
|
169
|
-
name: "payload";
|
|
170
|
-
binary: "object";
|
|
171
|
-
layout: DynamicItemsOfLayout<LayoutOf<PL>>;
|
|
172
|
-
} : {
|
|
173
|
-
name: "payload";
|
|
174
|
-
binary: "bytes";
|
|
175
|
-
}) extends infer T_1 ? T_1 extends (PL extends LayoutLiteral ? {
|
|
176
|
-
name: "payload";
|
|
177
|
-
binary: "object";
|
|
178
|
-
layout: DynamicItemsOfLayout<LayoutOf<PL>>;
|
|
179
|
-
} : {
|
|
180
|
-
name: "payload";
|
|
181
|
-
binary: "bytes";
|
|
182
|
-
}) ? T_1 extends {
|
|
183
|
-
custom: import("@wormhole-foundation/sdk-base/dist/esm/utils/layout/layout").PrimitiveType | import("@wormhole-foundation/sdk-base").FixedConversion<import("@wormhole-foundation/sdk-base/dist/esm/utils/layout/layout").PrimitiveType, any>;
|
|
184
|
-
} ? never : T_1 extends import("@wormhole-foundation/sdk-base").ArrayLayoutItem | import("@wormhole-foundation/sdk-base").ObjectLayoutItem ? DynamicItemsOfLayout<T_1["layout"]> extends readonly LayoutItem[] ? [DynamicItemsOfLayout<T_1["layout"]>[number]] extends [never] ? never : { readonly [K_1 in keyof T_1]: K_1 extends "layout" ? DynamicItemsOfLayout<T_1["layout"]> : T_1[K_1]; } : never : T_1 : never : never]]>) => VAA<PL>;
|
|
102
|
+
export declare function createVAA<PL extends PayloadLiteral = "Uint8Array">(payloadLiteral: PL, vaaData: LayoutToType<PayloadLiteralToDynamicItems<PL>>): VAA<PL>;
|
|
185
103
|
export declare function registerPayloadType(protocol: ProtocolName, name: string, layout: Layout): void;
|
|
186
104
|
type AtLeast1<T> = readonly [T, ...T[]];
|
|
187
105
|
type AtLeast2<T> = readonly [T, T, ...T[]];
|
|
@@ -190,8 +108,8 @@ export type RegisterPayloadTypes<ProtocolN extends ProtocolName, NP extends Name
|
|
|
190
108
|
readonly [E in NP[number] as ToLiteralFormat<ProtocolN, E[0]>]: E[1];
|
|
191
109
|
};
|
|
192
110
|
export declare function registerPayloadTypes(protocol: ProtocolName, payloads: NamedPayloads): void;
|
|
193
|
-
export declare
|
|
194
|
-
export declare
|
|
111
|
+
export declare function serialize<PL extends PayloadLiteral>(vaa: VAA<PL>): Uint8Array;
|
|
112
|
+
export declare function serializePayload<PL extends PayloadLiteral>(payloadLiteral: PL, payload: PayloadLiteralToPayloadType<PL>): Uint8Array;
|
|
195
113
|
export type Byteish = Uint8Array | string;
|
|
196
114
|
export type PayloadDiscriminator<LL extends LayoutLiteral = LayoutLiteral, AllowAmbiguous extends boolean = false> = (data: Byteish) => AllowAmbiguous extends false ? LL | null : readonly LL[];
|
|
197
115
|
type PayloadGroup = readonly [ProtocolName, AtLeast1<string>];
|
package/dist/esm/vaa.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vaa.d.ts","sourceRoot":"","sources":["../../src/vaa.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,
|
|
1
|
+
{"version":3,"file":"vaa.d.ts","sourceRoot":"","sources":["../../src/vaa.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAEN,YAAY,EAIZ,oBAAoB,EAErB,MAAM,+BAA+B,CAAC;AAkBvC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,QAAQ,CAAC;QAEjB,UAAU,6BAA6B;SAAG;KAC3C;CACF;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,6BAA6B,GACtE,MAAM,CAAC;AACT,KAAK,QAAQ,CAAC,EAAE,SAAS,aAAa,IAEpC,EAAE,SAAS,MAAM,CAAC,SAAS,aAAa,GACpC,QAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC,GACzC,KAAK,CAAC;AAEZ,KAAK,0BAA0B,CAAC,EAAE,SAAS,aAAa,IAAI,YAAY,CACtE,QAAQ,CAAC,EAAE,CAAC,CACb,CAAC;AAGF,KAAK,YAAY,GAAG,MAAM,GAAG,IAAI,CAAC;AAElC,KAAK,eAAe,CAClB,EAAE,SAAS,YAAY,EACvB,WAAW,SAAS,MAAM,IACxB,EAAE,SAAS,IAAI,GAAG,WAAW,GAAG,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC;AAE3D,KAAK,cAAc,CACjB,SAAS,SAAS,YAAY,EAC9B,QAAQ,SAAS,MAAM,EACvB,OAAO,IACL,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,MAAM,CAAC,SAAS,OAAO,GACpE,CAAC,GACD,KAAK,CAAC;AAEV,eAAO,MAAM,cAAc,8JAWxB,CAAC;AAEJ,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,YAAY,CAAC;AAC1D,KAAK,2BAA2B,CAAC,EAAE,SAAS,cAAc,IACxD,EAAE,SAAS,aAAa,GAAG,0BAA0B,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC;AAEzE,KAAK,gBAAgB,CAAC,EAAE,SAAS,cAAc,IAC7C,EAAE,SAAS,GAAG,MAAM,QAAQ,IAAI,MAAM,UAAU,EAAE,GAC9C,CAAC,QAAQ,EAAE,UAAU,CAAC,GACtB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAqCjB,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAgD,CAAC;AACjE,KAAK,UAAU,GAAG,YAAY,CAAC,OAAO,UAAU,CAAC,CAAC;AAElD,MAAM,WAAW,GAAG,CAAC,EAAE,SAAS,cAAc,GAAG,cAAc,CAC7D,SAAQ,UAAU;IAClB,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC,EAAE,CAAC,CAAC;IAMlD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAcD,MAAM,MAAM,eAAe,CAAC,EAAE,SAAS,cAAc,IACnD,EAAE,SAAS,cAAc,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;AAE9C,MAAM,MAAM,WAAW,CACrB,EAAE,SAAS,YAAY,EACvB,WAAW,SAAS,MAAM,IACxB,cAAc,CAAC,EAAE,EAAE,WAAW,EAAE,cAAc,CAAC,SAAS,MAAM,EAAE,SAClE,cAAc,GACZ,eAAe,CAAC,EAAE,CAAC,GACnB,KAAK,CAAC;AAuBV,KAAK,4BAA4B,CAAC,EAAE,SAAS,cAAc,IACzD,oBAAoB,CAAC;IACnB,GAAG,OAAO,UAAU;IACpB,EAAE,SAAS,aAAa,GACtB;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;KAAE,GACjF;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE;CACvC,CAAC,CAAC;AAEL,wBAAgB,SAAS,CAAC,EAAE,SAAS,cAAc,GAAG,YAAY,EAChE,cAAc,EAAE,EAAE,EAClB,OAAO,EAAE,YAAY,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC,GACtD,GAAG,CAAC,EAAE,CAAC,CAsBT;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,QAOf;AAED,KAAK,QAAQ,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AACxC,KAAK,QAAQ,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAChE,MAAM,MAAM,oBAAoB,CAC9B,SAAS,SAAS,YAAY,EAC9B,EAAE,SAAS,aAAa,IACtB;IAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAE7E,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,aAAa,QAIxB;AAED,wBAAgB,SAAS,CAAC,EAAE,SAAS,cAAc,EACjD,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GACX,UAAU,CAMZ;AAED,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,cAAc,EACxD,cAAc,EAAE,EAAE,EAClB,OAAO,EAAE,2BAA2B,CAAC,EAAE,CAAC,cAMzC;AAGD,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAE1C,MAAM,MAAM,oBAAoB,CAC9B,EAAE,SAAS,aAAa,GAAG,aAAa,EACxC,cAAc,SAAS,OAAO,GAAG,KAAK,IACpC,CAAC,IAAI,EAAE,OAAO,KAAK,cAAc,SAAS,KAAK,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,EAAE,EAAE,CAAC;AAEhF,KAAK,YAAY,GAAG,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9D,KAAK,4BAA4B,CAAC,EAAE,SAAS,YAAY,IAAI,cAAc,CACzE,EAAE,CAAC,CAAC,CAAC,EACL,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EACb,aAAa,CACd,CAAC;AACF,KAAK,sCAAsC,CACzC,GAAG,SAAS,SAAS,YAAY,EAAE,IACjC,GAAG,SAAS,SAAS;IACvB,MAAM,EAAE,SAAS,YAAY;IAC7B,GAAG,MAAM,CAAC,SAAS,SAAS,YAAY,EAAE;CAC3C,GACG,4BAA4B,CAAC,EAAE,CAAC,GAAG,sCAAsC,CAAC,CAAC,CAAC,GAC5E,KAAK,CAAC;AACV,KAAK,6BAA6B,CAAC,GAAG,SAAS,SAAS,YAAY,EAAE,IACpE,sCAAsC,CAAC,GAAG,CAAC,SAAS,MAAM,KAAK,SAC7D,aAAa,GACX,KAAK,GACL,KAAK,CAAC;AAEZ,KAAK,QAAQ,CACX,GAAG,SACC,QAAQ,CAAC,aAAa,CAAC,GACvB,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GACzC,QAAQ,CAAC,YAAY,CAAC,IACxB,GAAG,SAAS,QAAQ,CAAC,aAAa,CAAC,GACnC,GAAG,CAAC,MAAM,CAAC,GACX,GAAG,SAAS,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GACrD,4BAA4B,CAAC,GAAG,CAAC,GACjC,GAAG,SAAS,QAAQ,CAAC,YAAY,CAAC,GAClC,6BAA6B,CAAC,GAAG,CAAC,GAClC,KAAK,CAAC;AAEV,wBAAgB,oBAAoB,CAClC,KAAK,CAAC,GAAG,SACL,QAAQ,CAAC,aAAa,CAAC,GACvB,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GACzC,QAAQ,CAAC,YAAY,CAAC,EAC1B,CAAC,SAAS,OAAO,GAAG,KAAK,EAEzB,eAAe,EAAE,GAAG,EACpB,cAAc,CAAC,EAAE,CAAC,GACjB,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAiCxC;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,oBAAoB,CAAC,MAAM,EAAE,CAAC,GACpE,EAAE,GACF,CAAC,CAAC;AAEN,wBAAgB,WAAW,CAAC,CAAC,SAAS,cAAc,GAAG,oBAAoB,EACzE,UAAU,EAAE,CAAC,EACb,IAAI,EAAE,OAAO,GACZ,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAmDpC;AAED,KAAK,gBAAgB,CAAC,EAAE,SAAS,aAAa,GAAG,aAAa,IAI5D,EAAE,SAAS,aAAa,GACpB,SAAS,CAAC,EAAE,EAAE,0BAA0B,CAAC,EAAE,CAAC,CAAC,GAC7C,KAAK,CAAC;AAEZ,KAAK,wBAAwB,CAAC,CAAC,IAAI,CAAC,SAAS,cAAc,GACvD,2BAA2B,CAAC,CAAC,CAAC,GAC9B,CAAC,SAAS,oBAAoB,CAAC,MAAM,EAAE,CAAC,GACxC,gBAAgB,CAAC,EAAE,CAAC,GACpB,KAAK,CAAC;AAEV,wBAAgB,kBAAkB,CAChC,CAAC,SAAS,cAAc,GAAG,oBAAoB,EAC/C,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,SAAI,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAuBvE;AAED,eAAO,MAAM,uBAAuB,SAUpB,OAAO,KAAG,SAAS,gBAAgB,EAiB/C,CAAC"}
|
package/dist/esm/vaa.js
CHANGED
|
@@ -19,7 +19,7 @@ const headerLayout = [
|
|
|
19
19
|
name: "signatures",
|
|
20
20
|
binary: "array",
|
|
21
21
|
lengthSize: 1,
|
|
22
|
-
layout: guardianSignatureLayout,
|
|
22
|
+
arrayItem: { binary: "object", layout: guardianSignatureLayout },
|
|
23
23
|
},
|
|
24
24
|
];
|
|
25
25
|
//envelope + payload are getting hashed and signed
|
|
@@ -46,7 +46,7 @@ const payloadLiteralToPayloadItem = (payloadLiteral) => (payloadLiteral === "Uin
|
|
|
46
46
|
binary: "object",
|
|
47
47
|
layout: getPayloadLayout(payloadLiteral),
|
|
48
48
|
});
|
|
49
|
-
export
|
|
49
|
+
export function createVAA(payloadLiteral, vaaData) {
|
|
50
50
|
const [protocolName, payloadName] = decomposeLiteral(payloadLiteral);
|
|
51
51
|
const bodyLayout = [
|
|
52
52
|
...envelopeLayout,
|
|
@@ -63,7 +63,8 @@ export const createVAA = (payloadLiteral, vaaData) => {
|
|
|
63
63
|
...bodyWithFixed,
|
|
64
64
|
hash: keccak256(serializeLayout(bodyLayout, bodyWithFixed)),
|
|
65
65
|
};
|
|
66
|
-
}
|
|
66
|
+
}
|
|
67
|
+
;
|
|
67
68
|
export function registerPayloadType(protocol, name, layout) {
|
|
68
69
|
const payloadLiteral = composeLiteral(protocol, name);
|
|
69
70
|
if (payloadFactory.has(payloadLiteral))
|
|
@@ -74,19 +75,21 @@ export function registerPayloadTypes(protocol, payloads) {
|
|
|
74
75
|
for (const [name, layout] of payloads)
|
|
75
76
|
registerPayloadType(protocol, name, layout);
|
|
76
77
|
}
|
|
77
|
-
export
|
|
78
|
+
export function serialize(vaa) {
|
|
78
79
|
const layout = [
|
|
79
80
|
...baseLayout,
|
|
80
81
|
payloadLiteralToPayloadItem(vaa.payloadLiteral),
|
|
81
82
|
];
|
|
82
83
|
return serializeLayout(layout, vaa);
|
|
83
|
-
}
|
|
84
|
-
|
|
84
|
+
}
|
|
85
|
+
;
|
|
86
|
+
export function serializePayload(payloadLiteral, payload) {
|
|
85
87
|
if (payloadLiteral === "Uint8Array")
|
|
86
88
|
return payload;
|
|
87
89
|
const layout = getPayloadLayout(payloadLiteral);
|
|
88
90
|
return serializeLayout(layout, payload);
|
|
89
|
-
}
|
|
91
|
+
}
|
|
92
|
+
;
|
|
90
93
|
export function payloadDiscriminator(payloadLiterals, allowAmbiguous) {
|
|
91
94
|
const literals = (() => {
|
|
92
95
|
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":"AAAA,OAAO,EACL,QAAQ,EAIR,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EAEjB,cAAc,GACf,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AA2CpC,MAAM,CAAC,MAAM,cAAc,GAAG,CAI5B,QAAmB,EACnB,WAAqB,EACrB,EAAE,CACF,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAIrD,CAAC;AAWJ,MAAM,gBAAgB,GAAG,CAA4B,cAAkB,EAAE,EAAE;IACzE,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,CACL,KAAK,KAAK,CAAC,CAAC;QACV,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,CACH,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG;IAC9B,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;IAClD,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,aAAa,EAAE;CACd,CAAC;AAE5B,MAAM,YAAY,GAAG;IACnB,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;IACnE,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,eAAe,EAAE;IAC3C;QACE,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,CAAC;QACb,MAAM,EAAE,uBAAuB;
|
|
1
|
+
{"version":3,"file":"vaa.js","sourceRoot":"","sources":["../../src/vaa.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -27,7 +27,7 @@ export const chainItem = <
|
|
|
27
27
|
if (val === 0) {
|
|
28
28
|
if (!opts?.allowNull)
|
|
29
29
|
throw new Error(
|
|
30
|
-
"ChainId 0 is not valid for this
|
|
30
|
+
"ChainId 0 is not valid for this protocol and action"
|
|
31
31
|
);
|
|
32
32
|
|
|
33
33
|
return null as AllowNull<C[number], N>;
|
|
@@ -45,7 +45,7 @@ export const chainItem = <
|
|
|
45
45
|
from: (val: AllowNull<C[number], N>): number =>
|
|
46
46
|
val == null ? 0 : chainToChainId(val),
|
|
47
47
|
} satisfies CustomConversion<number, AllowNull<C[number], N>>,
|
|
48
|
-
} as const satisfies
|
|
48
|
+
} as const satisfies UintLayoutItem);
|
|
49
49
|
|
|
50
50
|
export const fixedChainItem = <C extends ChainName>(chain: C) =>
|
|
51
51
|
({
|
|
@@ -54,4 +54,4 @@ export const fixedChainItem = <C extends ChainName>(chain: C) =>
|
|
|
54
54
|
to: chain,
|
|
55
55
|
from: chainToChainId(chain),
|
|
56
56
|
} satisfies FixedConversion<number, C>,
|
|
57
|
-
} as const satisfies
|
|
57
|
+
} as const satisfies UintLayoutItem);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CircleChainName, circleChainId, toCircleChainName } from "@wormhole-foundation/sdk-base";
|
|
2
|
+
|
|
3
|
+
export const circleDomainItem = {
|
|
4
|
+
binary: "uint",
|
|
5
|
+
size: 4,
|
|
6
|
+
custom: {
|
|
7
|
+
to: (id: number) => toCircleChainName(id),
|
|
8
|
+
from: (name: CircleChainName) => circleChainId(name),
|
|
9
|
+
},
|
|
10
|
+
} as const;
|
|
11
|
+
|
|
12
|
+
export const circleNonceItem = {
|
|
13
|
+
binary: "uint",
|
|
14
|
+
size: 8,
|
|
15
|
+
} as const;
|
|
@@ -24,4 +24,4 @@ export const signatureItem = {
|
|
|
24
24
|
from: (val: Signature): Uint8Array =>
|
|
25
25
|
serializeLayout(signatureLayout, { r: val.r, s: val.s, v: val.v }),
|
|
26
26
|
} as const satisfies CustomConversion<Uint8Array, Signature>,
|
|
27
|
-
} as const satisfies
|
|
27
|
+
} as const satisfies FixedSizeBytesLayoutItem;
|
|
@@ -11,4 +11,4 @@ export const universalAddressItem = {
|
|
|
11
11
|
to: (val: Uint8Array): UniversalAddress => new UniversalAddress(val),
|
|
12
12
|
from: (val: UniversalAddress): Uint8Array => val.toUint8Array(),
|
|
13
13
|
} satisfies CustomConversion<Uint8Array, UniversalAddress>,
|
|
14
|
-
} as const satisfies
|
|
14
|
+
} as const satisfies FixedSizeBytesLayoutItem;
|
package/src/payloads/bam.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { RegisterPayloadTypes, NamedPayloads, registerPayloadTypes } from "../va
|
|
|
5
5
|
const bamAddressItem = {
|
|
6
6
|
binary: "bytes",
|
|
7
7
|
lengthSize: 2
|
|
8
|
-
} as const satisfies
|
|
8
|
+
} as const satisfies LengthPrefixedBytesLayoutItem;
|
|
9
9
|
|
|
10
10
|
const customOrEmpty = (custom: any) => custom ? { custom } : {};
|
|
11
11
|
|
package/src/payloads/connect.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { Layout, LengthPrefixedBytesLayoutItem } from "@wormhole-foundation/sdk-base";
|
|
1
2
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
payloadIdItem,
|
|
4
|
+
universalAddressItem,
|
|
5
|
+
amountItem,
|
|
6
|
+
circleDomainItem,
|
|
7
|
+
circleNonceItem
|
|
8
|
+
} from "../layout-items";
|
|
8
9
|
import { RegisterPayloadTypes, NamedPayloads, registerPayloadTypes } from "../vaa";
|
|
9
10
|
|
|
10
11
|
const depositWithPayloadBase = [
|
|
@@ -17,9 +18,9 @@ const depositWithPayloadBase = [
|
|
|
17
18
|
{ name: "amount", ...amountItem },
|
|
18
19
|
],
|
|
19
20
|
},
|
|
20
|
-
{ name: "sourceDomain",
|
|
21
|
-
{ name: "targetDomain",
|
|
22
|
-
{ name: "nonce",
|
|
21
|
+
{ name: "sourceDomain", ...circleDomainItem },
|
|
22
|
+
{ name: "targetDomain", ...circleDomainItem },
|
|
23
|
+
{ name: "nonce", ...circleNonceItem },
|
|
23
24
|
{ name: "caller", ...universalAddressItem },
|
|
24
25
|
{ name: "mintRecipient", ...universalAddressItem },
|
|
25
26
|
] as const;
|
|
@@ -43,7 +44,6 @@ export const depositWithBytesPayload = <C extends Pick<LengthPrefixedBytesLayout
|
|
|
43
44
|
{ name: "payload", binary: "bytes", lengthSize: 2, ...customPayload }
|
|
44
45
|
] as const;
|
|
45
46
|
|
|
46
|
-
|
|
47
47
|
export const namedPayloads = [
|
|
48
48
|
["DepositWithPayload", depositWithBytesPayload({})],
|
|
49
49
|
["TransferRelay",
|
|
@@ -69,9 +69,7 @@ const actionTuples = [
|
|
|
69
69
|
name: "guardians",
|
|
70
70
|
binary: "array",
|
|
71
71
|
lengthSize: 1,
|
|
72
|
-
|
|
73
|
-
{ name: "address", binary: "bytes", size: 20 }, //TODO better (custom) type?
|
|
74
|
-
],
|
|
72
|
+
arrayItem: { binary: "bytes", size: 20 }, //TODO better (custom) type?
|
|
75
73
|
},
|
|
76
74
|
],
|
|
77
75
|
},
|
package/src/payloads/relayer.ts
CHANGED
|
@@ -1,36 +1,34 @@
|
|
|
1
|
+
import { LayoutItem, UintLayoutItem } from "@wormhole-foundation/sdk-base";
|
|
1
2
|
import {
|
|
2
|
-
|
|
3
|
-
ShallowMapping,
|
|
4
|
-
UintLayoutItem,
|
|
5
|
-
ObjectLayoutItem,
|
|
6
|
-
} from "@wormhole-foundation/sdk-base";
|
|
7
|
-
import {
|
|
3
|
+
amountItem,
|
|
8
4
|
chainItem,
|
|
9
|
-
|
|
5
|
+
circleDomainItem,
|
|
6
|
+
circleNonceItem,
|
|
7
|
+
payloadIdItem,
|
|
10
8
|
sequenceItem,
|
|
11
|
-
|
|
9
|
+
universalAddressItem,
|
|
12
10
|
} from "../layout-items";
|
|
13
11
|
import { NamedPayloads, RegisterPayloadTypes, registerPayloadTypes } from "../vaa";
|
|
14
12
|
|
|
13
|
+
const versionByte = <N extends number>(id: N) =>
|
|
14
|
+
({
|
|
15
|
+
name: "version",
|
|
16
|
+
binary: "uint",
|
|
17
|
+
size: 1,
|
|
18
|
+
custom: id,
|
|
19
|
+
omit: true,
|
|
20
|
+
} as const satisfies UintLayoutItem & { readonly name: string });
|
|
21
|
+
|
|
15
22
|
const encodedExecutionInfoItem = {
|
|
16
23
|
binary: "object",
|
|
17
24
|
layout: [
|
|
18
25
|
{ name: "size", binary: "uint", size: 4, custom: 3*32, omit: true },
|
|
19
26
|
{ name: "waste", binary: "uint", size: 31, custom: 0n, omit: true },
|
|
20
|
-
|
|
27
|
+
versionByte(0),
|
|
21
28
|
{ name: "gasLimit", ...amountItem },
|
|
22
29
|
{ name: "targetChainRefundPerGasUnused", ...amountItem },
|
|
23
30
|
]
|
|
24
|
-
} as const satisfies
|
|
25
|
-
|
|
26
|
-
const payloadIdItem = <N extends number>(id: N) =>
|
|
27
|
-
({
|
|
28
|
-
name: "payloadId",
|
|
29
|
-
binary: "uint",
|
|
30
|
-
size: 1,
|
|
31
|
-
custom: id,
|
|
32
|
-
omit: true,
|
|
33
|
-
} as const satisfies UintLayoutItem);
|
|
31
|
+
} as const satisfies LayoutItem;
|
|
34
32
|
|
|
35
33
|
const addressChainItem = {
|
|
36
34
|
binary: "object",
|
|
@@ -38,14 +36,29 @@ const addressChainItem = {
|
|
|
38
36
|
{ name: "chain", ...chainItem() },
|
|
39
37
|
{ name: "address", ...universalAddressItem },
|
|
40
38
|
],
|
|
41
|
-
} as const satisfies
|
|
39
|
+
} as const satisfies LayoutItem;
|
|
42
40
|
|
|
43
41
|
const vaaKeyLayout = [
|
|
44
|
-
{ name: "version", binary: "uint", size: 1, custom: { to: "Key", from: 1 } },
|
|
45
42
|
{ name: "chain", ...chainItem() },
|
|
46
43
|
{ name: "emitterAddress", ...universalAddressItem },
|
|
47
44
|
{ name: "sequence", ...sequenceItem },
|
|
48
|
-
] as const
|
|
45
|
+
] as const;
|
|
46
|
+
|
|
47
|
+
const cctpKeyLayout = [
|
|
48
|
+
{ name: "size", binary: "uint", size: 4, custom: 12, omit: true },
|
|
49
|
+
{ name: "domain", ...circleDomainItem },
|
|
50
|
+
{ name: "nonce", ...circleNonceItem },
|
|
51
|
+
] as const;
|
|
52
|
+
|
|
53
|
+
const messageKeySwitchLayout = {
|
|
54
|
+
binary: "switch",
|
|
55
|
+
idSize: 1,
|
|
56
|
+
idTag: "keyType",
|
|
57
|
+
idLayoutPairs: [
|
|
58
|
+
[[1, "VAA"], vaaKeyLayout],
|
|
59
|
+
[[2, "CCTP"], cctpKeyLayout]
|
|
60
|
+
]
|
|
61
|
+
} as const satisfies LayoutItem;
|
|
49
62
|
|
|
50
63
|
const namedPayloads = [
|
|
51
64
|
[
|
|
@@ -61,7 +74,7 @@ const namedPayloads = [
|
|
|
61
74
|
{ name: "refundDeliveryProvider", ...universalAddressItem },
|
|
62
75
|
{ name: "sourceDeliveryProvider", ...universalAddressItem },
|
|
63
76
|
{ name: "senderAddress", ...universalAddressItem },
|
|
64
|
-
{ name: "
|
|
77
|
+
{ name: "messageKeys", binary: "array", lengthSize: 1, arrayItem: messageKeySwitchLayout },
|
|
65
78
|
],
|
|
66
79
|
],
|
|
67
80
|
[
|
|
@@ -79,7 +92,7 @@ const namedPayloads = [
|
|
|
79
92
|
[
|
|
80
93
|
"DeliveryOverride",
|
|
81
94
|
[
|
|
82
|
-
|
|
95
|
+
versionByte(1),
|
|
83
96
|
{ name: "receiverValue", ...amountItem },
|
|
84
97
|
{ name: "newExecutionInfo", ...encodedExecutionInfoItem },
|
|
85
98
|
{ name: "redeliveryHash", binary: "bytes", size: 32 },
|
|
@@ -19,9 +19,9 @@ const fixedLengthStringItem = {
|
|
|
19
19
|
from: (str: string) =>
|
|
20
20
|
new Uint8Array(str.split("").map((c) => c.charCodeAt(0))),
|
|
21
21
|
} satisfies CustomConversion<Uint8Array, string>,
|
|
22
|
-
} as const satisfies
|
|
22
|
+
} as const satisfies FixedSizeBytesLayoutItem;
|
|
23
23
|
|
|
24
|
-
export const transferWithPayloadLayout = <P extends
|
|
24
|
+
export const transferWithPayloadLayout = <P extends LayoutItem>(
|
|
25
25
|
customPayload: P
|
|
26
26
|
) => ([
|
|
27
27
|
payloadIdItem(3),
|
package/src/protocol.ts
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
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<PlatformName, Map<ProtocolName, ProtocolInitializer<PlatformName>>>();
|
|
22
|
+
|
|
23
|
+
export function registerProtocol<P extends PlatformName, PN extends ProtocolName>(
|
|
24
|
+
platform: P,
|
|
25
|
+
protocol: PN,
|
|
26
|
+
ctr: ProtocolInitializer<P>,
|
|
27
|
+
): void {
|
|
28
|
+
let protocols = protocolFactory.get(platform)!
|
|
29
|
+
|
|
30
|
+
if (!protocols)
|
|
31
|
+
protocols = new Map<ProtocolName, ProtocolInitializer<PlatformName>>();
|
|
32
|
+
|
|
33
|
+
if (protocols.has(protocol))
|
|
34
|
+
throw new Error(
|
|
35
|
+
`Native address type for platform ${platform} has already registered`,
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
protocols.set(protocol, ctr);
|
|
39
|
+
protocolFactory.set(platform, protocols);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function protocolIsRegistered<T extends PlatformName | ChainName, PN extends ProtocolName>(
|
|
43
|
+
chainOrPlatform: T,
|
|
44
|
+
protocol: PN,
|
|
45
|
+
): boolean {
|
|
46
|
+
const platform: PlatformName = isChain(chainOrPlatform)
|
|
47
|
+
? chainToPlatform.get(chainOrPlatform)!
|
|
48
|
+
: chainOrPlatform;
|
|
49
|
+
|
|
50
|
+
const protocols = protocolFactory.get(platform);
|
|
51
|
+
return !!protocols && protocols.has(protocol)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export function getProtocolInitializer<P extends PlatformName, PN extends ProtocolName>(
|
|
55
|
+
platform: P,
|
|
56
|
+
protocol: PN,
|
|
57
|
+
): ProtocolInitializer<P> {
|
|
58
|
+
const protocols = protocolFactory.get(platform);
|
|
59
|
+
if (!protocols)
|
|
60
|
+
throw new Error(
|
|
61
|
+
`No protocols registered for platform ${platform}`,
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
const pctr = protocols.get(protocol);
|
|
65
|
+
if (!pctr)
|
|
66
|
+
throw new Error(
|
|
67
|
+
`No protocol registered for ${platform}:${protocol}`,
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
return pctr;
|
|
71
|
+
}
|