feat: use sdk in js client
This commit is contained in:
parent
fd62d71f61
commit
fce0708e11
|
@ -14,29 +14,19 @@ RUN --mount=type=cache,target=/root/.cache \
|
|||
ENV SOLANA_BIN_PATH="/root/.local/share/solana/install/active_release/bin"
|
||||
ENV PATH="$SOLANA_BIN_PATH:$PATH"
|
||||
|
||||
WORKDIR /usr/src/ethereum
|
||||
COPY ethereum/package.json ethereum/package-lock.json ./
|
||||
RUN --mount=type=cache,uid=1000,gid=1000,target=/home/node/.npm \
|
||||
npm ci
|
||||
COPY ethereum ./
|
||||
|
||||
WORKDIR /usr/src/clients/token_bridge
|
||||
COPY clients/token_bridge/package.json clients/token_bridge/package-lock.json ./
|
||||
RUN --mount=type=cache,uid=1000,gid=1000,target=/home/node/.npm \
|
||||
npm ci
|
||||
COPY clients/token_bridge ./
|
||||
RUN set -xe && \
|
||||
npm run build-contracts && \
|
||||
npm run build
|
||||
RUN npm run build
|
||||
|
||||
WORKDIR /usr/src/clients/nft_bridge
|
||||
COPY clients/nft_bridge/package.json clients/nft_bridge/package-lock.json ./
|
||||
RUN --mount=type=cache,uid=1000,gid=1000,target=/home/node/.npm \
|
||||
npm ci
|
||||
COPY clients/nft_bridge ./
|
||||
RUN set -xe && \
|
||||
npm run build-contracts && \
|
||||
npm run build
|
||||
RUN npm run build
|
||||
|
||||
ADD solana /usr/src/solana
|
||||
ADD proto /usr/src/proto
|
||||
|
|
14
Tiltfile
14
Tiltfile
|
@ -13,6 +13,9 @@ allow_k8s_contexts("ci")
|
|||
# Disable telemetry by default
|
||||
analytics_settings(False)
|
||||
|
||||
# Moar updates (default is 3)
|
||||
update_settings(max_parallel_updates=10)
|
||||
|
||||
# Runtime configuration
|
||||
config.define_bool("ci", False, "We are running in CI")
|
||||
config.define_bool("manual", False, "Set TRIGGER_MODE_MANUAL by default")
|
||||
|
@ -80,6 +83,7 @@ local_resource(
|
|||
cmd = "tilt docker build -- --target go-export -f Dockerfile.proto -o type=local,dest=node .",
|
||||
env = {"DOCKER_BUILDKIT": "1"},
|
||||
labels = ["protobuf"],
|
||||
allow_parallel=True,
|
||||
trigger_mode = trigger_mode,
|
||||
)
|
||||
|
||||
|
@ -90,6 +94,7 @@ local_resource(
|
|||
cmd = "tilt docker build -- --target node-export -f Dockerfile.proto -o type=local,dest=. .",
|
||||
env = {"DOCKER_BUILDKIT": "1"},
|
||||
labels = ["protobuf"],
|
||||
allow_parallel=True,
|
||||
trigger_mode = trigger_mode,
|
||||
)
|
||||
|
||||
|
@ -99,6 +104,7 @@ local_resource(
|
|||
cmd = "tilt docker build -- --target teal-export -f Dockerfile.teal -o type=local,dest=. .",
|
||||
env = {"DOCKER_BUILDKIT": "1"},
|
||||
labels = ["algorand"],
|
||||
allow_parallel=True,
|
||||
trigger_mode = trigger_mode,
|
||||
)
|
||||
|
||||
|
@ -111,6 +117,7 @@ local_resource(
|
|||
cmd = "tilt docker build -- -f Dockerfile.wasm -o type=local,dest=.. .",
|
||||
env = {"DOCKER_BUILDKIT": "1"},
|
||||
labels = ["solana"],
|
||||
allow_parallel=True,
|
||||
trigger_mode = trigger_mode,
|
||||
)
|
||||
|
||||
|
@ -162,7 +169,7 @@ k8s_yaml_with_ns(build_node_yaml())
|
|||
|
||||
k8s_resource(
|
||||
"guardian",
|
||||
resource_deps = ["proto-gen", "solana-devnet"],
|
||||
resource_deps = ["proto-gen", "eth-devnet", "eth-devnet2", "terra-terrad", "solana-devnet"],
|
||||
port_forwards = [
|
||||
port_forward(6060, name = "Debug/Status Server [:6060]", host = webHost),
|
||||
port_forward(7070, name = "Public gRPC [:7070]", host = webHost),
|
||||
|
@ -192,7 +199,7 @@ k8s_resource(
|
|||
docker_build(
|
||||
ref = "bridge-client",
|
||||
context = ".",
|
||||
only = ["./proto", "./solana", "./ethereum", "./clients"],
|
||||
only = ["./proto", "./solana", "./clients"],
|
||||
dockerfile = "Dockerfile.client",
|
||||
# Ignore target folders from local (non-container) development.
|
||||
ignore = ["./solana/*/target"],
|
||||
|
@ -212,7 +219,6 @@ k8s_yaml_with_ns("devnet/solana-devnet.yaml")
|
|||
|
||||
k8s_resource(
|
||||
"solana-devnet",
|
||||
resource_deps = ["wasm-gen"],
|
||||
port_forwards = [
|
||||
port_forward(8899, name = "Solana RPC [:8899]", host = webHost),
|
||||
port_forward(8900, name = "Solana WS [:8900]", host = webHost),
|
||||
|
@ -345,7 +351,7 @@ if ci_tests:
|
|||
|
||||
k8s_resource(
|
||||
"ci-tests",
|
||||
resource_deps = ["eth-devnet", "eth-devnet2", "terra-terrad", "terra-fcd", "solana-devnet", "spy", "guardian"],
|
||||
resource_deps = ["proto-gen-web", "wasm-gen", "eth-devnet", "eth-devnet2", "terra-terrad", "terra-fcd", "solana-devnet", "spy", "guardian"],
|
||||
labels = ["ci"],
|
||||
trigger_mode = trigger_mode,
|
||||
)
|
||||
|
|
|
@ -1,2 +1,5 @@
|
|||
contracts
|
||||
ethers-contracts
|
||||
|
||||
# tsc output
|
||||
*/main.js
|
||||
|
|
|
@ -2,16 +2,16 @@ import yargs from "yargs";
|
|||
|
||||
const {hideBin} = require('yargs/helpers')
|
||||
|
||||
import * as bridge from "bridge";
|
||||
import * as elliptic from "elliptic";
|
||||
import * as ethers from "ethers";
|
||||
import * as nft_bridge from "nft-bridge";
|
||||
import * as web3s from '@solana/web3.js';
|
||||
|
||||
import {BridgeImplementation__factory} from "./src/ethers-contracts";
|
||||
import {PublicKey, TransactionInstruction, AccountMeta, Keypair, Connection} from "@solana/web3.js";
|
||||
import {solidityKeccak256} from "ethers/lib/utils";
|
||||
|
||||
import {setDefaultWasm, importCoreWasm, importNftWasm, ixFromRust, BridgeImplementation__factory} from '@certusone/wormhole-sdk'
|
||||
setDefaultWasm("node")
|
||||
|
||||
const signAndEncodeVM = function (
|
||||
timestamp,
|
||||
nonce,
|
||||
|
@ -136,6 +136,9 @@ yargs(hideBin(process.argv))
|
|||
default: "NFTWqJR8YnRVqPDvTJrYuLrQDitTG5AScqbeghi4zSA"
|
||||
})
|
||||
}, async (argv: any) => {
|
||||
const bridge = await importCoreWasm()
|
||||
const nft_bridge = await importNftWasm()
|
||||
|
||||
let connection = setupConnection(argv);
|
||||
let bridge_id = new PublicKey(argv.bridge);
|
||||
let nft_bridge_id = new PublicKey(argv.nft_bridge);
|
||||
|
@ -204,6 +207,8 @@ yargs(hideBin(process.argv))
|
|||
default: "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d"
|
||||
})
|
||||
}, async (argv: any) => {
|
||||
const bridge = await importCoreWasm()
|
||||
|
||||
let provider = new ethers.providers.JsonRpcProvider(argv.rpc)
|
||||
let signer = new ethers.Wallet(argv.key, provider)
|
||||
let t = new BridgeImplementation__factory(signer);
|
||||
|
@ -228,6 +233,8 @@ yargs(hideBin(process.argv))
|
|||
.argv;
|
||||
|
||||
async function post_vaa(connection: Connection, bridge_id: PublicKey, payer: Keypair, vaa: Buffer) {
|
||||
const bridge = await importCoreWasm()
|
||||
|
||||
let bridge_state = await get_bridge_state(connection, bridge_id);
|
||||
let guardian_addr = new PublicKey(bridge.guardian_set_address(bridge_id.toString(), bridge_state.guardian_set_index));
|
||||
let acc = await connection.getAccountInfo(guardian_addr);
|
||||
|
@ -272,6 +279,8 @@ async function post_vaa(connection: Connection, bridge_id: PublicKey, payer: Key
|
|||
}
|
||||
|
||||
async function get_bridge_state(connection: Connection, bridge_id: PublicKey): Promise<BridgeState> {
|
||||
const bridge = await importCoreWasm()
|
||||
|
||||
let bridge_state = new PublicKey(bridge.state_address(bridge_id.toString()));
|
||||
let acc = await connection.getAccountInfo(bridge_state);
|
||||
if (acc?.data === undefined) {
|
||||
|
@ -287,23 +296,6 @@ function setupConnection(argv: yargs.Arguments): web3s.Connection {
|
|||
);
|
||||
}
|
||||
|
||||
function ixFromRust(data: any): TransactionInstruction {
|
||||
let keys: Array<AccountMeta> = data.accounts.map(accountMetaFromRust)
|
||||
return new TransactionInstruction({
|
||||
programId: new PublicKey(data.program_id),
|
||||
data: Buffer.from(data.data),
|
||||
keys: keys,
|
||||
})
|
||||
}
|
||||
|
||||
function accountMetaFromRust(meta: any): AccountMeta {
|
||||
return {
|
||||
pubkey: new PublicKey(meta.pubkey),
|
||||
isSigner: meta.is_signer,
|
||||
isWritable: meta.is_writable,
|
||||
}
|
||||
}
|
||||
|
||||
interface BridgeState {
|
||||
// The current guardian set index, used to decide which signature sets to accept.
|
||||
guardian_set_index: number,
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -2,8 +2,8 @@
|
|||
"name": "wormhole-client-solana",
|
||||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"@certusone/wormhole-sdk": "^0.2.0",
|
||||
"@solana/web3.js": "^1.22.0",
|
||||
"@typechain/ethers-v5": "^7.0.1",
|
||||
"bn.js": "^5.2.0",
|
||||
"bs58": "^4.0.1",
|
||||
"buffer-layout": "^1.2.2",
|
||||
|
@ -16,19 +16,14 @@
|
|||
"scripts": {
|
||||
"start": "tsc && node main.js",
|
||||
"build": "tsc",
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"build-contracts": "npm run build --prefix ../../ethereum && node scripts/copyContracts.js && typechain --target=ethers-v5 --out-dir=src/ethers-contracts contracts/*.json"
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@openzeppelin/contracts": "^4.2.0",
|
||||
"@truffle/hdwallet-provider": "^1.4.1",
|
||||
"@types/bn.js": "^5.1.0",
|
||||
"@types/bs58": "^4.0.1",
|
||||
"@types/yargs": "^17.0.2",
|
||||
"bridge": "file:./pkg/core",
|
||||
"copy-dir": "^1.3.0",
|
||||
"nft-bridge": "file:./pkg/nft",
|
||||
"truffle": "^5.4.1",
|
||||
"typescript": "^4.3.5"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
const copydir = require("copy-dir");
|
||||
copydir.sync("../../ethereum/build/contracts", "./contracts");
|
|
@ -1,10 +1,11 @@
|
|||
import yargs from "yargs";
|
||||
|
||||
const {hideBin} = require('yargs/helpers')
|
||||
import * as bridge from "bridge";
|
||||
import * as web3 from '@solana/web3.js';
|
||||
import {PublicKey, Transaction, TransactionInstruction, AccountMeta, Keypair, Connection} from "@solana/web3.js";
|
||||
import {post_message_ix} from "bridge";
|
||||
|
||||
import {setDefaultWasm, importCoreWasm, ixFromRust} from '@certusone/wormhole-sdk'
|
||||
setDefaultWasm("node")
|
||||
|
||||
yargs(hideBin(process.argv))
|
||||
.command('post_message [nonce] [message] [consistency]', 'post a message', (yargs) => {
|
||||
|
@ -25,6 +26,8 @@ yargs(hideBin(process.argv))
|
|||
required: true
|
||||
})
|
||||
}, async (argv: any) => {
|
||||
const bridge = await importCoreWasm()
|
||||
|
||||
let connection = setupConnection(argv);
|
||||
let bridge_id = new PublicKey(argv.bridge);
|
||||
|
||||
|
@ -50,7 +53,7 @@ yargs(hideBin(process.argv))
|
|||
throw new Error("invalid consistency level")
|
||||
}
|
||||
|
||||
let ix = ixFromRust(post_message_ix(bridge_id.toString(), from.publicKey.toString(), emitter.publicKey.toString(), message.publicKey.toString(), argv.nonce, Buffer.from(argv.message, "hex"), argv.consistency));
|
||||
let ix = ixFromRust(bridge.post_message_ix(bridge_id.toString(), from.publicKey.toString(), emitter.publicKey.toString(), message.publicKey.toString(), argv.nonce, Buffer.from(argv.message, "hex"), argv.consistency));
|
||||
// Add transfer instruction to transaction
|
||||
let transaction = new web3.Transaction().add(transferIx, ix);
|
||||
|
||||
|
@ -95,6 +98,8 @@ yargs(hideBin(process.argv))
|
|||
required: true
|
||||
})
|
||||
}, async (argv: any) => {
|
||||
const bridge = await importCoreWasm()
|
||||
|
||||
let connection = setupConnection(argv);
|
||||
let bridge_id = new PublicKey(argv.bridge);
|
||||
|
||||
|
@ -159,6 +164,8 @@ yargs(hideBin(process.argv))
|
|||
.argv;
|
||||
|
||||
async function post_vaa(connection: Connection, bridge_id: PublicKey, payer: Keypair, vaa: Buffer) {
|
||||
const bridge = await importCoreWasm()
|
||||
|
||||
let bridge_state = await get_bridge_state(connection, bridge_id);
|
||||
let guardian_addr = new PublicKey(bridge.guardian_set_address(bridge_id.toString(), bridge_state.guardian_set_index));
|
||||
let acc = await connection.getAccountInfo(guardian_addr);
|
||||
|
@ -203,6 +210,8 @@ async function post_vaa(connection: Connection, bridge_id: PublicKey, payer: Key
|
|||
}
|
||||
|
||||
async function get_bridge_state(connection: Connection, bridge_id: PublicKey): Promise<BridgeState> {
|
||||
const bridge = await importCoreWasm()
|
||||
|
||||
let bridge_state = new PublicKey(bridge.state_address(bridge_id.toString()));
|
||||
let acc = await connection.getAccountInfo(bridge_state);
|
||||
if (acc?.data === undefined) {
|
||||
|
@ -218,23 +227,6 @@ function setupConnection(argv: yargs.Arguments): web3.Connection {
|
|||
);
|
||||
}
|
||||
|
||||
function ixFromRust(data: any): TransactionInstruction {
|
||||
let keys: Array<AccountMeta> = data.accounts.map(accountMetaFromRust)
|
||||
return new TransactionInstruction({
|
||||
programId: new PublicKey(data.program_id),
|
||||
data: Buffer.from(data.data),
|
||||
keys: keys,
|
||||
})
|
||||
}
|
||||
|
||||
function accountMetaFromRust(meta: any): AccountMeta {
|
||||
return {
|
||||
pubkey: new PublicKey(meta.pubkey),
|
||||
isSigner: meta.is_signer,
|
||||
isWritable: meta.is_writable,
|
||||
}
|
||||
}
|
||||
|
||||
interface BridgeState {
|
||||
// The current guardian set index, used to decide which signature sets to accept.
|
||||
guardian_set_index: number,
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -2,10 +2,12 @@
|
|||
"name": "wormhole-client-solana",
|
||||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"@certusone/wormhole-sdk": "^0.2.0",
|
||||
"@solana/web3.js": "^1.22.0",
|
||||
"bn.js": "^5.2.0",
|
||||
"bs58": "^4.0.1",
|
||||
"buffer-layout": "^1.2.2",
|
||||
"ethers": "^5.4.1",
|
||||
"npm": "^7.20.0",
|
||||
"yargs": "^17.0.1"
|
||||
},
|
||||
|
@ -14,10 +16,9 @@
|
|||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/bs58": "^4.0.1",
|
||||
"@types/bn.js": "^5.1.0",
|
||||
"@types/bs58": "^4.0.1",
|
||||
"@types/yargs": "^17.0.2",
|
||||
"bridge": "file:./pkg",
|
||||
"typescript": "^4.3.5"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,19 +2,19 @@ import yargs from "yargs";
|
|||
|
||||
const {hideBin} = require('yargs/helpers')
|
||||
|
||||
import * as bridge from "bridge";
|
||||
import * as elliptic from "elliptic";
|
||||
import * as ethers from "ethers";
|
||||
import * as token_bridge from "token-bridge";
|
||||
import * as web3s from '@solana/web3.js';
|
||||
|
||||
import {fromUint8Array} from "js-base64";
|
||||
import {BridgeImplementation__factory} from "./src/ethers-contracts";
|
||||
import {LCDClient, MnemonicKey} from '@terra-money/terra.js';
|
||||
import {MsgExecuteContract} from "@terra-money/terra.js";
|
||||
import {PublicKey, TransactionInstruction, AccountMeta, Keypair, Connection} from "@solana/web3.js";
|
||||
import {solidityKeccak256} from "ethers/lib/utils";
|
||||
|
||||
import {setDefaultWasm, importCoreWasm, importTokenWasm, ixFromRust, BridgeImplementation__factory} from '@certusone/wormhole-sdk'
|
||||
setDefaultWasm("node")
|
||||
|
||||
const signAndEncodeVM = function (
|
||||
timestamp,
|
||||
nonce,
|
||||
|
@ -256,6 +256,9 @@ yargs(hideBin(process.argv))
|
|||
default: "B6RHG3mfcckmrYN1UhmJzyS1XX3fZKbkeUcpJe9Sy3FE"
|
||||
})
|
||||
}, async (argv: any) => {
|
||||
const bridge = await importCoreWasm()
|
||||
const token_bridge = await importTokenWasm()
|
||||
|
||||
let connection = setupConnection(argv);
|
||||
let bridge_id = new PublicKey(argv.bridge);
|
||||
let token_bridge_id = new PublicKey(argv.token_bridge);
|
||||
|
@ -324,6 +327,8 @@ yargs(hideBin(process.argv))
|
|||
default: "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d"
|
||||
})
|
||||
}, async (argv: any) => {
|
||||
const bridge = await importCoreWasm()
|
||||
|
||||
let provider = new ethers.providers.JsonRpcProvider(argv.rpc)
|
||||
let signer = new ethers.Wallet(argv.key, provider)
|
||||
let t = new BridgeImplementation__factory(signer);
|
||||
|
@ -349,6 +354,8 @@ yargs(hideBin(process.argv))
|
|||
.argv;
|
||||
|
||||
async function post_vaa(connection: Connection, bridge_id: PublicKey, payer: Keypair, vaa: Buffer) {
|
||||
const bridge = await importCoreWasm()
|
||||
|
||||
let bridge_state = await get_bridge_state(connection, bridge_id);
|
||||
let guardian_addr = new PublicKey(bridge.guardian_set_address(bridge_id.toString(), bridge_state.guardian_set_index));
|
||||
let acc = await connection.getAccountInfo(guardian_addr);
|
||||
|
@ -393,6 +400,8 @@ async function post_vaa(connection: Connection, bridge_id: PublicKey, payer: Key
|
|||
}
|
||||
|
||||
async function get_bridge_state(connection: Connection, bridge_id: PublicKey): Promise<BridgeState> {
|
||||
const bridge = await importCoreWasm()
|
||||
|
||||
let bridge_state = new PublicKey(bridge.state_address(bridge_id.toString()));
|
||||
let acc = await connection.getAccountInfo(bridge_state);
|
||||
if (acc?.data === undefined) {
|
||||
|
@ -408,23 +417,6 @@ function setupConnection(argv: yargs.Arguments): web3s.Connection {
|
|||
);
|
||||
}
|
||||
|
||||
function ixFromRust(data: any): TransactionInstruction {
|
||||
let keys: Array<AccountMeta> = data.accounts.map(accountMetaFromRust)
|
||||
return new TransactionInstruction({
|
||||
programId: new PublicKey(data.program_id),
|
||||
data: Buffer.from(data.data),
|
||||
keys: keys,
|
||||
})
|
||||
}
|
||||
|
||||
function accountMetaFromRust(meta: any): AccountMeta {
|
||||
return {
|
||||
pubkey: new PublicKey(meta.pubkey),
|
||||
isSigner: meta.is_signer,
|
||||
isWritable: meta.is_writable,
|
||||
}
|
||||
}
|
||||
|
||||
interface BridgeState {
|
||||
// The current guardian set index, used to decide which signature sets to accept.
|
||||
guardian_set_index: number,
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -2,9 +2,9 @@
|
|||
"name": "wormhole-client-solana",
|
||||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"@certusone/wormhole-sdk": "^0.2.0",
|
||||
"@solana/web3.js": "^1.22.0",
|
||||
"@terra-money/terra.js": "^1.8.9",
|
||||
"@typechain/ethers-v5": "^7.0.1",
|
||||
"bn.js": "^5.2.0",
|
||||
"bs58": "^4.0.1",
|
||||
"buffer-layout": "^1.2.2",
|
||||
|
@ -17,19 +17,14 @@
|
|||
"scripts": {
|
||||
"start": "tsc && node main.js",
|
||||
"build": "tsc",
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"build-contracts": "npm run build --prefix ../../ethereum && node scripts/copyContracts.js && typechain --target=ethers-v5 --out-dir=src/ethers-contracts contracts/*.json"
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@openzeppelin/contracts": "^4.2.0",
|
||||
"@truffle/hdwallet-provider": "^1.4.1",
|
||||
"@types/bn.js": "^5.1.0",
|
||||
"@types/bs58": "^4.0.1",
|
||||
"@types/yargs": "^17.0.2",
|
||||
"bridge": "file:./pkg/core",
|
||||
"copy-dir": "^1.3.0",
|
||||
"token-bridge": "file:./pkg/token",
|
||||
"truffle": "^5.4.1",
|
||||
"typescript": "^4.3.5"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
const copydir = require("copy-dir");
|
||||
copydir.sync("../../ethereum/build/contracts", "./contracts");
|
|
@ -82,18 +82,11 @@ COPY --from=build /usr/src/bridge/bridge/program/bundler sdk/js/src/solana/core
|
|||
COPY --from=build /usr/src/bridge/modules/token_bridge/program/bundler sdk/js/src/solana/token
|
||||
COPY --from=build /usr/src/bridge/migration/bundler sdk/js/src/solana/migration
|
||||
COPY --from=build /usr/src/bridge/modules/nft_bridge/program/bundler sdk/js/src/solana/nft
|
||||
|
||||
COPY --from=build /usr/src/bridge/pyth2wormhole/program/bundler third_party/pyth/p2w-sdk/src/solana/p2w-core
|
||||
COPY --from=build /usr/src/bridge/bridge/program/bundler explorer/wasm/core
|
||||
COPY --from=build /usr/src/bridge/modules/token_bridge/program/bundler explorer/wasm/token
|
||||
COPY --from=build /usr/src/bridge/modules/nft_bridge/program/bundler explorer/wasm/nft
|
||||
COPY --from=build /usr/src/bridge/bridge/program/bundler third_party/pyth/p2w-sdk/src/solana/wormhole-core
|
||||
|
||||
COPY --from=build /usr/src/bridge/bridge/program/nodejs sdk/js/src/solana/core-node
|
||||
COPY --from=build /usr/src/bridge/modules/token_bridge/program/nodejs sdk/js/src/solana/token-node
|
||||
COPY --from=build /usr/src/bridge/migration/nodejs sdk/js/src/solana/migration-node
|
||||
COPY --from=build /usr/src/bridge/modules/nft_bridge/program/nodejs sdk/js/src/solana/nft-node
|
||||
COPY --from=build /usr/src/bridge/bridge/program/nodejs clients/solana/pkg
|
||||
COPY --from=build /usr/src/bridge/bridge/program/nodejs clients/token_bridge/pkg/core
|
||||
COPY --from=build /usr/src/bridge/bridge/program/nodejs clients/nft_bridge/pkg/core
|
||||
COPY --from=build /usr/src/bridge/modules/token_bridge/program/nodejs clients/token_bridge/pkg/token
|
||||
COPY --from=build /usr/src/bridge/modules/nft_bridge/program/nodejs clients/nft_bridge/pkg/nft
|
||||
|
|
Loading…
Reference in New Issue