Skip to content

Commit

Permalink
chore: pull monorepo changes (#118)
Browse files Browse the repository at this point in the history
* Project import generated by Copybara.

GitOrigin-RevId: bcb5f68066b800e0bf8a68ed706a47a798292f3c

* chore: cleanup

---------

Co-authored-by: Copybara <[email protected]>
  • Loading branch information
gallynaut and Copybara authored Aug 21, 2023
1 parent c8b6ec9 commit 5e4cde7
Show file tree
Hide file tree
Showing 22 changed files with 255 additions and 362 deletions.
4 changes: 2 additions & 2 deletions examples/feeds/01_feed_client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@
"@project-serum/borsh": "^0.2.5",
"@solana/spl-token": "^0.3.8",
"@solana/web3.js": "^1.78.3",
"@switchboard-xyz/common": "^2.3.0",
"@switchboard-xyz/common": "^2.3.2",
"@switchboard-xyz/oracle": "latest",
"@switchboard-xyz/solana.js": "^2.5.0",
"@switchboard-xyz/solana.js": "^2.5.4",
"chalk": "^4.1.2",
"dotenv": "^16.0.1",
"yargs": "^17.5.1"
Expand Down
4 changes: 2 additions & 2 deletions examples/feeds/02_spl_native/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
"dependencies": {
"@coral-xyz/anchor": "^0.28.0",
"@solana/web3.js": "^1.77.3",
"@switchboard-xyz/common": "^2.3.0",
"@switchboard-xyz/common": "^2.3.2",
"@switchboard-xyz/oracle": "latest",
"@switchboard-xyz/solana.js": "^2.5.0"
"@switchboard-xyz/solana.js": "^2.5.4"
},
"devDependencies": {
"@types/chai": "^4.3.0",
Expand Down
8 changes: 4 additions & 4 deletions examples/functions/01_basic_oracle/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
},
"dependencies": {
"@coral-xyz/anchor": "^0.28.0",
"@solana/spl-token": "^0.3.6",
"@solana/web3.js": "^1.78.0",
"@switchboard-xyz/solana.js": "^"
"@solana/spl-token": "^0.3.8",
"@solana/web3.js": "^1.78.4",
"@switchboard-xyz/solana.js": "^2.5.4"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
Expand All @@ -26,4 +26,4 @@
"mocha": "^9.0.3",
"ts-mocha": "^10.0.0"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ async fn main() {
// Finally, emit the signed quote and partially signed transaction to the functionRunner oracle
// The functionRunner oracle will use the last outputted word to stdout as the serialized result. This is what gets executed on-chain.
runner.emit(ixs).await.unwrap();
}
}
4 changes: 2 additions & 2 deletions examples/functions/02_liquidity_oracle/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
"@coral-xyz/anchor": "^0.28.0",
"@solana/spl-token": "^0.3.8",
"@solana/web3.js": "^1.78.3",
"@switchboard-xyz/common": "^2.3.0",
"@switchboard-xyz/solana.js": "^2.5.0"
"@switchboard-xyz/common": "^2.3.2",
"@switchboard-xyz/solana.js": "^2.5.4"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
Expand Down
4 changes: 2 additions & 2 deletions examples/functions/03_candles_oracle/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
"@coral-xyz/anchor": "^0.28.0",
"@solana/spl-token": "^0.3.8",
"@solana/web3.js": "^1.78.3",
"@switchboard-xyz/common": "^2.3.0",
"@switchboard-xyz/solana.js": "^2.5.0"
"@switchboard-xyz/common": "^2.3.2",
"@switchboard-xyz/solana.js": "^2.5.4"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,4 @@ impl Initialize<'_> {
oracle.bump = *ctx.bumps.get("oracle").unwrap();
Ok(())
}
}
}
2 changes: 1 addition & 1 deletion examples/functions/03_candles_oracle/src/actions/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ pub mod set_function;
pub use set_function::*;

pub mod trigger_function;
pub use trigger_function::*;
pub use trigger_function::*;
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,4 @@ impl RefreshPrices<'_> {

Ok(())
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ pub struct SetFunction<'info> {
}

#[derive(Clone, AnchorSerialize, AnchorDeserialize)]
pub struct SetFunctionParams { }
pub struct SetFunctionParams {}

impl SetFunction<'_> {
pub fn validate(
Expand All @@ -34,4 +34,4 @@ impl SetFunction<'_> {
program.function = ctx.accounts.function.key();
Ok(())
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ pub struct TriggerFunction<'info> {
}

#[derive(Clone, AnchorSerialize, AnchorDeserialize)]
pub struct TriggerFunctionParams { }
pub struct TriggerFunctionParams {}

