@wormhole-foundation/sdk-solana-core 0.5.0-beta.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/cjs/anchor-idl/wormhole.json +611 -0
- package/dist/cjs/core.d.ts +26 -0
- package/dist/cjs/core.d.ts.map +1 -0
- package/dist/cjs/core.js +181 -0
- package/dist/cjs/core.js.map +1 -0
- package/dist/cjs/index.d.ts +4 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +37 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/types.d.ts +612 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/utils/accounts/claim.d.ts +5 -0
- package/dist/cjs/utils/accounts/claim.d.ts.map +1 -0
- package/dist/cjs/utils/accounts/claim.js +31 -0
- package/dist/cjs/utils/accounts/claim.js.map +1 -0
- package/dist/cjs/utils/accounts/config.d.ts +18 -0
- package/dist/cjs/utils/accounts/config.d.ts.map +1 -0
- package/dist/cjs/utils/accounts/config.js +52 -0
- package/dist/cjs/utils/accounts/config.js.map +1 -0
- package/dist/cjs/utils/accounts/emitter.d.ts +10 -0
- package/dist/cjs/utils/accounts/emitter.d.ts.map +1 -0
- package/dist/cjs/utils/accounts/emitter.js +22 -0
- package/dist/cjs/utils/accounts/emitter.js.map +1 -0
- package/dist/cjs/utils/accounts/feeCollector.d.ts +3 -0
- package/dist/cjs/utils/accounts/feeCollector.d.ts.map +1 -0
- package/dist/cjs/utils/accounts/feeCollector.js +9 -0
- package/dist/cjs/utils/accounts/feeCollector.js.map +1 -0
- package/dist/cjs/utils/accounts/guardianSet.d.ts +13 -0
- package/dist/cjs/utils/accounts/guardianSet.d.ts.map +1 -0
- package/dist/cjs/utils/accounts/guardianSet.js +49 -0
- package/dist/cjs/utils/accounts/guardianSet.js.map +1 -0
- package/dist/cjs/utils/accounts/index.d.ts +10 -0
- package/dist/cjs/utils/accounts/index.d.ts.map +1 -0
- package/dist/cjs/utils/accounts/index.js +26 -0
- package/dist/cjs/utils/accounts/index.js.map +1 -0
- package/dist/cjs/utils/accounts/postedVaa.d.ts +4 -0
- package/dist/cjs/utils/accounts/postedVaa.d.ts.map +1 -0
- package/dist/cjs/utils/accounts/postedVaa.js +9 -0
- package/dist/cjs/utils/accounts/postedVaa.js.map +1 -0
- package/dist/cjs/utils/accounts/sequence.d.ts +13 -0
- package/dist/cjs/utils/accounts/sequence.d.ts.map +1 -0
- package/dist/cjs/utils/accounts/sequence.js +42 -0
- package/dist/cjs/utils/accounts/sequence.js.map +1 -0
- package/dist/cjs/utils/accounts/signatureSet.d.ts +11 -0
- package/dist/cjs/utils/accounts/signatureSet.d.ts.map +1 -0
- package/dist/cjs/utils/accounts/signatureSet.js +31 -0
- package/dist/cjs/utils/accounts/signatureSet.js.map +1 -0
- package/dist/cjs/utils/accounts/upgrade.d.ts +3 -0
- package/dist/cjs/utils/accounts/upgrade.d.ts.map +1 -0
- package/dist/cjs/utils/accounts/upgrade.js +9 -0
- package/dist/cjs/utils/accounts/upgrade.js.map +1 -0
- package/dist/cjs/utils/coder/accounts.d.ts +26 -0
- package/dist/cjs/utils/coder/accounts.d.ts.map +1 -0
- package/dist/cjs/utils/coder/accounts.js +64 -0
- package/dist/cjs/utils/coder/accounts.js.map +1 -0
- package/dist/cjs/utils/coder/events.d.ts +7 -0
- package/dist/cjs/utils/coder/events.d.ts.map +1 -0
- package/dist/cjs/utils/coder/events.js +11 -0
- package/dist/cjs/utils/coder/events.js.map +1 -0
- package/dist/cjs/utils/coder/idl.d.ts +8 -0
- package/dist/cjs/utils/coder/idl.d.ts.map +1 -0
- package/dist/cjs/utils/coder/idl.js +114 -0
- package/dist/cjs/utils/coder/idl.js.map +1 -0
- package/dist/cjs/utils/coder/index.d.ts +16 -0
- package/dist/cjs/utils/coder/index.d.ts.map +1 -0
- package/dist/cjs/utils/coder/index.js +26 -0
- package/dist/cjs/utils/coder/index.js.map +1 -0
- package/dist/cjs/utils/coder/instruction.d.ts +26 -0
- package/dist/cjs/utils/coder/instruction.d.ts.map +1 -0
- package/dist/cjs/utils/coder/instruction.js +110 -0
- package/dist/cjs/utils/coder/instruction.js.map +1 -0
- package/dist/cjs/utils/coder/state.d.ts +8 -0
- package/dist/cjs/utils/coder/state.d.ts.map +1 -0
- package/dist/cjs/utils/coder/state.js +14 -0
- package/dist/cjs/utils/coder/state.js.map +1 -0
- package/dist/cjs/utils/coder/types.d.ts +8 -0
- package/dist/cjs/utils/coder/types.d.ts.map +1 -0
- package/dist/cjs/utils/coder/types.js +14 -0
- package/dist/cjs/utils/coder/types.js.map +1 -0
- package/dist/cjs/utils/cpi.d.ts +52 -0
- package/dist/cjs/utils/cpi.d.ts.map +1 -0
- package/dist/cjs/utils/cpi.js +48 -0
- package/dist/cjs/utils/cpi.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +5 -0
- package/dist/cjs/utils/index.d.ts.map +1 -0
- package/dist/cjs/utils/index.js +21 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/instructions/bpfLoaderUpgradeable.d.ts +6 -0
- package/dist/cjs/utils/instructions/bpfLoaderUpgradeable.d.ts.map +1 -0
- package/dist/cjs/utils/instructions/bpfLoaderUpgradeable.js +14 -0
- package/dist/cjs/utils/instructions/bpfLoaderUpgradeable.js.map +1 -0
- package/dist/cjs/utils/instructions/feeTransfer.d.ts +3 -0
- package/dist/cjs/utils/instructions/feeTransfer.d.ts.map +1 -0
- package/dist/cjs/utils/instructions/feeTransfer.js +14 -0
- package/dist/cjs/utils/instructions/feeTransfer.js.map +1 -0
- package/dist/cjs/utils/instructions/governance.d.ts +52 -0
- package/dist/cjs/utils/instructions/governance.d.ts.map +1 -0
- package/dist/cjs/utils/instructions/governance.js +111 -0
- package/dist/cjs/utils/instructions/governance.js.map +1 -0
- package/dist/cjs/utils/instructions/index.d.ts +7 -0
- package/dist/cjs/utils/instructions/index.d.ts.map +1 -0
- package/dist/cjs/utils/instructions/index.js +23 -0
- package/dist/cjs/utils/instructions/index.js.map +1 -0
- package/dist/cjs/utils/instructions/initialize.d.ts +14 -0
- package/dist/cjs/utils/instructions/initialize.d.ts.map +1 -0
- package/dist/cjs/utils/instructions/initialize.js +37 -0
- package/dist/cjs/utils/instructions/initialize.js.map +1 -0
- package/dist/cjs/utils/instructions/postMessage.d.ts +16 -0
- package/dist/cjs/utils/instructions/postMessage.d.ts.map +1 -0
- package/dist/cjs/utils/instructions/postMessage.js +41 -0
- package/dist/cjs/utils/instructions/postMessage.js.map +1 -0
- package/dist/cjs/utils/instructions/postVaa.d.ts +28 -0
- package/dist/cjs/utils/instructions/postVaa.d.ts.map +1 -0
- package/dist/cjs/utils/instructions/postVaa.js +53 -0
- package/dist/cjs/utils/instructions/postVaa.js.map +1 -0
- package/dist/cjs/utils/instructions/secp256k1.d.ts +30 -0
- package/dist/cjs/utils/instructions/secp256k1.d.ts.map +1 -0
- package/dist/cjs/utils/instructions/secp256k1.js +111 -0
- package/dist/cjs/utils/instructions/secp256k1.js.map +1 -0
- package/dist/cjs/utils/instructions/verifySignature.d.ts +32 -0
- package/dist/cjs/utils/instructions/verifySignature.d.ts.map +1 -0
- package/dist/cjs/utils/instructions/verifySignature.js +94 -0
- package/dist/cjs/utils/instructions/verifySignature.js.map +1 -0
- package/dist/cjs/utils/program.d.ts +8 -0
- package/dist/cjs/utils/program.d.ts.map +1 -0
- package/dist/cjs/utils/program.js +24 -0
- package/dist/cjs/utils/program.js.map +1 -0
- package/dist/esm/anchor-idl/wormhole.json +611 -0
- package/dist/esm/core.d.ts +26 -0
- package/dist/esm/core.d.ts.map +1 -0
- package/dist/esm/core.js +177 -0
- package/dist/esm/core.js.map +1 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +8 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/types.d.ts +612 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils/accounts/claim.d.ts +5 -0
- package/dist/esm/utils/accounts/claim.d.ts.map +1 -0
- package/dist/esm/utils/accounts/claim.js +26 -0
- package/dist/esm/utils/accounts/claim.js.map +1 -0
- package/dist/esm/utils/accounts/config.d.ts +18 -0
- package/dist/esm/utils/accounts/config.d.ts.map +1 -0
- package/dist/esm/utils/accounts/config.js +45 -0
- package/dist/esm/utils/accounts/config.js.map +1 -0
- package/dist/esm/utils/accounts/emitter.d.ts +10 -0
- package/dist/esm/utils/accounts/emitter.d.ts.map +1 -0
- package/dist/esm/utils/accounts/emitter.js +16 -0
- package/dist/esm/utils/accounts/emitter.js.map +1 -0
- package/dist/esm/utils/accounts/feeCollector.d.ts +3 -0
- package/dist/esm/utils/accounts/feeCollector.d.ts.map +1 -0
- package/dist/esm/utils/accounts/feeCollector.js +5 -0
- package/dist/esm/utils/accounts/feeCollector.js.map +1 -0
- package/dist/esm/utils/accounts/guardianSet.d.ts +13 -0
- package/dist/esm/utils/accounts/guardianSet.d.ts.map +1 -0
- package/dist/esm/utils/accounts/guardianSet.js +43 -0
- package/dist/esm/utils/accounts/guardianSet.js.map +1 -0
- package/dist/esm/utils/accounts/index.d.ts +10 -0
- package/dist/esm/utils/accounts/index.d.ts.map +1 -0
- package/dist/esm/utils/accounts/index.js +10 -0
- package/dist/esm/utils/accounts/index.js.map +1 -0
- package/dist/esm/utils/accounts/postedVaa.d.ts +4 -0
- package/dist/esm/utils/accounts/postedVaa.d.ts.map +1 -0
- package/dist/esm/utils/accounts/postedVaa.js +5 -0
- package/dist/esm/utils/accounts/postedVaa.js.map +1 -0
- package/dist/esm/utils/accounts/sequence.d.ts +13 -0
- package/dist/esm/utils/accounts/sequence.d.ts.map +1 -0
- package/dist/esm/utils/accounts/sequence.js +36 -0
- package/dist/esm/utils/accounts/sequence.js.map +1 -0
- package/dist/esm/utils/accounts/signatureSet.d.ts +11 -0
- package/dist/esm/utils/accounts/signatureSet.d.ts.map +1 -0
- package/dist/esm/utils/accounts/signatureSet.js +26 -0
- package/dist/esm/utils/accounts/signatureSet.js.map +1 -0
- package/dist/esm/utils/accounts/upgrade.d.ts +3 -0
- package/dist/esm/utils/accounts/upgrade.d.ts.map +1 -0
- package/dist/esm/utils/accounts/upgrade.js +5 -0
- package/dist/esm/utils/accounts/upgrade.js.map +1 -0
- package/dist/esm/utils/coder/accounts.d.ts +26 -0
- package/dist/esm/utils/coder/accounts.d.ts.map +1 -0
- package/dist/esm/utils/coder/accounts.js +58 -0
- package/dist/esm/utils/coder/accounts.js.map +1 -0
- package/dist/esm/utils/coder/events.d.ts +7 -0
- package/dist/esm/utils/coder/events.d.ts.map +1 -0
- package/dist/esm/utils/coder/events.js +7 -0
- package/dist/esm/utils/coder/events.js.map +1 -0
- package/dist/esm/utils/coder/idl.d.ts +8 -0
- package/dist/esm/utils/coder/idl.d.ts.map +1 -0
- package/dist/esm/utils/coder/idl.js +87 -0
- package/dist/esm/utils/coder/idl.js.map +1 -0
- package/dist/esm/utils/coder/index.d.ts +16 -0
- package/dist/esm/utils/coder/index.d.ts.map +1 -0
- package/dist/esm/utils/coder/index.js +21 -0
- package/dist/esm/utils/coder/index.js.map +1 -0
- package/dist/esm/utils/coder/instruction.d.ts +26 -0
- package/dist/esm/utils/coder/instruction.d.ts.map +1 -0
- package/dist/esm/utils/coder/instruction.js +83 -0
- package/dist/esm/utils/coder/instruction.js.map +1 -0
- package/dist/esm/utils/coder/state.d.ts +8 -0
- package/dist/esm/utils/coder/state.d.ts.map +1 -0
- package/dist/esm/utils/coder/state.js +10 -0
- package/dist/esm/utils/coder/state.js.map +1 -0
- package/dist/esm/utils/coder/types.d.ts +8 -0
- package/dist/esm/utils/coder/types.d.ts.map +1 -0
- package/dist/esm/utils/coder/types.js +10 -0
- package/dist/esm/utils/coder/types.js.map +1 -0
- package/dist/esm/utils/cpi.d.ts +52 -0
- package/dist/esm/utils/cpi.d.ts.map +1 -0
- package/dist/esm/utils/cpi.js +43 -0
- package/dist/esm/utils/cpi.js.map +1 -0
- package/dist/esm/utils/index.d.ts +5 -0
- package/dist/esm/utils/index.d.ts.map +1 -0
- package/dist/esm/utils/index.js +5 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/instructions/bpfLoaderUpgradeable.d.ts +6 -0
- package/dist/esm/utils/instructions/bpfLoaderUpgradeable.d.ts.map +1 -0
- package/dist/esm/utils/instructions/bpfLoaderUpgradeable.js +9 -0
- package/dist/esm/utils/instructions/bpfLoaderUpgradeable.js.map +1 -0
- package/dist/esm/utils/instructions/feeTransfer.d.ts +3 -0
- package/dist/esm/utils/instructions/feeTransfer.d.ts.map +1 -0
- package/dist/esm/utils/instructions/feeTransfer.js +10 -0
- package/dist/esm/utils/instructions/feeTransfer.js.map +1 -0
- package/dist/esm/utils/instructions/governance.d.ts +52 -0
- package/dist/esm/utils/instructions/governance.d.ts.map +1 -0
- package/dist/esm/utils/instructions/governance.js +100 -0
- package/dist/esm/utils/instructions/governance.js.map +1 -0
- package/dist/esm/utils/instructions/index.d.ts +7 -0
- package/dist/esm/utils/instructions/index.d.ts.map +1 -0
- package/dist/esm/utils/instructions/index.js +7 -0
- package/dist/esm/utils/instructions/index.js.map +1 -0
- package/dist/esm/utils/instructions/initialize.d.ts +14 -0
- package/dist/esm/utils/instructions/initialize.d.ts.map +1 -0
- package/dist/esm/utils/instructions/initialize.js +29 -0
- package/dist/esm/utils/instructions/initialize.js.map +1 -0
- package/dist/esm/utils/instructions/postMessage.d.ts +16 -0
- package/dist/esm/utils/instructions/postMessage.d.ts.map +1 -0
- package/dist/esm/utils/instructions/postMessage.js +36 -0
- package/dist/esm/utils/instructions/postMessage.js.map +1 -0
- package/dist/esm/utils/instructions/postVaa.d.ts +28 -0
- package/dist/esm/utils/instructions/postVaa.d.ts.map +1 -0
- package/dist/esm/utils/instructions/postVaa.js +45 -0
- package/dist/esm/utils/instructions/postVaa.js.map +1 -0
- package/dist/esm/utils/instructions/secp256k1.d.ts +30 -0
- package/dist/esm/utils/instructions/secp256k1.d.ts.map +1 -0
- package/dist/esm/utils/instructions/secp256k1.js +106 -0
- package/dist/esm/utils/instructions/secp256k1.js.map +1 -0
- package/dist/esm/utils/instructions/verifySignature.d.ts +32 -0
- package/dist/esm/utils/instructions/verifySignature.d.ts.map +1 -0
- package/dist/esm/utils/instructions/verifySignature.js +89 -0
- package/dist/esm/utils/instructions/verifySignature.js.map +1 -0
- package/dist/esm/utils/program.d.ts +8 -0
- package/dist/esm/utils/program.d.ts.map +1 -0
- package/dist/esm/utils/program.js +15 -0
- package/dist/esm/utils/program.js.map +1 -0
- package/dist/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Connection, PublicKey, PublicKeyInitData, TransactionInstruction } from '@solana/web3.js';
|
|
2
|
+
import { VAA } from '@wormhole-foundation/sdk-connect';
|
|
3
|
+
export declare function createSetFeesInstruction(connection: Connection, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: VAA<'WormholeCore:SetMessageFee'>): TransactionInstruction;
|
|
4
|
+
export interface SetFeesAccounts {
|
|
5
|
+
payer: PublicKey;
|
|
6
|
+
bridge: PublicKey;
|
|
7
|
+
vaa: PublicKey;
|
|
8
|
+
claim: PublicKey;
|
|
9
|
+
systemProgram: PublicKey;
|
|
10
|
+
}
|
|
11
|
+
export declare function getSetFeesAccounts(wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: VAA<'WormholeCore:SetMessageFee'>): SetFeesAccounts;
|
|
12
|
+
export declare function createTransferFeesInstruction(connection: Connection, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, recipient: PublicKeyInitData, vaa: VAA<'WormholeCore:TransferFees'>): TransactionInstruction;
|
|
13
|
+
export interface TransferFeesAccounts {
|
|
14
|
+
payer: PublicKey;
|
|
15
|
+
bridge: PublicKey;
|
|
16
|
+
vaa: PublicKey;
|
|
17
|
+
claim: PublicKey;
|
|
18
|
+
feeCollector: PublicKey;
|
|
19
|
+
recipient: PublicKey;
|
|
20
|
+
rent: PublicKey;
|
|
21
|
+
systemProgram: PublicKey;
|
|
22
|
+
}
|
|
23
|
+
export declare function getTransferFeesAccounts(wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, recipient: PublicKeyInitData, vaa: VAA<'WormholeCore:TransferFees'>): TransferFeesAccounts;
|
|
24
|
+
export declare function createUpgradeGuardianSetInstruction(connection: Connection, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: VAA<'WormholeCore:GuardianSetUpgrade'>): TransactionInstruction;
|
|
25
|
+
export interface UpgradeGuardianSetAccounts {
|
|
26
|
+
payer: PublicKey;
|
|
27
|
+
bridge: PublicKey;
|
|
28
|
+
vaa: PublicKey;
|
|
29
|
+
claim: PublicKey;
|
|
30
|
+
guardianSetOld: PublicKey;
|
|
31
|
+
guardianSetNew: PublicKey;
|
|
32
|
+
systemProgram: PublicKey;
|
|
33
|
+
}
|
|
34
|
+
export declare function getUpgradeGuardianSetAccounts(wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: VAA<'WormholeCore:GuardianSetUpgrade'>): UpgradeGuardianSetAccounts;
|
|
35
|
+
export declare function createUpgradeContractInstruction(connection: Connection, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: VAA<'WormholeCore:UpgradeContract'>): TransactionInstruction;
|
|
36
|
+
export interface UpgradeContractAccounts {
|
|
37
|
+
payer: PublicKey;
|
|
38
|
+
bridge: PublicKey;
|
|
39
|
+
vaa: PublicKey;
|
|
40
|
+
claim: PublicKey;
|
|
41
|
+
upgradeAuthority: PublicKey;
|
|
42
|
+
spill: PublicKey;
|
|
43
|
+
implementation: PublicKey;
|
|
44
|
+
programData: PublicKey;
|
|
45
|
+
wormholeProgram: PublicKey;
|
|
46
|
+
rent: PublicKey;
|
|
47
|
+
clock: PublicKey;
|
|
48
|
+
bpfLoaderUpgradeable: PublicKey;
|
|
49
|
+
systemProgram: PublicKey;
|
|
50
|
+
}
|
|
51
|
+
export declare function getUpgradeContractAccounts(wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: VAA<'WormholeCore:UpgradeContract'>, spill?: PublicKeyInitData): UpgradeContractAccounts;
|
|
52
|
+
//# sourceMappingURL=governance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../../../../src/utils/instructions/governance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getUpgradeContractAccounts = exports.createUpgradeContractInstruction = exports.getUpgradeGuardianSetAccounts = exports.createUpgradeGuardianSetInstruction = exports.getTransferFeesAccounts = exports.createTransferFeesInstruction = exports.getSetFeesAccounts = exports.createSetFeesInstruction = void 0;
|
|
4
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
+
const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
|
|
6
|
+
const sdk_solana_1 = require("@wormhole-foundation/sdk-solana");
|
|
7
|
+
const accounts_1 = require("../accounts");
|
|
8
|
+
const program_1 = require("../program");
|
|
9
|
+
function createSetFeesInstruction(connection, wormholeProgramId, payer, vaa) {
|
|
10
|
+
const methods = (0, program_1.createReadOnlyWormholeProgramInterface)(wormholeProgramId, connection).methods.setFees();
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
return methods._ixFn(...methods._args, {
|
|
13
|
+
accounts: getSetFeesAccounts(wormholeProgramId, payer, vaa),
|
|
14
|
+
signers: undefined,
|
|
15
|
+
remainingAccounts: undefined,
|
|
16
|
+
preInstructions: undefined,
|
|
17
|
+
postInstructions: undefined,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
exports.createSetFeesInstruction = createSetFeesInstruction;
|
|
21
|
+
function getSetFeesAccounts(wormholeProgramId, payer, vaa) {
|
|
22
|
+
return {
|
|
23
|
+
payer: new web3_js_1.PublicKey(payer),
|
|
24
|
+
bridge: (0, accounts_1.deriveWormholeBridgeDataKey)(wormholeProgramId),
|
|
25
|
+
vaa: (0, accounts_1.derivePostedVaaKey)(wormholeProgramId, Buffer.from(vaa.hash)),
|
|
26
|
+
claim: (0, accounts_1.deriveClaimKey)(wormholeProgramId, vaa.emitterAddress.toString(), (0, sdk_connect_1.toChainId)(vaa.emitterChain), vaa.sequence),
|
|
27
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
exports.getSetFeesAccounts = getSetFeesAccounts;
|
|
31
|
+
function createTransferFeesInstruction(connection, wormholeProgramId, payer, recipient, vaa) {
|
|
32
|
+
const methods = (0, program_1.createReadOnlyWormholeProgramInterface)(wormholeProgramId, connection).methods.transferFees();
|
|
33
|
+
// @ts-ignore
|
|
34
|
+
return methods._ixFn(...methods._args, {
|
|
35
|
+
accounts: getTransferFeesAccounts(wormholeProgramId, payer, recipient, vaa),
|
|
36
|
+
signers: undefined,
|
|
37
|
+
remainingAccounts: undefined,
|
|
38
|
+
preInstructions: undefined,
|
|
39
|
+
postInstructions: undefined,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
exports.createTransferFeesInstruction = createTransferFeesInstruction;
|
|
43
|
+
function getTransferFeesAccounts(wormholeProgramId, payer, recipient, vaa) {
|
|
44
|
+
return {
|
|
45
|
+
payer: new web3_js_1.PublicKey(payer),
|
|
46
|
+
bridge: (0, accounts_1.deriveWormholeBridgeDataKey)(wormholeProgramId),
|
|
47
|
+
vaa: (0, accounts_1.derivePostedVaaKey)(wormholeProgramId, Buffer.from(vaa.hash)),
|
|
48
|
+
claim: (0, accounts_1.deriveClaimKey)(wormholeProgramId, vaa.emitterAddress.toString(), (0, sdk_connect_1.toChainId)(vaa.emitterChain), vaa.sequence),
|
|
49
|
+
feeCollector: (0, accounts_1.deriveFeeCollectorKey)(wormholeProgramId),
|
|
50
|
+
recipient: new web3_js_1.PublicKey(recipient),
|
|
51
|
+
rent: web3_js_1.SYSVAR_RENT_PUBKEY,
|
|
52
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
exports.getTransferFeesAccounts = getTransferFeesAccounts;
|
|
56
|
+
function createUpgradeGuardianSetInstruction(connection, wormholeProgramId, payer, vaa) {
|
|
57
|
+
const methods = (0, program_1.createReadOnlyWormholeProgramInterface)(wormholeProgramId, connection).methods.upgradeGuardianSet();
|
|
58
|
+
// @ts-ignore
|
|
59
|
+
return methods._ixFn(...methods._args, {
|
|
60
|
+
accounts: getUpgradeGuardianSetAccounts(wormholeProgramId, payer, vaa),
|
|
61
|
+
signers: undefined,
|
|
62
|
+
remainingAccounts: undefined,
|
|
63
|
+
preInstructions: undefined,
|
|
64
|
+
postInstructions: undefined,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
exports.createUpgradeGuardianSetInstruction = createUpgradeGuardianSetInstruction;
|
|
68
|
+
function getUpgradeGuardianSetAccounts(wormholeProgramId, payer, vaa) {
|
|
69
|
+
return {
|
|
70
|
+
payer: new web3_js_1.PublicKey(payer),
|
|
71
|
+
bridge: (0, accounts_1.deriveWormholeBridgeDataKey)(wormholeProgramId),
|
|
72
|
+
vaa: (0, accounts_1.derivePostedVaaKey)(wormholeProgramId, Buffer.from(vaa.hash)),
|
|
73
|
+
claim: (0, accounts_1.deriveClaimKey)(wormholeProgramId, vaa.emitterAddress.toString(), (0, sdk_connect_1.toChainId)(vaa.emitterChain), vaa.sequence),
|
|
74
|
+
guardianSetOld: (0, accounts_1.deriveGuardianSetKey)(wormholeProgramId, vaa.guardianSet),
|
|
75
|
+
guardianSetNew: (0, accounts_1.deriveGuardianSetKey)(wormholeProgramId, vaa.guardianSet + 1),
|
|
76
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
exports.getUpgradeGuardianSetAccounts = getUpgradeGuardianSetAccounts;
|
|
80
|
+
function createUpgradeContractInstruction(connection, wormholeProgramId, payer, vaa) {
|
|
81
|
+
const methods = (0, program_1.createReadOnlyWormholeProgramInterface)(wormholeProgramId, connection).methods.upgradeContract();
|
|
82
|
+
// @ts-ignore
|
|
83
|
+
return methods._ixFn(...methods._args, {
|
|
84
|
+
accounts: getUpgradeContractAccounts(wormholeProgramId, payer, vaa),
|
|
85
|
+
signers: undefined,
|
|
86
|
+
remainingAccounts: undefined,
|
|
87
|
+
preInstructions: undefined,
|
|
88
|
+
postInstructions: undefined,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
exports.createUpgradeContractInstruction = createUpgradeContractInstruction;
|
|
92
|
+
function getUpgradeContractAccounts(wormholeProgramId, payer, vaa, spill) {
|
|
93
|
+
const { newContract } = vaa.payload;
|
|
94
|
+
return {
|
|
95
|
+
payer: new web3_js_1.PublicKey(payer),
|
|
96
|
+
bridge: (0, accounts_1.deriveWormholeBridgeDataKey)(wormholeProgramId),
|
|
97
|
+
vaa: (0, accounts_1.derivePostedVaaKey)(wormholeProgramId, Buffer.from(vaa.hash)),
|
|
98
|
+
claim: (0, accounts_1.deriveClaimKey)(wormholeProgramId, vaa.emitterAddress.toString(), (0, sdk_connect_1.toChainId)(vaa.emitterChain), vaa.sequence),
|
|
99
|
+
upgradeAuthority: (0, accounts_1.deriveUpgradeAuthorityKey)(wormholeProgramId),
|
|
100
|
+
spill: new web3_js_1.PublicKey(spill === undefined ? payer : spill),
|
|
101
|
+
implementation: new sdk_solana_1.SolanaAddress(newContract).unwrap(),
|
|
102
|
+
programData: sdk_solana_1.utils.deriveUpgradeableProgramKey(wormholeProgramId),
|
|
103
|
+
wormholeProgram: new web3_js_1.PublicKey(wormholeProgramId),
|
|
104
|
+
rent: web3_js_1.SYSVAR_RENT_PUBKEY,
|
|
105
|
+
clock: web3_js_1.SYSVAR_CLOCK_PUBKEY,
|
|
106
|
+
bpfLoaderUpgradeable: sdk_solana_1.utils.BpfLoaderUpgradeable.programId,
|
|
107
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
exports.getUpgradeContractAccounts = getUpgradeContractAccounts;
|
|
111
|
+
//# sourceMappingURL=governance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governance.js","sourceRoot":"","sources":["../../../../src/utils/instructions/governance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/instructions/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./feeTransfer"), exports);
|
|
18
|
+
__exportStar(require("./governance"), exports);
|
|
19
|
+
__exportStar(require("./initialize"), exports);
|
|
20
|
+
__exportStar(require("./postMessage"), exports);
|
|
21
|
+
__exportStar(require("./postVaa"), exports);
|
|
22
|
+
__exportStar(require("./verifySignature"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/instructions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+CAA6B;AAC7B,+CAA6B;AAC7B,gDAA8B;AAC9B,4CAA0B;AAC1B,oDAAkC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Connection, PublicKey, PublicKeyInitData, TransactionInstruction } from '@solana/web3.js';
|
|
3
|
+
export declare function createInitializeInstruction(connection: Connection, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, guardianSetExpirationTime: number, fee: bigint, initialGuardians: Buffer[]): TransactionInstruction;
|
|
4
|
+
export interface InitializeAccounts {
|
|
5
|
+
bridge: PublicKey;
|
|
6
|
+
guardianSet: PublicKey;
|
|
7
|
+
feeCollector: PublicKey;
|
|
8
|
+
payer: PublicKey;
|
|
9
|
+
clock: PublicKey;
|
|
10
|
+
rent: PublicKey;
|
|
11
|
+
systemProgram: PublicKey;
|
|
12
|
+
}
|
|
13
|
+
export declare function getInitializeAccounts(wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData): InitializeAccounts;
|
|
14
|
+
//# sourceMappingURL=initialize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../../../src/utils/instructions/initialize.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,iBAAiB,EAIjB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AASzB,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,yBAAyB,EAAE,MAAM,EACjC,GAAG,EAAE,MAAM,EACX,gBAAgB,EAAE,MAAM,EAAE,GACzB,sBAAsB,CAgBxB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;IACvB,YAAY,EAAE,SAAS,CAAC;IACxB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,EAAE,SAAS,CAAC;CAC1B;AAED,wBAAgB,qBAAqB,CACnC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,GACvB,kBAAkB,CAUpB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getInitializeAccounts = exports.createInitializeInstruction = void 0;
|
|
7
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
8
|
+
const program_1 = require("../program");
|
|
9
|
+
const accounts_1 = require("../accounts");
|
|
10
|
+
const bn_js_1 = __importDefault(require("bn.js"));
|
|
11
|
+
function createInitializeInstruction(connection, wormholeProgramId, payer, guardianSetExpirationTime, fee, initialGuardians) {
|
|
12
|
+
const methods = (0, program_1.createReadOnlyWormholeProgramInterface)(wormholeProgramId, connection).methods.initialize(guardianSetExpirationTime, new bn_js_1.default(fee.toString()), [
|
|
13
|
+
...initialGuardians,
|
|
14
|
+
]);
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
return methods._ixFn(...methods._args, {
|
|
17
|
+
accounts: getInitializeAccounts(wormholeProgramId, payer),
|
|
18
|
+
signers: undefined,
|
|
19
|
+
remainingAccounts: undefined,
|
|
20
|
+
preInstructions: undefined,
|
|
21
|
+
postInstructions: undefined,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
exports.createInitializeInstruction = createInitializeInstruction;
|
|
25
|
+
function getInitializeAccounts(wormholeProgramId, payer) {
|
|
26
|
+
return {
|
|
27
|
+
bridge: (0, accounts_1.deriveWormholeBridgeDataKey)(wormholeProgramId),
|
|
28
|
+
guardianSet: (0, accounts_1.deriveGuardianSetKey)(wormholeProgramId, 0),
|
|
29
|
+
feeCollector: (0, accounts_1.deriveFeeCollectorKey)(wormholeProgramId),
|
|
30
|
+
payer: new web3_js_1.PublicKey(payer),
|
|
31
|
+
clock: web3_js_1.SYSVAR_CLOCK_PUBKEY,
|
|
32
|
+
rent: web3_js_1.SYSVAR_RENT_PUBKEY,
|
|
33
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
exports.getInitializeAccounts = getInitializeAccounts;
|
|
37
|
+
//# sourceMappingURL=initialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../../src/utils/instructions/initialize.ts"],"names":[],"mappings":";;;;;;AAAA,6CAQyB;AACzB,wCAAoE;AACpE,0CAIqB;AACrB,kDAAuB;AAEvB,SAAgB,2BAA2B,CACzC,UAAsB,EACtB,iBAAoC,EACpC,KAAwB,EACxB,yBAAiC,EACjC,GAAW,EACX,gBAA0B;IAE1B,MAAM,OAAO,GAAG,IAAA,gDAAsC,EACpD,iBAAiB,EACjB,UAAU,CACX,CAAC,OAAO,CAAC,UAAU,CAAC,yBAAyB,EAAE,IAAI,eAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE;QACtE,GAAG,gBAAgB;KACpB,CAAC,CAAC;IAEH,aAAa;IACb,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE;QACrC,QAAQ,EAAE,qBAAqB,CAAC,iBAAiB,EAAE,KAAK,CAAQ;QAChE,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,SAAS;QAC5B,eAAe,EAAE,SAAS;QAC1B,gBAAgB,EAAE,SAAS;KAC5B,CAAC,CAAC;AACL,CAAC;AAvBD,kEAuBC;AAYD,SAAgB,qBAAqB,CACnC,iBAAoC,EACpC,KAAwB;IAExB,OAAO;QACL,MAAM,EAAE,IAAA,sCAA2B,EAAC,iBAAiB,CAAC;QACtD,WAAW,EAAE,IAAA,+BAAoB,EAAC,iBAAiB,EAAE,CAAC,CAAC;QACvD,YAAY,EAAE,IAAA,gCAAqB,EAAC,iBAAiB,CAAC;QACtD,KAAK,EAAE,IAAI,mBAAS,CAAC,KAAK,CAAC;QAC3B,KAAK,EAAE,6BAAmB;QAC1B,IAAI,EAAE,4BAAkB;QACxB,aAAa,EAAE,uBAAa,CAAC,SAAS;KACvC,CAAC;AACJ,CAAC;AAbD,sDAaC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Connection, PublicKey, PublicKeyInitData, TransactionInstruction } from '@solana/web3.js';
|
|
2
|
+
/** All accounts required to make a cross-program invocation with the Core Bridge program */
|
|
3
|
+
export interface PostMessageAccounts {
|
|
4
|
+
bridge: PublicKey;
|
|
5
|
+
message: PublicKey;
|
|
6
|
+
emitter: PublicKey;
|
|
7
|
+
sequence: PublicKey;
|
|
8
|
+
payer: PublicKey;
|
|
9
|
+
feeCollector: PublicKey;
|
|
10
|
+
clock: PublicKey;
|
|
11
|
+
rent: PublicKey;
|
|
12
|
+
systemProgram: PublicKey;
|
|
13
|
+
}
|
|
14
|
+
export declare function createPostMessageInstruction(connection: Connection, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, messageAccount: PublicKeyInitData, payload: Uint8Array, nonce: number, consistencyLevel: number): TransactionInstruction;
|
|
15
|
+
export declare function getPostMessageAccounts(wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, message: PublicKeyInitData, emitter?: PublicKeyInitData): PostMessageAccounts;
|
|
16
|
+
//# sourceMappingURL=postMessage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postMessage.d.ts","sourceRoot":"","sources":["../../../../src/utils/instructions/postMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,iBAAiB,EAIjB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AASzB,4FAA4F;AAC5F,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,YAAY,EAAE,SAAS,CAAC;IACxB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,EAAE,SAAS,CAAC;CAC1B;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,cAAc,EAAE,iBAAiB,EACjC,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,MAAM,GACvB,sBAAsB,CAcxB;AAED,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,mBAAmB,CAmBrB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPostMessageAccounts = exports.createPostMessageInstruction = void 0;
|
|
4
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
+
const accounts_1 = require("../accounts");
|
|
6
|
+
const program_1 = require("../program");
|
|
7
|
+
function createPostMessageInstruction(connection, wormholeProgramId, payer, messageAccount, payload, nonce, consistencyLevel) {
|
|
8
|
+
const methods = (0, program_1.createReadOnlyWormholeProgramInterface)(wormholeProgramId, connection).methods.postMessage(nonce, Buffer.from(payload), consistencyLevel);
|
|
9
|
+
// @ts-ignore
|
|
10
|
+
return methods._ixFn(...methods._args, {
|
|
11
|
+
accounts: getPostMessageAccounts(wormholeProgramId, payer, messageAccount),
|
|
12
|
+
signers: undefined,
|
|
13
|
+
remainingAccounts: undefined,
|
|
14
|
+
preInstructions: undefined,
|
|
15
|
+
postInstructions: undefined,
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
exports.createPostMessageInstruction = createPostMessageInstruction;
|
|
19
|
+
function getPostMessageAccounts(wormholeProgramId, payer, message, emitter) {
|
|
20
|
+
let sequence;
|
|
21
|
+
if (emitter) {
|
|
22
|
+
({ emitter, sequence } = (0, accounts_1.getEmitterKeys)(emitter, wormholeProgramId));
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
emitter = payer;
|
|
26
|
+
sequence = (0, accounts_1.deriveEmitterSequenceKey)(emitter, wormholeProgramId);
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
bridge: (0, accounts_1.deriveWormholeBridgeDataKey)(wormholeProgramId),
|
|
30
|
+
message: new web3_js_1.PublicKey(message),
|
|
31
|
+
emitter: new web3_js_1.PublicKey(emitter),
|
|
32
|
+
sequence,
|
|
33
|
+
payer: new web3_js_1.PublicKey(payer),
|
|
34
|
+
feeCollector: (0, accounts_1.deriveFeeCollectorKey)(wormholeProgramId),
|
|
35
|
+
clock: web3_js_1.SYSVAR_CLOCK_PUBKEY,
|
|
36
|
+
rent: web3_js_1.SYSVAR_RENT_PUBKEY,
|
|
37
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
exports.getPostMessageAccounts = getPostMessageAccounts;
|
|
41
|
+
//# sourceMappingURL=postMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postMessage.js","sourceRoot":"","sources":["../../../../src/utils/instructions/postMessage.ts"],"names":[],"mappings":";;;AAAA,6CAQyB;AACzB,0CAKqB;AACrB,wCAAoE;AAepE,SAAgB,4BAA4B,CAC1C,UAAsB,EACtB,iBAAoC,EACpC,KAAwB,EACxB,cAAiC,EACjC,OAAmB,EACnB,KAAa,EACb,gBAAwB;IAExB,MAAM,OAAO,GAAG,IAAA,gDAAsC,EACpD,iBAAiB,EACjB,UAAU,CACX,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAErE,aAAa;IACb,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE;QACrC,QAAQ,EAAE,sBAAsB,CAAC,iBAAiB,EAAE,KAAK,EAAE,cAAc,CAAC;QAC1E,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,SAAS;QAC5B,eAAe,EAAE,SAAS;QAC1B,gBAAgB,EAAE,SAAS;KAC5B,CAAC,CAAC;AACL,CAAC;AAtBD,oEAsBC;AAED,SAAgB,sBAAsB,CACpC,iBAAoC,EACpC,KAAwB,EACxB,OAA0B,EAC1B,OAA2B;IAE3B,IAAI,QAAQ,CAAC;IACb,IAAI,OAAO,EAAE;QACX,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAA,yBAAc,EAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC;KACtE;SAAM;QACL,OAAO,GAAG,KAAK,CAAC;QAChB,QAAQ,GAAG,IAAA,mCAAwB,EAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;KACjE;IACD,OAAO;QACL,MAAM,EAAE,IAAA,sCAA2B,EAAC,iBAAiB,CAAC;QACtD,OAAO,EAAE,IAAI,mBAAS,CAAC,OAAO,CAAC;QAC/B,OAAO,EAAE,IAAI,mBAAS,CAAC,OAAO,CAAC;QAC/B,QAAQ;QACR,KAAK,EAAE,IAAI,mBAAS,CAAC,KAAK,CAAC;QAC3B,YAAY,EAAE,IAAA,gCAAqB,EAAC,iBAAiB,CAAC;QACtD,KAAK,EAAE,6BAAmB;QAC1B,IAAI,EAAE,4BAAkB;QACxB,aAAa,EAAE,uBAAa,CAAC,SAAS;KACvC,CAAC;AACJ,CAAC;AAxBD,wDAwBC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { PublicKey, PublicKeyInitData, TransactionInstruction, Connection } from '@solana/web3.js';
|
|
2
|
+
import { VAA } from '@wormhole-foundation/sdk-connect';
|
|
3
|
+
/**
|
|
4
|
+
* Make {@link TransactionInstruction} for `post_vaa` instruction.
|
|
5
|
+
*
|
|
6
|
+
* `signatureSet` is a {@link @solana/web3.Keypair} generated outside of this method, which was used
|
|
7
|
+
* to write signatures and the message hash to.
|
|
8
|
+
*
|
|
9
|
+
* https://github.com/certusone/wormhole/blob/main/solana/bridge/program/src/api/post_vaa.rs
|
|
10
|
+
*
|
|
11
|
+
* @param {PublicKeyInitData} wormholeProgramId - wormhole program address
|
|
12
|
+
* @param {PublicKeyInitData} payer - transaction signer address
|
|
13
|
+
* @param {SignedVaa | ParsedVaa} vaa - either signed VAA bytes or parsed VAA
|
|
14
|
+
* @param {PublicKeyInitData} signatureSet - key for signature set account
|
|
15
|
+
*/
|
|
16
|
+
export declare function createPostVaaInstruction(connection: Connection, wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, vaa: VAA, signatureSet: PublicKeyInitData): TransactionInstruction;
|
|
17
|
+
export interface PostVaaAccounts {
|
|
18
|
+
guardianSet: PublicKey;
|
|
19
|
+
bridge: PublicKey;
|
|
20
|
+
signatureSet: PublicKey;
|
|
21
|
+
vaa: PublicKey;
|
|
22
|
+
payer: PublicKey;
|
|
23
|
+
clock: PublicKey;
|
|
24
|
+
rent: PublicKey;
|
|
25
|
+
systemProgram: PublicKey;
|
|
26
|
+
}
|
|
27
|
+
export declare function getPostVaaAccounts(wormholeProgramId: PublicKeyInitData, payer: PublicKeyInitData, signatureSet: PublicKeyInitData, vaa: VAA): PostVaaAccounts;
|
|
28
|
+
//# sourceMappingURL=postVaa.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postVaa.d.ts","sourceRoot":"","sources":["../../../../src/utils/instructions/postVaa.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,sBAAsB,EAItB,UAAU,EACX,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EACL,GAAG,EAGJ,MAAM,kCAAkC,CAAC;AAG1C;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,iBAAiB,GAC9B,sBAAsB,CAyBxB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,SAAS,CAAC;IACvB,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,SAAS,CAAC;IACxB,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,EAAE,SAAS,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAChC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,iBAAiB,EACxB,YAAY,EAAE,iBAAiB,EAC/B,GAAG,EAAE,GAAG,GACP,eAAe,CAWjB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getPostVaaAccounts = exports.createPostVaaInstruction = void 0;
|
|
7
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
8
|
+
const program_1 = require("../program");
|
|
9
|
+
const accounts_1 = require("../accounts");
|
|
10
|
+
const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
|
|
11
|
+
const bn_js_1 = __importDefault(require("bn.js"));
|
|
12
|
+
/**
|
|
13
|
+
* Make {@link TransactionInstruction} for `post_vaa` instruction.
|
|
14
|
+
*
|
|
15
|
+
* `signatureSet` is a {@link @solana/web3.Keypair} generated outside of this method, which was used
|
|
16
|
+
* to write signatures and the message hash to.
|
|
17
|
+
*
|
|
18
|
+
* https://github.com/certusone/wormhole/blob/main/solana/bridge/program/src/api/post_vaa.rs
|
|
19
|
+
*
|
|
20
|
+
* @param {PublicKeyInitData} wormholeProgramId - wormhole program address
|
|
21
|
+
* @param {PublicKeyInitData} payer - transaction signer address
|
|
22
|
+
* @param {SignedVaa | ParsedVaa} vaa - either signed VAA bytes or parsed VAA
|
|
23
|
+
* @param {PublicKeyInitData} signatureSet - key for signature set account
|
|
24
|
+
*/
|
|
25
|
+
function createPostVaaInstruction(connection, wormholeProgramId, payer, vaa, signatureSet) {
|
|
26
|
+
const methods = (0, program_1.createReadOnlyWormholeProgramInterface)(wormholeProgramId, connection).methods.postVaa(1, // TODO: hardcoded VAA version
|
|
27
|
+
vaa.guardianSet, vaa.timestamp, vaa.nonce, (0, sdk_connect_1.toChainId)(vaa.emitterChain), [...vaa.emitterAddress.toUint8Array()], new bn_js_1.default(vaa.sequence.toString()), vaa.consistencyLevel,
|
|
28
|
+
// Note: This _must_ be a Buffer, a Uint8Array does not work
|
|
29
|
+
Buffer.from((0, sdk_connect_1.serializePayload)(vaa.payloadLiteral, vaa.payload)));
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
return methods._ixFn(...methods._args, {
|
|
32
|
+
accounts: getPostVaaAccounts(wormholeProgramId, payer, signatureSet, vaa),
|
|
33
|
+
signers: undefined,
|
|
34
|
+
remainingAccounts: undefined,
|
|
35
|
+
preInstructions: undefined,
|
|
36
|
+
postInstructions: undefined,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
exports.createPostVaaInstruction = createPostVaaInstruction;
|
|
40
|
+
function getPostVaaAccounts(wormholeProgramId, payer, signatureSet, vaa) {
|
|
41
|
+
return {
|
|
42
|
+
guardianSet: (0, accounts_1.deriveGuardianSetKey)(wormholeProgramId, vaa.guardianSet),
|
|
43
|
+
bridge: (0, accounts_1.deriveWormholeBridgeDataKey)(wormholeProgramId),
|
|
44
|
+
signatureSet: new web3_js_1.PublicKey(signatureSet),
|
|
45
|
+
vaa: (0, accounts_1.derivePostedVaaKey)(wormholeProgramId, Buffer.from(vaa.hash)),
|
|
46
|
+
payer: new web3_js_1.PublicKey(payer),
|
|
47
|
+
clock: web3_js_1.SYSVAR_CLOCK_PUBKEY,
|
|
48
|
+
rent: web3_js_1.SYSVAR_RENT_PUBKEY,
|
|
49
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
exports.getPostVaaAccounts = getPostVaaAccounts;
|
|
53
|
+
//# sourceMappingURL=postVaa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postVaa.js","sourceRoot":"","sources":["../../../../src/utils/instructions/postVaa.ts"],"names":[],"mappings":";;;;;;AAAA,6CAQyB;AACzB,wCAAoE;AACpE,0CAIqB;AACrB,kEAI0C;AAC1C,kDAAuB;AAEvB;;;;;;;;;;;;GAYG;AACH,SAAgB,wBAAwB,CACtC,UAAsB,EACtB,iBAAoC,EACpC,KAAwB,EACxB,GAAQ,EACR,YAA+B;IAE/B,MAAM,OAAO,GAAG,IAAA,gDAAsC,EACpD,iBAAiB,EACjB,UAAU,CACX,CAAC,OAAO,CAAC,OAAO,CACf,CAAC,EAAE,8BAA8B;IACjC,GAAG,CAAC,WAAW,EACf,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,KAAK,EACT,IAAA,uBAAS,EAAC,GAAG,CAAC,YAAY,CAAC,EAC3B,CAAC,GAAG,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,EACtC,IAAI,eAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAC/B,GAAG,CAAC,gBAAgB;IACpB,4DAA4D;IAC5D,MAAM,CAAC,IAAI,CAAC,IAAA,8BAAgB,EAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAC/D,CAAC;IAEF,aAAa;IACb,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE;QACrC,QAAQ,EAAE,kBAAkB,CAAC,iBAAiB,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC;QACzE,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,SAAS;QAC5B,eAAe,EAAE,SAAS;QAC1B,gBAAgB,EAAE,SAAS;KAC5B,CAAC,CAAC;AACL,CAAC;AA/BD,4DA+BC;AAaD,SAAgB,kBAAkB,CAChC,iBAAoC,EACpC,KAAwB,EACxB,YAA+B,EAC/B,GAAQ;IAER,OAAO;QACL,WAAW,EAAE,IAAA,+BAAoB,EAAC,iBAAiB,EAAE,GAAG,CAAC,WAAW,CAAC;QACrE,MAAM,EAAE,IAAA,sCAA2B,EAAC,iBAAiB,CAAC;QACtD,YAAY,EAAE,IAAI,mBAAS,CAAC,YAAY,CAAC;QACzC,GAAG,EAAE,IAAA,6BAAkB,EAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjE,KAAK,EAAE,IAAI,mBAAS,CAAC,KAAK,CAAC;QAC3B,KAAK,EAAE,6BAAmB;QAC1B,IAAI,EAAE,4BAAkB;QACxB,aAAa,EAAE,uBAAa,CAAC,SAAS;KACvC,CAAC;AACJ,CAAC;AAhBD,gDAgBC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { TransactionInstruction } from '@solana/web3.js';
|
|
3
|
+
export declare const SIGNATURE_LENGTH = 65;
|
|
4
|
+
export declare const ETHEREUM_KEY_LENGTH = 20;
|
|
5
|
+
/**
|
|
6
|
+
* Create {@link TransactionInstruction} for {@link Secp256k1Program}.
|
|
7
|
+
*
|
|
8
|
+
* @param {Buffer[]} signatures - 65-byte signatures (64 bytes + 1 byte recovery id)
|
|
9
|
+
* @param {Buffer[]} keys - 20-byte ethereum public keys
|
|
10
|
+
* @param {Buffer} message - 32-byte hash
|
|
11
|
+
* @returns Solana instruction for Secp256k1 program
|
|
12
|
+
*/
|
|
13
|
+
export declare function createSecp256k1Instruction(signatures: Buffer[], keys: Buffer[], message: Buffer): TransactionInstruction;
|
|
14
|
+
/**
|
|
15
|
+
* Secp256k1SignatureOffsets serializer
|
|
16
|
+
*
|
|
17
|
+
* See {@link https://docs.solana.com/developing/runtime-facilities/programs#secp256k1-program} for more info.
|
|
18
|
+
*/
|
|
19
|
+
export declare class Secp256k1SignatureOffsets {
|
|
20
|
+
/**
|
|
21
|
+
* Serialize multiple signatures, ethereum public keys and message as Secp256k1 instruction data.
|
|
22
|
+
*
|
|
23
|
+
* @param {Buffer[]} signatures - 65-byte signatures (64 + 1 recovery id)
|
|
24
|
+
* @param {Buffer[]} keys - ethereum public keys
|
|
25
|
+
* @param {Buffer} message - 32-byte hash
|
|
26
|
+
* @returns serialized Secp256k1 instruction data
|
|
27
|
+
*/
|
|
28
|
+
static serialize(signatures: Buffer[], keys: Buffer[], message: Buffer): Buffer;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=secp256k1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secp256k1.d.ts","sourceRoot":"","sources":["../../../../src/utils/instructions/secp256k1.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,sBAAsB,EAAoB,MAAM,iBAAiB,CAAC;AAE3E,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAAE,EACpB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,MAAM,GACd,sBAAsB,CAMxB;AAED;;;;GAIG;AACH,qBAAa,yBAAyB;IAgCpC;;;;;;;OAOG;IACH,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM;CAqDvE"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Secp256k1SignatureOffsets = exports.createSecp256k1Instruction = exports.ETHEREUM_KEY_LENGTH = exports.SIGNATURE_LENGTH = void 0;
|
|
4
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
+
exports.SIGNATURE_LENGTH = 65;
|
|
6
|
+
exports.ETHEREUM_KEY_LENGTH = 20;
|
|
7
|
+
/**
|
|
8
|
+
* Create {@link TransactionInstruction} for {@link Secp256k1Program}.
|
|
9
|
+
*
|
|
10
|
+
* @param {Buffer[]} signatures - 65-byte signatures (64 bytes + 1 byte recovery id)
|
|
11
|
+
* @param {Buffer[]} keys - 20-byte ethereum public keys
|
|
12
|
+
* @param {Buffer} message - 32-byte hash
|
|
13
|
+
* @returns Solana instruction for Secp256k1 program
|
|
14
|
+
*/
|
|
15
|
+
function createSecp256k1Instruction(signatures, keys, message) {
|
|
16
|
+
return new web3_js_1.TransactionInstruction({
|
|
17
|
+
keys: [],
|
|
18
|
+
programId: web3_js_1.Secp256k1Program.programId,
|
|
19
|
+
data: Secp256k1SignatureOffsets.serialize(signatures, keys, message),
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
exports.createSecp256k1Instruction = createSecp256k1Instruction;
|
|
23
|
+
/**
|
|
24
|
+
* Secp256k1SignatureOffsets serializer
|
|
25
|
+
*
|
|
26
|
+
* See {@link https://docs.solana.com/developing/runtime-facilities/programs#secp256k1-program} for more info.
|
|
27
|
+
*/
|
|
28
|
+
class Secp256k1SignatureOffsets {
|
|
29
|
+
// https://docs.solana.com/developing/runtime-facilities/programs#secp256k1-program
|
|
30
|
+
//
|
|
31
|
+
// struct Secp256k1SignatureOffsets {
|
|
32
|
+
// secp_signature_key_offset: u16, // offset to [signature,recovery_id,etherum_address] of 64+1+20 bytes
|
|
33
|
+
// secp_signature_instruction_index: u8, // instruction index to find data
|
|
34
|
+
// secp_pubkey_offset: u16, // offset to [signature,recovery_id] of 64+1 bytes
|
|
35
|
+
// secp_signature_instruction_index: u8, // instruction index to find data
|
|
36
|
+
// secp_message_data_offset: u16, // offset to start of message data
|
|
37
|
+
// secp_message_data_size: u16, // size of message data
|
|
38
|
+
// secp_message_instruction_index: u8, // index of instruction data to get message data
|
|
39
|
+
// }
|
|
40
|
+
//
|
|
41
|
+
// Pseudo code of the operation:
|
|
42
|
+
//
|
|
43
|
+
// process_instruction() {
|
|
44
|
+
// for i in 0..count {
|
|
45
|
+
// // i'th index values referenced:
|
|
46
|
+
// instructions = &transaction.message().instructions
|
|
47
|
+
// signature = instructions[secp_signature_instruction_index].data[secp_signature_offset..secp_signature_offset + 64]
|
|
48
|
+
// recovery_id = instructions[secp_signature_instruction_index].data[secp_signature_offset + 64]
|
|
49
|
+
// ref_eth_pubkey = instructions[secp_pubkey_instruction_index].data[secp_pubkey_offset..secp_pubkey_offset + 32]
|
|
50
|
+
// message_hash = keccak256(instructions[secp_message_instruction_index].data[secp_message_data_offset..secp_message_data_offset + secp_message_data_size])
|
|
51
|
+
// pubkey = ecrecover(signature, recovery_id, message_hash)
|
|
52
|
+
// eth_pubkey = keccak256(pubkey[1..])[12..]
|
|
53
|
+
// if eth_pubkey != ref_eth_pubkey {
|
|
54
|
+
// return Error
|
|
55
|
+
// }
|
|
56
|
+
// }
|
|
57
|
+
// return Success
|
|
58
|
+
// }
|
|
59
|
+
/**
|
|
60
|
+
* Serialize multiple signatures, ethereum public keys and message as Secp256k1 instruction data.
|
|
61
|
+
*
|
|
62
|
+
* @param {Buffer[]} signatures - 65-byte signatures (64 + 1 recovery id)
|
|
63
|
+
* @param {Buffer[]} keys - ethereum public keys
|
|
64
|
+
* @param {Buffer} message - 32-byte hash
|
|
65
|
+
* @returns serialized Secp256k1 instruction data
|
|
66
|
+
*/
|
|
67
|
+
static serialize(signatures, keys, message) {
|
|
68
|
+
if (signatures.length == 0) {
|
|
69
|
+
throw Error('signatures.length == 0');
|
|
70
|
+
}
|
|
71
|
+
if (signatures.length != keys.length) {
|
|
72
|
+
throw Error('signatures.length != keys.length');
|
|
73
|
+
}
|
|
74
|
+
if (message.length != 32) {
|
|
75
|
+
throw Error('message.length != 32');
|
|
76
|
+
}
|
|
77
|
+
const numSignatures = signatures.length;
|
|
78
|
+
const offsetSpan = 11;
|
|
79
|
+
const dataLoc = 1 + numSignatures * offsetSpan;
|
|
80
|
+
const dataLen = exports.SIGNATURE_LENGTH + exports.ETHEREUM_KEY_LENGTH; // 65 signature size + 20 eth pubkey size
|
|
81
|
+
const messageDataOffset = dataLoc + numSignatures * dataLen;
|
|
82
|
+
const messageDataSize = 32;
|
|
83
|
+
const serialized = Buffer.alloc(messageDataOffset + messageDataSize);
|
|
84
|
+
serialized.writeUInt8(numSignatures, 0);
|
|
85
|
+
serialized.write(message.toString('hex'), messageDataOffset, 'hex');
|
|
86
|
+
for (let i = 0; i < numSignatures; ++i) {
|
|
87
|
+
const signature = signatures.at(i);
|
|
88
|
+
if (signature?.length != exports.SIGNATURE_LENGTH) {
|
|
89
|
+
throw Error(`signatures[${i}].length != 65`);
|
|
90
|
+
}
|
|
91
|
+
const key = keys.at(i);
|
|
92
|
+
if (key?.length != exports.ETHEREUM_KEY_LENGTH) {
|
|
93
|
+
throw Error(`keys[${i}].length != 20`);
|
|
94
|
+
}
|
|
95
|
+
const signatureOffset = dataLoc + dataLen * i;
|
|
96
|
+
const ethAddressOffset = signatureOffset + 65;
|
|
97
|
+
serialized.writeUInt16LE(signatureOffset, 1 + i * offsetSpan);
|
|
98
|
+
serialized.writeUInt8(0, 3 + i * offsetSpan);
|
|
99
|
+
serialized.writeUInt16LE(ethAddressOffset, 4 + i * offsetSpan);
|
|
100
|
+
serialized.writeUInt8(0, 6 + i * offsetSpan);
|
|
101
|
+
serialized.writeUInt16LE(messageDataOffset, 7 + i * offsetSpan);
|
|
102
|
+
serialized.writeUInt16LE(messageDataSize, 9 + i * offsetSpan);
|
|
103
|
+
serialized.writeUInt8(0, 10 + i * offsetSpan);
|
|
104
|
+
serialized.write(signature.toString('hex'), signatureOffset, 'hex');
|
|
105
|
+
serialized.write(key.toString('hex'), ethAddressOffset, 'hex');
|
|
106
|
+
}
|
|
107
|
+
return serialized;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.Secp256k1SignatureOffsets = Secp256k1SignatureOffsets;
|
|
111
|
+
//# sourceMappingURL=secp256k1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secp256k1.js","sourceRoot":"","sources":["../../../../src/utils/instructions/secp256k1.ts"],"names":[],"mappings":"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"}
|