diff --git a/examples/feeds/01_feed_client/package.json b/examples/feeds/01_feed_client/package.json index 3c6bde3..d4b86fe 100644 --- a/examples/feeds/01_feed_client/package.json +++ b/examples/feeds/01_feed_client/package.json @@ -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" diff --git a/examples/feeds/02_spl_native/package.json b/examples/feeds/02_spl_native/package.json index 1ee64bc..17a26cb 100644 --- a/examples/feeds/02_spl_native/package.json +++ b/examples/feeds/02_spl_native/package.json @@ -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", diff --git a/examples/functions/01_basic_oracle/package.json b/examples/functions/01_basic_oracle/package.json index 48d1354..84a1856 100644 --- a/examples/functions/01_basic_oracle/package.json +++ b/examples/functions/01_basic_oracle/package.json @@ -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", @@ -26,4 +26,4 @@ "mocha": "^9.0.3", "ts-mocha": "^10.0.0" } -} \ No newline at end of file +} diff --git a/examples/functions/01_basic_oracle/sgx-function/src/main.rs b/examples/functions/01_basic_oracle/sgx-function/src/main.rs index 9669597..3983807 100644 --- a/examples/functions/01_basic_oracle/sgx-function/src/main.rs +++ b/examples/functions/01_basic_oracle/sgx-function/src/main.rs @@ -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(); -} \ No newline at end of file +} diff --git a/examples/functions/02_liquidity_oracle/package.json b/examples/functions/02_liquidity_oracle/package.json index 112662d..5317ced 100644 --- a/examples/functions/02_liquidity_oracle/package.json +++ b/examples/functions/02_liquidity_oracle/package.json @@ -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", diff --git a/examples/functions/03_candles_oracle/package.json b/examples/functions/03_candles_oracle/package.json index e4dbee1..969e62b 100644 --- a/examples/functions/03_candles_oracle/package.json +++ b/examples/functions/03_candles_oracle/package.json @@ -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", diff --git a/examples/functions/03_candles_oracle/src/actions/initialize.rs b/examples/functions/03_candles_oracle/src/actions/initialize.rs index 7c16096..2595628 100644 --- a/examples/functions/03_candles_oracle/src/actions/initialize.rs +++ b/examples/functions/03_candles_oracle/src/actions/initialize.rs @@ -50,4 +50,4 @@ impl Initialize<'_> { oracle.bump = *ctx.bumps.get("oracle").unwrap(); Ok(()) } -} \ No newline at end of file +} diff --git a/examples/functions/03_candles_oracle/src/actions/mod.rs b/examples/functions/03_candles_oracle/src/actions/mod.rs index b9f3ede..d2a9b9e 100644 --- a/examples/functions/03_candles_oracle/src/actions/mod.rs +++ b/examples/functions/03_candles_oracle/src/actions/mod.rs @@ -8,4 +8,4 @@ pub mod set_function; pub use set_function::*; pub mod trigger_function; -pub use trigger_function::*; \ No newline at end of file +pub use trigger_function::*; diff --git a/examples/functions/03_candles_oracle/src/actions/refresh_prices.rs b/examples/functions/03_candles_oracle/src/actions/refresh_prices.rs index 978a9f1..4202e84 100644 --- a/examples/functions/03_candles_oracle/src/actions/refresh_prices.rs +++ b/examples/functions/03_candles_oracle/src/actions/refresh_prices.rs @@ -45,4 +45,4 @@ impl RefreshPrices<'_> { Ok(()) } -} \ No newline at end of file +} diff --git a/examples/functions/03_candles_oracle/src/actions/set_function.rs b/examples/functions/03_candles_oracle/src/actions/set_function.rs index 2044342..460b176 100644 --- a/examples/functions/03_candles_oracle/src/actions/set_function.rs +++ b/examples/functions/03_candles_oracle/src/actions/set_function.rs @@ -18,7 +18,7 @@ pub struct SetFunction<'info> { } #[derive(Clone, AnchorSerialize, AnchorDeserialize)] -pub struct SetFunctionParams { } +pub struct SetFunctionParams {} impl SetFunction<'_> { pub fn validate( @@ -34,4 +34,4 @@ impl SetFunction<'_> { program.function = ctx.accounts.function.key(); Ok(()) } -} \ No newline at end of file +} diff --git a/examples/functions/03_candles_oracle/src/actions/trigger_function.rs b/examples/functions/03_candles_oracle/src/actions/trigger_function.rs index fdaec3e..e3f1e3b 100644 --- a/examples/functions/03_candles_oracle/src/actions/trigger_function.rs +++ b/examples/functions/03_candles_oracle/src/actions/trigger_function.rs @@ -21,7 +21,7 @@ pub struct TriggerFunction<'info> { } #[derive(Clone, AnchorSerialize, AnchorDeserialize)] -pub struct TriggerFunctionParams { } +pub struct TriggerFunctionParams {} impl TriggerFunction<'_> { pub fn validate( @@ -32,12 +32,16 @@ impl TriggerFunction<'_> { Ok(()) } - pub fn actuate(ctx: &Context, _params: &TriggerFunctionParams) -> anchor_lang::Result<()> { + pub fn actuate( + ctx: &Context, + _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(()) } -} \ No newline at end of file +} diff --git a/examples/functions/04_randomness_callback/package.json b/examples/functions/04_randomness_callback/package.json index 70d7e2d..9a383e2 100644 --- a/examples/functions/04_randomness_callback/package.json +++ b/examples/functions/04_randomness_callback/package.json @@ -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": { diff --git a/examples/functions/05_raffle_program/package.json b/examples/functions/05_raffle_program/package.json index 9539c60..96a1174 100644 --- a/examples/functions/05_raffle_program/package.json +++ b/examples/functions/05_raffle_program/package.json @@ -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", diff --git a/examples/functions/05_raffle_program/src/actions/initialize.rs b/examples/functions/05_raffle_program/src/actions/initialize.rs index 4063cc2..f920314 100644 --- a/examples/functions/05_raffle_program/src/actions/initialize.rs +++ b/examples/functions/05_raffle_program/src/actions/initialize.rs @@ -8,8 +8,8 @@ pub struct Initialize<'info> { space = 8 + std::mem::size_of::(), 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 @@ -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(); diff --git a/examples/vrf/01_vrf_client/package.json b/examples/vrf/01_vrf_client/package.json index b676702..f04b0f9 100644 --- a/examples/vrf/01_vrf_client/package.json +++ b/examples/vrf/01_vrf_client/package.json @@ -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" diff --git a/javascript/solana.js/esbuild.js b/javascript/solana.js/esbuild.js index e9fbc21..368b6bb 100644 --- a/javascript/solana.js/esbuild.js +++ b/javascript/solana.js/esbuild.js @@ -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"; @@ -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) => { diff --git a/javascript/solana.js/package.json b/javascript/solana.js/package.json index 8e0cc54..b0d57ec 100644 --- a/javascript/solana.js/package.json +++ b/javascript/solana.js/package.json @@ -7,6 +7,58 @@ "type": "module", "main": "./index.js", "types": "./index.d.ts", + "scripts": { + "close-functions": "tsx ./scripts/close-functions.ts", + "keypair:create": "pnpm exec shx find ~/.config/solana/id.json || solana-keygen new -s --no-bip39-passphrase --outfile ~/.config/solana/id.json", + "localnet:down": "kill -9 $(pgrep command solana-test-validator) || exit 0", + "localnet": "tsx ./scripts/localnet.ts", + "local:validator": "shx mkdir -p .anchor/test-ledger || true; solana-test-validator -q -r --ledger .anchor/test-ledger --mint $(solana-keygen pubkey ~/.config/solana/id.json) --bind-address 0.0.0.0 --url https://api.devnet.solana.com --rpc-port 8899 --clone SW1TCH7qEPTdLsDHRgPuMQjbQxKdH2aBStViMFnt64f `# programId` --clone 7nYabs9dUhvxYwdTnrWVBL9MYviKSfrEbdWCUbcnwkpF `# programDataAddress` --clone Fi8vncGpNKbq62gPo56G4toCehWNy77GgqGkTaAF5Lkk `# idlAddress` --clone sbattyXrzedoNATfc4L31wC9Mhxsi1BmFhTiN8gDshx `# sgxProgramId` --clone BzqtGXZPiDSinP4xMFgPf6FLgSa6iPufK4m4JJFgMnTK `# sgxProgramDataAddress` --clone 5MFs7RGTjLi1wtKNBFRtuLipCkkjs4YQwRRU9sjnbQbS `# sgxProgramState` --clone 5ExuoQR69trmKQfB95fDsUGsUrrChbGq9PFgt8qouncz `# sgxIdlAddress` --clone CyZuD7RPDcrqCGbNvLCyqk6Py9cEZTKmNKujfPi3ynDd `# programState` --clone 7hkp1xfPBcD2t1vZMoWWQPzipHVcXeLAAaiGXdPSfDie `# switchboardVault`", + "local:validator:mainnet": "solana-test-validator -q -r --ledger .anchor/test-ledger --mint $(solana-keygen pubkey ~/.config/solana/id.json) --bind-address 0.0.0.0 --rpc-port 8899 --url https://api.mainnet-beta.solana.com --clone SW1TCH7qEPTdLsDHRgPuMQjbQxKdH2aBStViMFnt64f --clone 7nYabs9dUhvxYwdTnrWVBL9MYviKSfrEbdWCUbcnwkpF --clone Fi8vncGpNKbq62gPo56G4toCehWNy77GgqGkTaAF5Lkk --clone sbattyXrzedoNATfc4L31wC9Mhxsi1BmFhTiN8gDshx --clone BzqtGXZPiDSinP4xMFgPf6FLgSa6iPufK4m4JJFgMnTK --clone 5MFs7RGTjLi1wtKNBFRtuLipCkkjs4YQwRRU9sjnbQbS --clone 5ExuoQR69trmKQfB95fDsUGsUrrChbGq9PFgt8qouncz --clone CyZuD7RPDcrqCGbNvLCyqk6Py9cEZTKmNKujfPi3ynDd --clone J7nSEX8ADf3pVVicd6yKy2Skvg8iLePEmkLUisAAaioD", + "generate": "tsx ./scripts/generate-client.ts", + "build": "node esbuild.js", + "watch": "pnpm exec tsc -p tsconfig.cjs.json --watch", + "test": "node ./node_modules/mocha/bin/mocha --loader=ts-node/esm --extension ts --timeout 60000 --exit", + "test:localnet": "SOLANA_LOCALNET=1 node ./node_modules/mocha/bin/mocha --exit", + "test:localnet:mainnet": "SWITCHBOARD_PROGRAM_ID=SW1TCH7qEPTdLsDHRgPuMQjbQxKdH2aBStViMFnt64f SOLANA_LOCALNET=1 SOLANA_CLUSTER=mainnet-beta node ./node_modules/mocha/bin/mocha --loader=ts-node/esm --extension ts --timeout 60000 --exit", + "lint": "pnpm exec eslint src", + "clean": "pnpm exec rimraf node_modules lib .turbo", + "fix": "pnpm exec eslint --fix src" + }, + "dependencies": { + "@coral-xyz/anchor": "^0.28.0", + "@coral-xyz/borsh": "^0.28.0", + "@solana/spl-token": "^0.3.8", + "@solana/web3.js": "^1.78.3", + "@switchboard-xyz/common": "^2.3.2", + "cron-validator": "^1.3.1", + "dotenv": "^16.3.1", + "lodash": "^4.17.21" + }, + "devDependencies": { + "@switchboard-xyz/eslint-config": "latest", + "@switchboard-xyz/oracle": "latest", + "@types/chai": "^4.3.5", + "@types/lodash": "^4.14.195", + "@types/mocha": "^10.0.1", + "@types/shelljs": "^0.8.12", + "anchor-client-gen": "^0.28.1", + "chai": "^4.3.7", + "chalk": "^4.1.2", + "esbuild": "^0.17.19", + "mocha": "^10.2.0", + "shelljs": "^0.8.5", + "ts-mocha": "^10.0.0", + "ts-node": "^10.9.1", + "tsx": "^3.12.7", + "typedoc": "^0.23.28" + }, + "pre-commit": [ + "build" + ], + "engines": { + "npm": ">=7.0.0", + "node": ">=16.0.0" + }, "files": [ "lib/", "package.json", @@ -141,57 +193,5 @@ "require": "./generated/attestation/types.cjs" }, "./package.json": "./package.json" - }, - "scripts": { - "close-functions": "tsx ./scripts/close-functions.ts", - "keypair:create": "pnpm exec shx find ~/.config/solana/id.json || solana-keygen new -s --no-bip39-passphrase --outfile ~/.config/solana/id.json", - "localnet:down": "kill -9 $(pgrep command solana-test-validator) || exit 0", - "localnet": "tsx ./scripts/localnet.ts", - "local:validator": "shx mkdir -p .anchor/test-ledger || true; solana-test-validator -q -r --ledger .anchor/test-ledger --mint $(solana-keygen pubkey ~/.config/solana/id.json) --bind-address 0.0.0.0 --url https://api.devnet.solana.com --rpc-port 8899 --clone SW1TCH7qEPTdLsDHRgPuMQjbQxKdH2aBStViMFnt64f `# programId` --clone 7nYabs9dUhvxYwdTnrWVBL9MYviKSfrEbdWCUbcnwkpF `# programDataAddress` --clone Fi8vncGpNKbq62gPo56G4toCehWNy77GgqGkTaAF5Lkk `# idlAddress` --clone sbattyXrzedoNATfc4L31wC9Mhxsi1BmFhTiN8gDshx `# sgxProgramId` --clone BzqtGXZPiDSinP4xMFgPf6FLgSa6iPufK4m4JJFgMnTK `# sgxProgramDataAddress` --clone 5MFs7RGTjLi1wtKNBFRtuLipCkkjs4YQwRRU9sjnbQbS `# sgxProgramState` --clone 5ExuoQR69trmKQfB95fDsUGsUrrChbGq9PFgt8qouncz `# sgxIdlAddress` --clone CyZuD7RPDcrqCGbNvLCyqk6Py9cEZTKmNKujfPi3ynDd `# programState` --clone 7hkp1xfPBcD2t1vZMoWWQPzipHVcXeLAAaiGXdPSfDie `# switchboardVault`", - "local:validator:mainnet": "solana-test-validator -q -r --ledger .anchor/test-ledger --mint $(solana-keygen pubkey ~/.config/solana/id.json) --bind-address 0.0.0.0 --rpc-port 8899 --url https://api.mainnet-beta.solana.com --clone SW1TCH7qEPTdLsDHRgPuMQjbQxKdH2aBStViMFnt64f --clone 7nYabs9dUhvxYwdTnrWVBL9MYviKSfrEbdWCUbcnwkpF --clone Fi8vncGpNKbq62gPo56G4toCehWNy77GgqGkTaAF5Lkk --clone sbattyXrzedoNATfc4L31wC9Mhxsi1BmFhTiN8gDshx --clone BzqtGXZPiDSinP4xMFgPf6FLgSa6iPufK4m4JJFgMnTK --clone 5MFs7RGTjLi1wtKNBFRtuLipCkkjs4YQwRRU9sjnbQbS --clone 5ExuoQR69trmKQfB95fDsUGsUrrChbGq9PFgt8qouncz --clone CyZuD7RPDcrqCGbNvLCyqk6Py9cEZTKmNKujfPi3ynDd --clone J7nSEX8ADf3pVVicd6yKy2Skvg8iLePEmkLUisAAaioD", - "generate": "tsx ./scripts/generate-client.ts", - "build": "node esbuild.js", - "watch": "pnpm exec tsc -p tsconfig.cjs.json --watch", - "test": "node ./node_modules/mocha/bin/mocha --loader=ts-node/esm --extension ts --timeout 60000 --exit", - "test:localnet": "SOLANA_LOCALNET=1 node ./node_modules/mocha/bin/mocha --exit", - "test:localnet:mainnet": "SWITCHBOARD_PROGRAM_ID=SW1TCH7qEPTdLsDHRgPuMQjbQxKdH2aBStViMFnt64f SOLANA_LOCALNET=1 SOLANA_CLUSTER=mainnet-beta node ./node_modules/mocha/bin/mocha --loader=ts-node/esm --extension ts --timeout 60000 --exit", - "lint": "pnpm exec eslint src", - "clean": "pnpm exec rimraf node_modules lib .turbo", - "fix": "pnpm exec eslint --fix src" - }, - "dependencies": { - "@coral-xyz/anchor": "^0.28.0", - "@coral-xyz/borsh": "^0.28.0", - "@solana/spl-token": "^0.3.8", - "@solana/web3.js": "^1.78.3", - "@switchboard-xyz/common": "^2.3.0", - "cron-validator": "^1.3.1", - "dotenv": "^16.3.1", - "lodash": "^4.17.21" - }, - "devDependencies": { - "@switchboard-xyz/eslint-config": "latest", - "@switchboard-xyz/oracle": "latest", - "@types/chai": "^4.3.5", - "@types/lodash": "^4.14.195", - "@types/mocha": "^10.0.1", - "@types/shelljs": "^0.8.12", - "anchor-client-gen": "^0.28.1", - "chai": "^4.3.7", - "chalk": "^4.1.2", - "esbuild": "^0.17.19", - "mocha": "^10.2.0", - "shelljs": "^0.8.5", - "ts-mocha": "^10.0.0", - "ts-node": "^10.9.1", - "tsx": "^3.12.7", - "typedoc": "^0.23.28" - }, - "pre-commit": [ - "build" - ], - "engines": { - "npm": ">=7.0.0", - "node": ">=16.0.0" } } diff --git a/javascript/solana.js/tsconfig.base.json b/javascript/solana.js/tsconfig.base.json index 99a5cdd..e7019e9 100644 --- a/javascript/solana.js/tsconfig.base.json +++ b/javascript/solana.js/tsconfig.base.json @@ -28,16 +28,14 @@ "strictNullChecks": false, "strictFunctionTypes": true, "noImplicitReturns": true, - "esModuleInterop": true, - "paths": { - "@switchboard-xyz/common": [ - "../common" - ] - } + "esModuleInterop": true }, "references": [ { "path": "../common" + }, + { + "path": "../oracle" } ] } \ No newline at end of file diff --git a/javascript/solana.js/tsconfig.json b/javascript/solana.js/tsconfig.json index bf6cf30..c35fbf1 100644 --- a/javascript/solana.js/tsconfig.json +++ b/javascript/solana.js/tsconfig.json @@ -28,15 +28,7 @@ "strictPropertyInitialization": false, "strict": true, "strictNullChecks": true, - "allowJs": true, - "paths": { - "@switchboard-xyz/common": [ - "../common" - ], - "@switchboard-xyz/oracle": [ - "../oracle" - ] - } + "allowJs": true }, "typedocOptions": { "entryPoints": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 924e114..bc95ab7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -63,13 +63,13 @@ importers: specifier: ^1.78.3 version: 1.78.3 '@switchboard-xyz/common': - specifier: ^2.3.0 - version: 2.3.0(@solana/web3.js@1.78.3) + specifier: ^2.3.2 + version: 2.3.2(@solana/web3.js@1.78.3) '@switchboard-xyz/oracle': specifier: latest version: 2.1.13 '@switchboard-xyz/solana.js': - specifier: ^2.5.0 + specifier: ^2.5.4 version: link:../../../javascript/solana.js chalk: specifier: ^4.1.2 @@ -112,13 +112,13 @@ importers: specifier: ^1.77.3 version: 1.77.3 '@switchboard-xyz/common': - specifier: ^2.3.0 - version: 2.3.0(@solana/web3.js@1.77.3) + specifier: ^2.3.2 + version: 2.3.2(@solana/web3.js@1.77.3) '@switchboard-xyz/oracle': specifier: latest version: 2.1.13 '@switchboard-xyz/solana.js': - specifier: ^2.5.0 + specifier: ^2.5.4 version: link:../../../javascript/solana.js devDependencies: '@types/chai': @@ -143,16 +143,13 @@ importers: specifier: ^0.28.0 version: 0.28.0 '@solana/spl-token': - specifier: ^0.3.6 - version: 0.3.6(@solana/web3.js@1.78.0) + specifier: ^0.3.8 + version: 0.3.8(@solana/web3.js@1.78.4) '@solana/web3.js': - specifier: ^1.78.0 - version: 1.78.0 - '@switchboard-xyz/common': - specifier: ^2.3.0 - version: 2.3.0(@solana/web3.js@1.78.0) + specifier: ^1.78.4 + version: 1.78.4 '@switchboard-xyz/solana.js': - specifier: ^2.5.0 + specifier: ^2.5.4 version: link:../../../javascript/solana.js devDependencies: '@types/bn.js': @@ -195,10 +192,10 @@ importers: specifier: ^1.78.3 version: 1.78.3 '@switchboard-xyz/common': - specifier: ^2.3.0 - version: 2.3.0(@solana/web3.js@1.78.3) + specifier: ^2.3.2 + version: 2.3.2(@solana/web3.js@1.78.3) '@switchboard-xyz/solana.js': - specifier: ^2.5.0 + specifier: ^2.5.4 version: link:../../../javascript/solana.js devDependencies: '@types/bn.js': @@ -241,10 +238,10 @@ importers: specifier: ^1.78.3 version: 1.78.3 '@switchboard-xyz/common': - specifier: ^2.3.0 - version: 2.3.0(@solana/web3.js@1.78.3) + specifier: ^2.3.2 + version: 2.3.2(@solana/web3.js@1.78.3) '@switchboard-xyz/solana.js': - specifier: ^2.5.0 + specifier: ^2.5.4 version: link:../../../javascript/solana.js devDependencies: '@types/bn.js': @@ -287,10 +284,10 @@ importers: specifier: ^1.78.3 version: 1.78.3 '@switchboard-xyz/common': - specifier: ^2.3.0 - version: 2.3.0(@solana/web3.js@1.78.3) + specifier: ^2.3.2 + version: 2.3.2(@solana/web3.js@1.78.3) '@switchboard-xyz/solana.js': - specifier: ^2.5.0 + specifier: ^2.5.4 version: link:../../../javascript/solana.js dotenv: specifier: ^16.3.1 @@ -329,10 +326,10 @@ importers: specifier: ^0.28.0 version: 0.28.0 '@switchboard-xyz/common': - specifier: ^2.3.0 - version: 2.3.0(@solana/web3.js@1.78.3) + specifier: ^2.3.2 + version: 2.3.2(@solana/web3.js@1.78.4) '@switchboard-xyz/solana.js': - specifier: ^2.5.0 + specifier: ^2.5.4 version: link:../../../javascript/solana.js devDependencies: '@types/bn.js': @@ -381,13 +378,13 @@ importers: specifier: ^1.77.3 version: 1.77.3 '@switchboard-xyz/common': - specifier: ^2.3.0 - version: 2.3.0(@solana/web3.js@1.77.3) + specifier: ^2.3.2 + version: 2.3.2(@solana/web3.js@1.77.3) '@switchboard-xyz/oracle': specifier: latest version: 2.1.13 '@switchboard-xyz/solana.js': - specifier: ^2.5.0 + specifier: ^2.5.4 version: link:../../../javascript/solana.js chalk: specifier: ^4.1.2 @@ -479,8 +476,8 @@ importers: specifier: ^1.78.3 version: 1.78.3 '@switchboard-xyz/common': - specifier: ^2.3.0 - version: 2.3.0(@solana/web3.js@1.78.3) + specifier: ^2.3.2 + version: 2.3.2(@solana/web3.js@1.78.3) cron-validator: specifier: ^1.3.1 version: 1.3.1 @@ -940,8 +937,8 @@ packages: resolution: {integrity: sha512-+P/vPdORawvg3A9Wj02iquxb4T0C5m4P6aZBVYysKl4Amk+r6aMPZkUhilBkD6E4Nuxnoajv3CFykUfkGE0n5g==} engines: {node: '>=11'} dependencies: - '@coral-xyz/borsh': 0.27.0(@solana/web3.js@1.78.3) - '@solana/web3.js': 1.78.3 + '@coral-xyz/borsh': 0.27.0(@solana/web3.js@1.78.4) + '@solana/web3.js': 1.78.4 base64-js: 1.5.1 bn.js: 5.2.1 bs58: 4.0.1 @@ -985,13 +982,13 @@ packages: - encoding - utf-8-validate - /@coral-xyz/borsh@0.27.0(@solana/web3.js@1.78.3): + /@coral-xyz/borsh@0.27.0(@solana/web3.js@1.78.4): resolution: {integrity: sha512-tJKzhLukghTWPLy+n8K8iJKgBq1yLT/AxaNd10yJrX8mI56ao5+OFAKAqW/h0i79KCvb4BK0VGO5ECmmolFz9A==} engines: {node: '>=10'} peerDependencies: '@solana/web3.js': ^1.68.0 dependencies: - '@solana/web3.js': 1.78.3 + '@solana/web3.js': 1.78.4 bn.js: 5.2.1 buffer-layout: 1.2.2 dev: false @@ -1007,17 +1004,6 @@ packages: buffer-layout: 1.2.2 dev: false - /@coral-xyz/borsh@0.28.0(@solana/web3.js@1.78.0): - resolution: {integrity: sha512-/u1VTzw7XooK7rqeD7JLUSwOyRSesPUk0U37BV9zK0axJc1q0nRbKFGFLYCQ16OtdOJTTwGfGp11Lx9B45bRCQ==} - engines: {node: '>=10'} - peerDependencies: - '@solana/web3.js': ^1.68.0 - dependencies: - '@solana/web3.js': 1.78.0 - bn.js: 5.2.1 - buffer-layout: 1.2.2 - dev: false - /@coral-xyz/borsh@0.28.0(@solana/web3.js@1.78.3): resolution: {integrity: sha512-/u1VTzw7XooK7rqeD7JLUSwOyRSesPUk0U37BV9zK0axJc1q0nRbKFGFLYCQ16OtdOJTTwGfGp11Lx9B45bRCQ==} engines: {node: '>=10'} @@ -1028,6 +1014,16 @@ packages: bn.js: 5.2.1 buffer-layout: 1.2.2 + /@coral-xyz/borsh@0.28.0(@solana/web3.js@1.78.4): + resolution: {integrity: sha512-/u1VTzw7XooK7rqeD7JLUSwOyRSesPUk0U37BV9zK0axJc1q0nRbKFGFLYCQ16OtdOJTTwGfGp11Lx9B45bRCQ==} + engines: {node: '>=10'} + peerDependencies: + '@solana/web3.js': ^1.68.0 + dependencies: + '@solana/web3.js': 1.78.4 + bn.js: 5.2.1 + buffer-layout: 1.2.2 + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -1500,7 +1496,7 @@ packages: engines: {node: '>= 10'} dependencies: '@solana/buffer-layout': 4.0.0 - '@solana/web3.js': 1.78.3 + '@solana/web3.js': 1.78.4 bigint-buffer: 1.1.5 bignumber.js: 9.1.0 transitivePeerDependencies: @@ -1531,22 +1527,6 @@ packages: - utf-8-validate dev: false - /@solana/spl-token@0.3.6(@solana/web3.js@1.78.0): - resolution: {integrity: sha512-P9pTXjDIRvVbjr3J0mCnSamYqLnICeds7IoH1/Ro2R9OBuOHdp5pqKZoscfZ3UYrgnCWUc1bc9M2m/YPHjw+1g==} - engines: {node: '>=16'} - peerDependencies: - '@solana/web3.js': ^1.47.4 - dependencies: - '@solana/buffer-layout': 4.0.0 - '@solana/buffer-layout-utils': 0.2.0 - '@solana/web3.js': 1.78.0 - buffer: 6.0.3 - transitivePeerDependencies: - - bufferutil - - encoding - - utf-8-validate - dev: false - /@solana/spl-token@0.3.8(@solana/web3.js@1.78.3): resolution: {integrity: sha512-ogwGDcunP9Lkj+9CODOWMiVJEdRtqHAtX2rWF62KxnnSWtMZtV9rDhTrZFshiyJmxDnRL/1nKE1yJHg4jjs3gg==} engines: {node: '>=16'} @@ -1563,33 +1543,24 @@ packages: - utf-8-validate dev: false - /@solana/web3.js@1.77.3: - resolution: {integrity: sha512-PHaO0BdoiQRPpieC1p31wJsBaxwIOWLh8j2ocXNKX8boCQVldt26Jqm2tZE4KlrvnCIV78owPLv1pEUgqhxZ3w==} + /@solana/spl-token@0.3.8(@solana/web3.js@1.78.4): + resolution: {integrity: sha512-ogwGDcunP9Lkj+9CODOWMiVJEdRtqHAtX2rWF62KxnnSWtMZtV9rDhTrZFshiyJmxDnRL/1nKE1yJHg4jjs3gg==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.47.4 dependencies: - '@babel/runtime': 7.22.5 - '@noble/curves': 1.1.0 - '@noble/hashes': 1.3.1 '@solana/buffer-layout': 4.0.0 - agentkeepalive: 4.2.1 - bigint-buffer: 1.1.5 - bn.js: 5.2.1 - borsh: 0.7.0 - bs58: 4.0.1 + '@solana/buffer-layout-utils': 0.2.0 + '@solana/web3.js': 1.78.4 buffer: 6.0.3 - fast-stable-stringify: 1.0.0 - jayson: 4.1.0 - node-fetch: 2.6.12 - rpc-websockets: 7.5.1 - superstruct: 0.14.2 transitivePeerDependencies: - bufferutil - encoding - - supports-color - utf-8-validate dev: false - /@solana/web3.js@1.78.0: - resolution: {integrity: sha512-CSjCjo+RELJ5puoZALfznN5EF0YvL1V8NQrQYovsdjE1lCV6SqbKAIZD0+9LlqCBoa1ibuUaR7G2SooYzvzmug==} + /@solana/web3.js@1.77.3: + resolution: {integrity: sha512-PHaO0BdoiQRPpieC1p31wJsBaxwIOWLh8j2ocXNKX8boCQVldt26Jqm2tZE4KlrvnCIV78owPLv1pEUgqhxZ3w==} dependencies: '@babel/runtime': 7.22.5 '@noble/curves': 1.1.0 @@ -1636,8 +1607,31 @@ packages: - encoding - utf-8-validate - /@switchboard-xyz/common@2.3.0(@solana/web3.js@1.77.3): - resolution: {integrity: sha512-MIjsHv71tFyj6ZAVme35Con0IYTXMeGhWOzcc6s2oK6vPLTDiLMoS2DO0Ih/2y//O/m1Bz+YbSbXWbpSjvuP2g==} + /@solana/web3.js@1.78.4: + resolution: {integrity: sha512-up5VG1dK+GPhykmuMIozJZBbVqpm77vbOG6/r5dS7NBGZonwHfTLdBbsYc3rjmaQ4DpCXUa3tUc4RZHRORvZrw==} + dependencies: + '@babel/runtime': 7.22.10 + '@noble/curves': 1.1.0 + '@noble/hashes': 1.3.1 + '@solana/buffer-layout': 4.0.0 + agentkeepalive: 4.5.0 + bigint-buffer: 1.1.5 + bn.js: 5.2.1 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.3 + fast-stable-stringify: 1.0.0 + jayson: 4.1.0 + node-fetch: 2.6.12 + rpc-websockets: 7.5.1 + superstruct: 0.14.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + /@switchboard-xyz/common@2.3.2(@solana/web3.js@1.77.3): + resolution: {integrity: sha512-Vv/Som+QmOOpbvCTWO/FwJ9Bz6yYqBbLqo9T5UuO2JHqL/pBcvTrJGK2ERizTv3UEuHF7Z6zl0k/rdN+11hnyw==} engines: {node: '>=12'} dependencies: '@coral-xyz/borsh': 0.28.0(@solana/web3.js@1.77.3) @@ -1654,26 +1648,8 @@ packages: - '@solana/web3.js' dev: false - /@switchboard-xyz/common@2.3.0(@solana/web3.js@1.78.0): - resolution: {integrity: sha512-MIjsHv71tFyj6ZAVme35Con0IYTXMeGhWOzcc6s2oK6vPLTDiLMoS2DO0Ih/2y//O/m1Bz+YbSbXWbpSjvuP2g==} - engines: {node: '>=12'} - dependencies: - '@coral-xyz/borsh': 0.28.0(@solana/web3.js@1.78.0) - '@types/big.js': 6.1.6 - '@types/bn.js': 5.1.1 - big.js: 6.2.1 - bn.js: 5.2.1 - bs58: 5.0.0 - decimal.js: 10.4.3 - lodash: 4.17.21 - protobufjs: 7.2.4 - yaml: 2.2.1 - transitivePeerDependencies: - - '@solana/web3.js' - dev: false - - /@switchboard-xyz/common@2.3.0(@solana/web3.js@1.78.3): - resolution: {integrity: sha512-MIjsHv71tFyj6ZAVme35Con0IYTXMeGhWOzcc6s2oK6vPLTDiLMoS2DO0Ih/2y//O/m1Bz+YbSbXWbpSjvuP2g==} + /@switchboard-xyz/common@2.3.2(@solana/web3.js@1.78.3): + resolution: {integrity: sha512-Vv/Som+QmOOpbvCTWO/FwJ9Bz6yYqBbLqo9T5UuO2JHqL/pBcvTrJGK2ERizTv3UEuHF7Z6zl0k/rdN+11hnyw==} engines: {node: '>=12'} dependencies: '@coral-xyz/borsh': 0.28.0(@solana/web3.js@1.78.3) @@ -1690,15 +1666,33 @@ packages: - '@solana/web3.js' dev: false + /@switchboard-xyz/common@2.3.2(@solana/web3.js@1.78.4): + resolution: {integrity: sha512-Vv/Som+QmOOpbvCTWO/FwJ9Bz6yYqBbLqo9T5UuO2JHqL/pBcvTrJGK2ERizTv3UEuHF7Z6zl0k/rdN+11hnyw==} + engines: {node: '>=12'} + dependencies: + '@coral-xyz/borsh': 0.28.0(@solana/web3.js@1.78.4) + '@types/big.js': 6.1.6 + '@types/bn.js': 5.1.1 + big.js: 6.2.1 + bn.js: 5.2.1 + bs58: 5.0.0 + decimal.js: 10.4.3 + lodash: 4.17.21 + protobufjs: 7.2.4 + yaml: 2.2.1 + transitivePeerDependencies: + - '@solana/web3.js' + dev: false + /@switchboard-xyz/eslint-config@0.1.9: resolution: {integrity: sha512-ZvCAsXn4NsBCECWvew/GIrkvDGzPhhDzT77jkEKQ7Xd2ftrjFJOeYoREDQIOhD88uN3qBl0cIKHbS4t0amkzGw==} dependencies: - '@typescript-eslint/eslint-plugin': 6.3.0(@typescript-eslint/parser@6.3.0)(eslint@8.47.0)(typescript@5.1.6) - '@typescript-eslint/parser': 6.3.0(eslint@8.47.0)(typescript@5.0.4) - '@typescript-eslint/type-utils': 6.3.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/eslint-plugin': 6.4.0(@typescript-eslint/parser@6.4.0)(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.4.0(eslint@8.47.0)(typescript@5.0.4) + '@typescript-eslint/type-utils': 6.4.0(eslint@8.47.0)(typescript@5.1.6) eslint: 8.47.0 eslint-config-prettier: 9.0.0(eslint@8.47.0) - eslint-plugin-import: 2.28.0(@typescript-eslint/parser@6.3.0)(eslint@8.47.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.4.0)(eslint@8.47.0) eslint-plugin-node: 11.1.0(eslint@8.47.0) eslint-plugin-prettier: 5.0.0(eslint-config-prettier@9.0.0)(eslint@8.47.0)(prettier@2.8.8) eslint-plugin-simple-import-sort: 10.0.0(eslint@8.47.0) @@ -1824,6 +1818,7 @@ packages: /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + requiresBuild: true dev: true /@types/keyv@3.1.4: @@ -1904,8 +1899,8 @@ packages: '@types/node': 20.4.2 optional: true - /@typescript-eslint/eslint-plugin@6.3.0(@typescript-eslint/parser@6.3.0)(eslint@8.47.0)(typescript@5.1.6): - resolution: {integrity: sha512-IZYjYZ0ifGSLZbwMqIip/nOamFiWJ9AH+T/GYNZBWkVcyNQOFGtSMoWV7RvY4poYCMZ/4lHzNl796WOSNxmk8A==} + /@typescript-eslint/eslint-plugin@6.4.0(@typescript-eslint/parser@6.4.0)(eslint@8.47.0)(typescript@5.1.6): + resolution: {integrity: sha512-62o2Hmc7Gs3p8SLfbXcipjWAa6qk2wZGChXG2JbBtYpwSRmti/9KHLqfbLs9uDigOexG+3PaQ9G2g3201FWLKg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -1916,17 +1911,16 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.3.0(eslint@8.47.0)(typescript@5.0.4) - '@typescript-eslint/scope-manager': 6.3.0 - '@typescript-eslint/type-utils': 6.3.0(eslint@8.47.0)(typescript@5.1.6) - '@typescript-eslint/utils': 6.3.0(eslint@8.47.0)(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.3.0 + '@typescript-eslint/parser': 6.4.0(eslint@8.47.0)(typescript@5.0.4) + '@typescript-eslint/scope-manager': 6.4.0 + '@typescript-eslint/type-utils': 6.4.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/utils': 6.4.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.4.0 debug: 4.3.4(supports-color@8.1.1) eslint: 8.47.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 - natural-compare-lite: 1.4.0 semver: 7.5.4 ts-api-utils: 1.0.1(typescript@5.1.6) typescript: 5.1.6 @@ -1934,8 +1928,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.3.0(eslint@8.47.0)(typescript@5.0.4): - resolution: {integrity: sha512-ibP+y2Gr6p0qsUkhs7InMdXrwldjxZw66wpcQq9/PzAroM45wdwyu81T+7RibNCh8oc0AgrsyCwJByncY0Ongg==} + /@typescript-eslint/parser@6.4.0(eslint@8.47.0)(typescript@5.0.4): + resolution: {integrity: sha512-I1Ah1irl033uxjxO9Xql7+biL3YD7w9IU8zF+xlzD/YxY6a4b7DYA08PXUUCbm2sEljwJF6ERFy2kTGAGcNilg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1944,10 +1938,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.3.0 - '@typescript-eslint/types': 6.3.0 - '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.0.4) - '@typescript-eslint/visitor-keys': 6.3.0 + '@typescript-eslint/scope-manager': 6.4.0 + '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.0.4) + '@typescript-eslint/visitor-keys': 6.4.0 debug: 4.3.4(supports-color@8.1.1) eslint: 8.47.0 typescript: 5.0.4 @@ -1955,16 +1949,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.3.0: - resolution: {integrity: sha512-WlNFgBEuGu74ahrXzgefiz/QlVb+qg8KDTpknKwR7hMH+lQygWyx0CQFoUmMn1zDkQjTBBIn75IxtWss77iBIQ==} + /@typescript-eslint/scope-manager@6.4.0: + resolution: {integrity: sha512-TUS7vaKkPWDVvl7GDNHFQMsMruD+zhkd3SdVW0d7b+7Zo+bd/hXJQ8nsiUZMi1jloWo6c9qt3B7Sqo+flC1nig==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.3.0 - '@typescript-eslint/visitor-keys': 6.3.0 + '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/visitor-keys': 6.4.0 dev: true - /@typescript-eslint/type-utils@6.3.0(eslint@8.47.0)(typescript@5.1.6): - resolution: {integrity: sha512-7Oj+1ox1T2Yc8PKpBvOKWhoI/4rWFd1j7FA/rPE0lbBPXTKjdbtC+7Ev0SeBjEKkIhKWVeZSP+mR7y1Db1CdfQ==} + /@typescript-eslint/type-utils@6.4.0(eslint@8.47.0)(typescript@5.1.6): + resolution: {integrity: sha512-TvqrUFFyGY0cX3WgDHcdl2/mMCWCDv/0thTtx/ODMY1QhEiyFtv/OlLaNIiYLwRpAxAtOLOY9SUf1H3Q3dlwAg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1973,8 +1967,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.1.6) - '@typescript-eslint/utils': 6.3.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.1.6) + '@typescript-eslint/utils': 6.4.0(eslint@8.47.0)(typescript@5.1.6) debug: 4.3.4(supports-color@8.1.1) eslint: 8.47.0 ts-api-utils: 1.0.1(typescript@5.1.6) @@ -1983,13 +1977,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.3.0: - resolution: {integrity: sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg==} + /@typescript-eslint/types@6.4.0: + resolution: {integrity: sha512-+FV9kVFrS7w78YtzkIsNSoYsnOtrYVnKWSTVXoL1761CsCRv5wpDOINgsXpxD67YCLZtVQekDDyaxfjVWUJmmg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.3.0(typescript@5.0.4): - resolution: {integrity: sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg==} + /@typescript-eslint/typescript-estree@6.4.0(typescript@5.0.4): + resolution: {integrity: sha512-iDPJArf/K2sxvjOR6skeUCNgHR/tCQXBsa+ee1/clRKr3olZjZ/dSkXPZjG6YkPtnW6p5D1egeEPMCW6Gn4yLA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -1997,8 +1991,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.3.0 - '@typescript-eslint/visitor-keys': 6.3.0 + '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/visitor-keys': 6.4.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 @@ -2009,8 +2003,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.3.0(typescript@5.1.6): - resolution: {integrity: sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg==} + /@typescript-eslint/typescript-estree@6.4.0(typescript@5.1.6): + resolution: {integrity: sha512-iDPJArf/K2sxvjOR6skeUCNgHR/tCQXBsa+ee1/clRKr3olZjZ/dSkXPZjG6YkPtnW6p5D1egeEPMCW6Gn4yLA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2018,8 +2012,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.3.0 - '@typescript-eslint/visitor-keys': 6.3.0 + '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/visitor-keys': 6.4.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 @@ -2030,8 +2024,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.3.0(eslint@8.47.0)(typescript@5.1.6): - resolution: {integrity: sha512-hLLg3BZE07XHnpzglNBG8P/IXq/ZVXraEbgY7FM0Cnc1ehM8RMdn9mat3LubJ3KBeYXXPxV1nugWbQPjGeJk6Q==} + /@typescript-eslint/utils@6.4.0(eslint@8.47.0)(typescript@5.1.6): + resolution: {integrity: sha512-BvvwryBQpECPGo8PwF/y/q+yacg8Hn/2XS+DqL/oRsOPK+RPt29h5Ui5dqOKHDlbXrAeHUTnyG3wZA0KTDxRZw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2039,9 +2033,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 6.3.0 - '@typescript-eslint/types': 6.3.0 - '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.1.6) + '@typescript-eslint/scope-manager': 6.4.0 + '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.1.6) eslint: 8.47.0 semver: 7.5.4 transitivePeerDependencies: @@ -2049,11 +2043,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.3.0: - resolution: {integrity: sha512-kEhRRj7HnvaSjux1J9+7dBen15CdWmDnwrpyiHsFX6Qx2iW5LOBUgNefOFeh2PjWPlNwN8TOn6+4eBU3J/gupw==} + /@typescript-eslint/visitor-keys@6.4.0: + resolution: {integrity: sha512-yJSfyT+uJm+JRDWYRYdCm2i+pmvXJSMtPR9Cq5/XQs4QIgNoLcoRtDdzsLbLsFM/c6um6ohQkg/MLxWvoIndJA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.3.0 + '@typescript-eslint/types': 6.4.0 eslint-visitor-keys: 3.4.3 dev: true @@ -2137,8 +2131,8 @@ packages: hasBin: true dependencies: '@coral-xyz/anchor': 0.28.0 - '@coral-xyz/borsh': 0.28.0(@solana/web3.js@1.78.3) - '@solana/web3.js': 1.78.3 + '@coral-xyz/borsh': 0.28.0(@solana/web3.js@1.78.4) + '@solana/web3.js': 1.78.4 bn.js: 5.2.1 camelcase: 7.0.1 commander: 10.0.1 @@ -3169,13 +3163,13 @@ packages: resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} dependencies: debug: 3.2.7 - is-core-module: 2.12.1 + is-core-module: 2.13.0 resolve: 1.22.3 transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.3.0)(eslint-import-resolver-node@0.3.7)(eslint@8.47.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.4.0)(eslint-import-resolver-node@0.3.7)(eslint@8.47.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -3196,7 +3190,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.3.0(eslint@8.47.0)(typescript@5.0.4) + '@typescript-eslint/parser': 6.4.0(eslint@8.47.0)(typescript@5.0.4) debug: 3.2.7 eslint: 8.47.0 eslint-import-resolver-node: 0.3.7 @@ -3215,8 +3209,8 @@ packages: regexpp: 3.2.0 dev: true - /eslint-plugin-import@2.28.0(@typescript-eslint/parser@6.3.0)(eslint@8.47.0): - resolution: {integrity: sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q==} + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.4.0)(eslint@8.47.0): + resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -3225,7 +3219,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.3.0(eslint@8.47.0)(typescript@5.0.4) + '@typescript-eslint/parser': 6.4.0(eslint@8.47.0)(typescript@5.0.4) array-includes: 3.1.6 array.prototype.findlastindex: 1.2.2 array.prototype.flat: 1.3.1 @@ -3234,15 +3228,14 @@ packages: doctrine: 2.1.0 eslint: 8.47.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.3.0)(eslint-import-resolver-node@0.3.7)(eslint@8.47.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.4.0)(eslint-import-resolver-node@0.3.7)(eslint@8.47.0) has: 1.0.3 - is-core-module: 2.12.1 + is-core-module: 2.13.0 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.6 object.groupby: 1.0.0 object.values: 1.1.6 - resolve: 1.22.3 semver: 6.3.1 tsconfig-paths: 3.14.2 transitivePeerDependencies: @@ -4102,6 +4095,12 @@ packages: has: 1.0.3 dev: true + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + dependencies: + has: 1.0.3 + dev: true + /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} @@ -4366,6 +4365,7 @@ packages: /json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true + requiresBuild: true dependencies: minimist: 1.2.7 dev: true @@ -4782,10 +4782,6 @@ packages: hasBin: true dev: true - /natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - dev: true - /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -4825,6 +4821,7 @@ packages: /node-gyp-build@4.5.0: resolution: {integrity: sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==} hasBin: true + requiresBuild: true /normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} diff --git a/rust/switchboard-solana/README.md b/rust/switchboard-solana/README.md index 0c692af..e240d3b 100644 --- a/rust/switchboard-solana/README.md +++ b/rust/switchboard-solana/README.md @@ -1,25 +1,16 @@
-![Switchboard Logo](https://github.com/switchboard-xyz/sbv2-core/raw/main/website/static/img/icons/switchboard/avatar.png) +![Switchboard Logo](https://github.com/switchboard-xyz/core-sdk/raw/main/website/static/img/icons/switchboard/avatar.png) # switchboard-solana > A Rust library to interact with Switchboard accounts on Solana. -

- - Crates.io - -

+[![Crates.io Badge](https://img.shields.io/crates/v/switchboard-solana?label=switchboard-solana&logo=rust)](https://crates.io/crates/switchboard-solana) -

- - Discord - - - Twitter - -

+[![Discord Badge](https://img.shields.io/discord/841525135311634443?color=blueviolet&logo=discord&logoColor=white)](https://discord.gg/switchboardxyz) + +[![Twitter Badge](https://img.shields.io/twitter/follow/switchboardxyz?label=Follow+Switchboard)](https://twitter.com/switchboardxyz)

Typedocs: docs.rs/switchboard-solana @@ -27,6 +18,9 @@

Solana SDK: github.com/switchboard-xyz/solana-sdk

+

+ Switchboard Documentation: docs.switchboard.xyz +

## Install diff --git a/rust/switchboard-solana/src/attestation_program/accounts/attestation_queue.rs b/rust/switchboard-solana/src/attestation_program/accounts/attestation_queue.rs index 9136816..15fcca5 100644 --- a/rust/switchboard-solana/src/attestation_program/accounts/attestation_queue.rs +++ b/rust/switchboard-solana/src/attestation_program/accounts/attestation_queue.rs @@ -177,4 +177,4 @@ impl AttestationQueueAccountData { crate::client::load_account(client, pubkey).await } } -} \ No newline at end of file +}