impl TriggerFunction<'_> {
pub fn validate(
Expand All @@ -32,12 +32,16 @@ impl TriggerFunction<'_> {
Ok(())
}

pub fn actuate(ctx: &Context<Self>, _params: &TriggerFunctionParams) -> anchor_lang::Result<()> {
pub fn actuate(
ctx: &Context<Self>,
_params: &TriggerFunctionParams,
) -> anchor_lang::Result<()> {
FunctionTrigger {
function: ctx.accounts.function.clone(),
authority: ctx.accounts.authority.clone(),
attestation_queue: ctx.accounts.attestation_queue.clone(),
}.invoke(ctx.accounts.attestation_program.clone())?;
}
.invoke(ctx.accounts.attestation_program.clone())?;
Ok(())
}
}
}
4 changes: 2 additions & 2 deletions examples/functions/04_randomness_callback/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
"@coral-xyz/anchor": "^0.27.0",
"@solana/spl-token": "^0.3.8",
"@solana/web3.js": "^1.78.3",
"@switchboard-xyz/common": "^2.3.0",
"@switchboard-xyz/solana.js": "^2.5.0",
"@switchboard-xyz/common": "^2.3.2",
"@switchboard-xyz/solana.js": "^2.5.4",
"dotenv": "^16.3.1"
},
"devDependencies": {
Expand Down
4 changes: 2 additions & 2 deletions examples/functions/05_raffle_program/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
},
"dependencies": {
"@coral-xyz/anchor": "^0.28.0",
"@switchboard-xyz/common": "^2.3.0",
"@switchboard-xyz/solana.js": "^2.5.0"
"@switchboard-xyz/common": "^2.3.2",
"@switchboard-xyz/solana.js": "^2.5.4"
},
"devDependencies": {
"@types/bn.js": "^5.1.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ pub struct Initialize<'info> {
space = 8 + std::mem::size_of::<RaffleAccount>(),
payer = payer,
seeds = [
b"MY_RAFFLE",
authority.key().as_ref(),
b"MY_RAFFLE",
authority.key().as_ref(),
params.recent_slot.to_le_bytes().as_ref()
],
bump
Expand Down Expand Up @@ -47,7 +47,6 @@ impl Initialize<'_> {
let mut raffle = ctx.accounts.raffle.load_init()?;
raffle.bump = *ctx.bumps.get("raffle").unwrap();


// accounts
raffle.authority = ctx.accounts.authority.key();
raffle.function = ctx.accounts.function.key();
Expand Down
4 changes: 2 additions & 2 deletions examples/vrf/01_vrf_client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@
"@project-serum/borsh": "^0.2.5",
"@solana/spl-token": "^0.3.6",
"@solana/web3.js": "^1.77.3",
"@switchboard-xyz/common": "^2.3.0",
"@switchboard-xyz/common": "^2.3.2",
"@switchboard-xyz/oracle": "latest",
"@switchboard-xyz/solana.js": "^2.5.0",
"@switchboard-xyz/solana.js": "^2.5.4",
"chalk": "^4.1.2",
"dotenv": "^16.0.1",
"yargs": "^17.5.1"
Expand Down
163 changes: 36 additions & 127 deletions javascript/solana.js/esbuild.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import * as utils from "@switchboard-xyz/common/esm-utils";
import { execSync } from "child_process";
import { build } from "esbuild";
import fs from "fs";
import fsPromises from "fs/promises";
import path from "path";
import shell from "shelljs";
import { fileURLToPath } from "url";
Expand All @@ -14,144 +15,52 @@ const __dirname = path.dirname(__filename);

const buildFiles = ["tsconfig.tsbuildinfo"];

const isCI =
process.env.CI && process.env.CI.length > 0 ? Boolean(process.env.CI) : false;

const tscPath = path.relative(
process.cwd(),
path.join(__dirname, "..", "..", "node_modules", "typescript", "bin", "tsc")
);

const outDir = path.join(__dirname, "lib");

const commonOptions = {
bundle: true,
minify: true,
treeShaking: true,
platform: "node",
sourcemap: true,
sourcesContent: false,
target: "node16",
plugins: [],
legalComments: "none",
};

const entrypoints = {
index: "index",
SwitchboardProgram: "SwitchboardProgram",
TransactionObject: "TransactionObject",
AggregatorAccount: "accounts/AggregatorAccount",
generated: "generated/index",
"generated/accounts": "generated/accounts",
"generated/instructions": "generated/instructions",
"generated/types": "generated/types",
"generated/oracle": "generated/oracle-program/index",
"generated/oracle/accounts": "generated/oracle-program/accounts/index",
"generated/oracle/instructions":
"generated/oracle-program/instructions/index",
"generated/oracle/types": "generated/oracle-program/types/index",
"generated/attestation": "generated/attestation-program/index",
"generated/attestation/accounts":
"generated/attestation-program/accounts/index",
"generated/attestation/instructions":
"generated/attestation-program/instructions/index",
"generated/attestation/types": "generated/attestation-program/types/index",
};

const updateJsonFile = (relativePath, updateFunction) => {
const contents = fs.readFileSync(relativePath).toString();
const res = updateFunction(JSON.parse(contents));
fs.writeFileSync(relativePath, JSON.stringify(res, null, 2) + "\n");
};

const generateFiles = () => {
const files = [...Object.entries(entrypoints), ["index", "index"]].flatMap(
([key, value]) => {
const nrOfDots = key.split("/").length - 1;
const relativePath = "../".repeat(nrOfDots) || "./";
const compiledPath = `${relativePath}lib/${value}.js`;
return [
[
`${key}.cjs`,
`module.exports = require('${relativePath}lib/${value}.cjs');`,
],
[`${key}.js`, `export * from '${compiledPath}'`],
[`${key}.d.ts`, `export * from '${compiledPath}'`],
];
}
);

return Object.fromEntries(files);
};

const updateConfig = () => {
// Update tsconfig.json `typedocOptions.entryPoints` field
updateJsonFile("./tsconfig.json", (json) => ({
...json,
typedocOptions: {
...json.typedocOptions,
entryPoints: [...Object.keys(entrypoints)].map(
(key) => `src/${entrypoints[key]}.ts`
),
},
}));

const generatedFiles = generateFiles();
const filenames = Object.keys(generatedFiles);

// Update package.json `exports` and `files` fields
updateJsonFile("./package.json", (json) => ({
...json,
exports: Object.assign(
Object.fromEntries(
["index", ...Object.keys(entrypoints)].map((key) => {
const entryPoint = {
types: `./${key}.d.ts`,
import: `./${key}.js`,
require: `./${key}.cjs`,
};

return [key === "index" ? "." : `./${key}`, entryPoint];
})
),
{ "./package.json": "./package.json" }
),
files: ["lib/", "package.json", ...filenames],
}));

// Write generated files
Object.entries(generatedFiles).forEach(([filename, content]) => {
fs.mkdirSync(path.dirname(filename), { recursive: true });
fs.writeFileSync(filename, content);
});

// Update .gitignore
fs.writeFileSync("./.gitignore", filenames.join("\n") + "\n");
};

async function main() {
fs.rmSync(outDir, {
force: true,
recursive: true,
});
for (const file of buildFiles) {
if (fs.existsSync(file)) {
fs.rmSync(file);
}
}
await Promise.all([
fsPromises.rm(outDir, { recursive: true, force: true }),
fsPromises.rm(path.join(__dirname, "lib-cjs"), {
recursive: true,
force: true,
}),
buildFiles.map((f) => fsPromises.rm(f, { force: true })),
]);

fs.mkdirSync(outDir, { recursive: true });

execSync(`${tscPath} --outDir lib`, { encoding: "utf-8" });
execSync(`pnpm exec tsc --outDir lib`, { encoding: "utf-8" });

execSync(`${tscPath} --outDir lib-cjs -p tsconfig.cjs.json`, {
execSync(`pnpm exec tsc --outDir lib-cjs -p tsconfig.cjs.json`, {
encoding: "utf-8",
});
utils.moveCjsFiles("lib-cjs", "lib");
fs.rmSync("lib-cjs", { recursive: true });

await utils
.moveCjsFilesAsync("lib-cjs", "lib")
.then(() => fsPromises.rm("lib-cjs", { recursive: true, force: true }));

console.log(`Generating entrypoints ...`);
updateConfig();
utils.generateEntrypoints(__dirname, "lib", {
index: "index",
SwitchboardProgram: "SwitchboardProgram",
TransactionObject: "TransactionObject",
AggregatorAccount: "accounts/AggregatorAccount",
generated: "generated/index",
"generated/accounts": "generated/accounts",
"generated/instructions": "generated/instructions",
"generated/types": "generated/types",
"generated/oracle": "generated/oracle-program/index",
"generated/oracle/accounts": "generated/oracle-program/accounts/index",
"generated/oracle/instructions":
"generated/oracle-program/instructions/index",
"generated/oracle/types": "generated/oracle-program/types/index",
"generated/attestation": "generated/attestation-program/index",
"generated/attestation/accounts":
"generated/attestation-program/accounts/index",
"generated/attestation/instructions":
"generated/attestation-program/instructions/index",
"generated/attestation/types": "generated/attestation-program/types/index",
});
}

main().catch((error) => {
Expand Down
Loading

0 comments on commit 5e4cde7

Please sign in to comment.