chore: pull monorepo changes (#130)
* Project import generated by Copybara. GitOrigin-RevId: 38e6be703616d1edafd421b9939003ad03c96a7a * chore: Update pnpm lockfile --------- Co-authored-by: Copybara <copybara@example.com> Co-authored-by: gallynaut <gallynaut@users.noreply.github.com>
This commit is contained in:
parent
c955d0a547
commit
a99fe5a45d
|
@ -19,6 +19,6 @@ cpi = ["no-entrypoint"]
|
|||
default = []
|
||||
|
||||
[dependencies]
|
||||
switchboard-solana = "=0.28.6"
|
||||
switchboard-solana = { version = "=0.28.15", features = [ ] }
|
||||
# switchboard-solana = { version = "0.28.4", path = "../../../rust/switchboard-solana" }
|
||||
bytemuck = "^1"
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
"@coral-xyz/anchor": "^0.28.0",
|
||||
"@solana/spl-token": "^0.3.6",
|
||||
"@solana/web3.js": "^1.78.0",
|
||||
"@switchboard-xyz/solana.js": "workspace:^"
|
||||
"@switchboard-xyz/solana.js": "workspace:*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/bn.js": "^5.1.0",
|
||||
|
|
|
@ -16,6 +16,6 @@ futures = "0.3"
|
|||
serde = "^1"
|
||||
serde_json = "^1"
|
||||
switchboard-utils = "0.8.0"
|
||||
switchboard-solana = "=0.28.6"
|
||||
switchboard-solana = { version = "=0.28.15", features = [ "client" ] }
|
||||
# switchboard-solana = { version = "0.28.4", path = "../../../../rust/switchboard-solana" }
|
||||
# switchboard-utils = { version = "0.8.0", path = "../../../../../../rust/switchboard-utils" }
|
||||
|
|
|
@ -37,9 +37,9 @@ impl TriggerFunction<'_> {
|
|||
_params: &TriggerFunctionParams,
|
||||
) -> anchor_lang::Result<()> {
|
||||
FunctionTrigger {
|
||||
function: ctx.accounts.function.clone(),
|
||||
authority: ctx.accounts.authority.clone(),
|
||||
attestation_queue: ctx.accounts.attestation_queue.clone(),
|
||||
function: ctx.accounts.function.to_account_info(),
|
||||
authority: ctx.accounts.authority.to_account_info(),
|
||||
attestation_queue: ctx.accounts.attestation_queue.to_account_info(),
|
||||
}
|
||||
.invoke(ctx.accounts.attestation_program.clone())?;
|
||||
Ok(())
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@switchboard-xyz/solana.js",
|
||||
"version": "2.5.6",
|
||||
"version": "2.6.2",
|
||||
"author": "",
|
||||
"license": "MIT",
|
||||
"description": "A Typescript client to interact with Switchboard on Solana.",
|
||||
|
@ -29,7 +29,7 @@
|
|||
"@coral-xyz/borsh": "^0.28.0",
|
||||
"@solana/spl-token": "^0.3.8",
|
||||
"@solana/web3.js": "^1.78.3",
|
||||
"@switchboard-xyz/common": "^2.3.3",
|
||||
"@switchboard-xyz/common": "^2.3.6",
|
||||
"cron-validator": "^1.3.1",
|
||||
"dotenv": "^16.3.1",
|
||||
"lodash": "^4.17.21"
|
||||
|
|
|
@ -9,6 +9,7 @@ import type {
|
|||
} from "../TransactionObject.js";
|
||||
import { TransactionObject } from "../TransactionObject.js";
|
||||
import {
|
||||
containsMrEnclave,
|
||||
handleOptionalPubkeys,
|
||||
numToBN,
|
||||
parseCronSchedule,
|
||||
|
@ -225,10 +226,14 @@ export class FunctionAccount extends Account<types.FunctionAccountData> {
|
|||
creatorSeed: Uint8Array,
|
||||
recentSlot: BN
|
||||
): FunctionAccount {
|
||||
if (creatorSeed.length > 32) {
|
||||
throw new Error("Creator seed must be 32 bytes or less");
|
||||
}
|
||||
|
||||
const functionPubkey = anchor.web3.PublicKey.findProgramAddressSync(
|
||||
[
|
||||
Buffer.from("FunctionAccountData"),
|
||||
creatorSeed,
|
||||
creatorSeed.length < 32 ? parseRawBuffer(creatorSeed, 32) : creatorSeed,
|
||||
recentSlot.toBuffer("le", 8),
|
||||
],
|
||||
program.attestationProgramId
|
||||
|
@ -284,10 +289,12 @@ export class FunctionAccount extends Account<types.FunctionAccountData> {
|
|||
throw new errors.AccountNotFoundError("Function", PublicKey.default);
|
||||
}
|
||||
|
||||
assert(data.creatorSeed.length === 32);
|
||||
|
||||
const functionAccount = FunctionAccount.fromSeed(
|
||||
program,
|
||||
new Uint8Array(data.creatorSeed),
|
||||
data.createdAt
|
||||
data.createdAtSlot
|
||||
);
|
||||
|
||||
functionAccount._wallet = Promise.resolve(
|
||||
|
@ -556,6 +563,138 @@ export class FunctionAccount extends Account<types.FunctionAccountData> {
|
|||
).then((txn) => this.program.signAndSend(txn, options));
|
||||
}
|
||||
|
||||
public static hasMrEnclave(
|
||||
mrEnclaves: Array<number[]>,
|
||||
targetMrEnclave: number[] | Uint8Array
|
||||
): boolean {
|
||||
return containsMrEnclave(mrEnclaves, targetMrEnclave);
|
||||
}
|
||||
|
||||
public async addMrEnclaveInstruction(
|
||||
payer: PublicKey,
|
||||
mrEnclave: number[] | Uint8Array,
|
||||
params?: {
|
||||
// Optional authority if needing to change config and payer is not the authority
|
||||
authority?: Keypair;
|
||||
// Pre-fetched account state to reduce network calls
|
||||
functionState?: types.FunctionAccountData;
|
||||
// Force remove a MrEnclave if full
|
||||
force?: boolean;
|
||||
},
|
||||
options?: TransactionObjectOptions
|
||||
): Promise<TransactionObject> {
|
||||
const force = params?.force ?? false;
|
||||
const functionState = params?.functionState ?? (await this.loadData());
|
||||
|
||||
if (FunctionAccount.hasMrEnclave(functionState.mrEnclaves, mrEnclave)) {
|
||||
throw new errors.FunctionMrEnclaveAlreadySet();
|
||||
}
|
||||
|
||||
const filteredMrEnclaves = functionState.mrEnclaves.filter(
|
||||
(arr) => !arr.every((num) => num === 0)
|
||||
);
|
||||
if (filteredMrEnclaves.length >= 32 && !force) {
|
||||
throw new errors.FunctionMrEnclavesFull();
|
||||
}
|
||||
|
||||
const newMrEnclaves = [
|
||||
...(filteredMrEnclaves.length >= 32
|
||||
? filteredMrEnclaves.slice(filteredMrEnclaves.length - 32 + 1)
|
||||
: filteredMrEnclaves),
|
||||
Array.from(mrEnclave),
|
||||
];
|
||||
|
||||
if (params?.authority) {
|
||||
if (!params.authority.publicKey.equals(functionState.authority)) {
|
||||
throw new errors.IncorrectAuthority(
|
||||
functionState.authority,
|
||||
params.authority.publicKey
|
||||
);
|
||||
}
|
||||
} else {
|
||||
if (!payer.equals(functionState.authority)) {
|
||||
throw new errors.IncorrectAuthority(functionState.authority, payer);
|
||||
}
|
||||
}
|
||||
|
||||
const setConfigIxn = types.functionSetConfig(
|
||||
this.program,
|
||||
{
|
||||
params: {
|
||||
name: null,
|
||||
metadata: null,
|
||||
container: null,
|
||||
containerRegistry: null,
|
||||
version: null,
|
||||
schedule: null,
|
||||
mrEnclaves: newMrEnclaves,
|
||||
requestsDisabled: null,
|
||||
requestsRequireAuthorization: null,
|
||||
requestsFee: null,
|
||||
},
|
||||
},
|
||||
{
|
||||
function: this.publicKey,
|
||||
authority: functionState.authority,
|
||||
}
|
||||
);
|
||||
|
||||
return new TransactionObject(
|
||||
payer,
|
||||
[setConfigIxn],
|
||||
params?.authority ? [params.authority] : [],
|
||||
options
|
||||
);
|
||||
}
|
||||
|
||||
public async addMrEnclave(
|
||||
mrEnclave: number[] | Uint8Array,
|
||||
params?: {
|
||||
// Optional authority if needing to change config and payer is not the authority
|
||||
authority?: Keypair;
|
||||
// Pre-fetched account state to reduce network calls
|
||||
functionState?: types.FunctionAccountData;
|
||||
// Force remove a MrEnclave if full
|
||||
force?: boolean;
|
||||
},
|
||||
options?: SendTransactionObjectOptions
|
||||
): Promise<TransactionSignature> {
|
||||
return await this.addMrEnclaveInstruction(
|
||||
this.program.walletPubkey,
|
||||
mrEnclave,
|
||||
params,
|
||||
options
|
||||
).then((txn) => this.program.signAndSend(txn, options));
|
||||
}
|
||||
|
||||
/**
|
||||
* Try to add a MrEnclave to the function config, if it is not already present. Returns undefined
|
||||
* if MrEnclave is already in the config.
|
||||
*/
|
||||
public async tryAddMrEnclave(
|
||||
mrEnclave: number[] | Uint8Array,
|
||||
params?: {
|
||||
// Optional authority if needing to change config and payer is not the authority
|
||||
authority?: Keypair;
|
||||
// Pre-fetched account state to reduce network calls
|
||||
functionState?: types.FunctionAccountData;
|
||||
// Force remove a MrEnclave if full
|
||||
force?: boolean;
|
||||
},
|
||||
options?: SendTransactionObjectOptions
|
||||
): Promise<TransactionSignature | undefined> {
|
||||
const functionState = params?.functionState ?? (await this.loadData());
|
||||
if (FunctionAccount.hasMrEnclave(functionState.mrEnclaves, mrEnclave)) {
|
||||
return undefined;
|
||||
}
|
||||
return await this.addMrEnclaveInstruction(
|
||||
this.program.walletPubkey,
|
||||
mrEnclave,
|
||||
params,
|
||||
options
|
||||
).then((txn) => this.program.signAndSend(txn, options));
|
||||
}
|
||||
|
||||
public async setEscrowInstruction(
|
||||
payer: PublicKey,
|
||||
params: FunctionSetEscrowParams,
|
||||
|
|
|
@ -106,6 +106,24 @@ export class InvalidCronSchedule extends Error {
|
|||
super(
|
||||
`invalid cron schedule, expected format: '* * * * * *', received: ${schedule}`
|
||||
);
|
||||
Object.setPrototypeOf(this, IncorrectOwner.prototype);
|
||||
Object.setPrototypeOf(this, InvalidCronSchedule.prototype);
|
||||
}
|
||||
}
|
||||
|
||||
export class FunctionMrEnclaveAlreadySet extends Error {
|
||||
constructor() {
|
||||
super(
|
||||
`Function already has this mrEnclave in its config, no action needed`
|
||||
);
|
||||
Object.setPrototypeOf(this, FunctionMrEnclaveAlreadySet.prototype);
|
||||
}
|
||||
}
|
||||
|
||||
export class FunctionMrEnclavesFull extends Error {
|
||||
constructor() {
|
||||
super(
|
||||
`Function already has the maximum number of mrEnclaves in its config - try removing one or using force to remove the first MrEnclave in its config`
|
||||
);
|
||||
Object.setPrototypeOf(this, FunctionMrEnclavesFull.prototype);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -74,14 +74,37 @@ export class NonExecutable {
|
|||
}
|
||||
}
|
||||
|
||||
export interface None3JSON {
|
||||
kind: "None3";
|
||||
}
|
||||
|
||||
export class None3 {
|
||||
static readonly discriminator = 3;
|
||||
static readonly kind = "None3";
|
||||
readonly discriminator = 3;
|
||||
readonly kind = "None3";
|
||||
|
||||
toJSON(): None3JSON {
|
||||
return {
|
||||
kind: "None3",
|
||||
};
|
||||
}
|
||||
|
||||
toEncodable() {
|
||||
return {
|
||||
None3: {},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export interface ExpiredJSON {
|
||||
kind: "Expired";
|
||||
}
|
||||
|
||||
export class Expired {
|
||||
static readonly discriminator = 3;
|
||||
static readonly discriminator = 4;
|
||||
static readonly kind = "Expired";
|
||||
readonly discriminator = 3;
|
||||
readonly discriminator = 4;
|
||||
readonly kind = "Expired";
|
||||
|
||||
toJSON(): ExpiredJSON {
|
||||
|
@ -97,14 +120,83 @@ export class Expired {
|
|||
}
|
||||
}
|
||||
|
||||
export interface None5JSON {
|
||||
kind: "None5";
|
||||
}
|
||||
|
||||
export class None5 {
|
||||
static readonly discriminator = 5;
|
||||
static readonly kind = "None5";
|
||||
readonly discriminator = 5;
|
||||
readonly kind = "None5";
|
||||
|
||||
toJSON(): None5JSON {
|
||||
return {
|
||||
kind: "None5",
|
||||
};
|
||||
}
|
||||
|
||||
toEncodable() {
|
||||
return {
|
||||
None5: {},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export interface None6JSON {
|
||||
kind: "None6";
|
||||
}
|
||||
|
||||
export class None6 {
|
||||
static readonly discriminator = 6;
|
||||
static readonly kind = "None6";
|
||||
readonly discriminator = 6;
|
||||
readonly kind = "None6";
|
||||
|
||||
toJSON(): None6JSON {
|
||||
return {
|
||||
kind: "None6",
|
||||
};
|
||||
}
|
||||
|
||||
toEncodable() {
|
||||
return {
|
||||
None6: {},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export interface None7JSON {
|
||||
kind: "None7";
|
||||
}
|
||||
|
||||
export class None7 {
|
||||
static readonly discriminator = 7;
|
||||
static readonly kind = "None7";
|
||||
readonly discriminator = 7;
|
||||
readonly kind = "None7";
|
||||
|
||||
toJSON(): None7JSON {
|
||||
return {
|
||||
kind: "None7",
|
||||
};
|
||||
}
|
||||
|
||||
toEncodable() {
|
||||
return {
|
||||
None7: {},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export interface OutOfFundsJSON {
|
||||
kind: "OutOfFunds";
|
||||
}
|
||||
|
||||
export class OutOfFunds {
|
||||
static readonly discriminator = 4;
|
||||
static readonly discriminator = 8;
|
||||
static readonly kind = "OutOfFunds";
|
||||
readonly discriminator = 4;
|
||||
readonly discriminator = 8;
|
||||
readonly kind = "OutOfFunds";
|
||||
|
||||
toJSON(): OutOfFundsJSON {
|
||||
|
@ -120,14 +212,175 @@ export class OutOfFunds {
|
|||
}
|
||||
}
|
||||
|
||||
export interface None9JSON {
|
||||
kind: "None9";
|
||||
}
|
||||
|
||||
export class None9 {
|
||||
static readonly discriminator = 9;
|
||||
static readonly kind = "None9";
|
||||
readonly discriminator = 9;
|
||||
readonly kind = "None9";
|
||||
|
||||
toJSON(): None9JSON {
|
||||
return {
|
||||
kind: "None9",
|
||||
};
|
||||
}
|
||||
|
||||
toEncodable() {
|
||||
return {
|
||||
None9: {},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export interface None10JSON {
|
||||
kind: "None10";
|
||||
}
|
||||
|
||||
export class None10 {
|
||||
static readonly discriminator = 10;
|
||||
static readonly kind = "None10";
|
||||
readonly discriminator = 10;
|
||||
readonly kind = "None10";
|
||||
|
||||
toJSON(): None10JSON {
|
||||
return {
|
||||
kind: "None10",
|
||||
};
|
||||
}
|
||||
|
||||
toEncodable() {
|
||||
return {
|
||||
None10: {},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export interface None11JSON {
|
||||
kind: "None11";
|
||||
}
|
||||
|
||||
export class None11 {
|
||||
static readonly discriminator = 11;
|
||||
static readonly kind = "None11";
|
||||
readonly discriminator = 11;
|
||||
readonly kind = "None11";
|
||||
|
||||
toJSON(): None11JSON {
|
||||
return {
|
||||
kind: "None11",
|
||||
};
|
||||
}
|
||||
|
||||
toEncodable() {
|
||||
return {
|
||||
None11: {},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export interface None12JSON {
|
||||
kind: "None12";
|
||||
}
|
||||
|
||||
export class None12 {
|
||||
static readonly discriminator = 12;
|
||||
static readonly kind = "None12";
|
||||
readonly discriminator = 12;
|
||||
readonly kind = "None12";
|
||||
|
||||
toJSON(): None12JSON {
|
||||
return {
|
||||
kind: "None12",
|
||||
};
|
||||
}
|
||||
|
||||
toEncodable() {
|
||||
return {
|
||||
None12: {},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export interface None13JSON {
|
||||
kind: "None13";
|
||||
}
|
||||
|
||||
export class None13 {
|
||||
static readonly discriminator = 13;
|
||||
static readonly kind = "None13";
|
||||
readonly discriminator = 13;
|
||||
readonly kind = "None13";
|
||||
|
||||
toJSON(): None13JSON {
|
||||
return {
|
||||
kind: "None13",
|
||||
};
|
||||
}
|
||||
|
||||
toEncodable() {
|
||||
return {
|
||||
None13: {},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export interface None14JSON {
|
||||
kind: "None14";
|
||||
}
|
||||
|
||||
export class None14 {
|
||||
static readonly discriminator = 14;
|
||||
static readonly kind = "None14";
|
||||
readonly discriminator = 14;
|
||||
readonly kind = "None14";
|
||||
|
||||
toJSON(): None14JSON {
|
||||
return {
|
||||
kind: "None14",
|
||||
};
|
||||
}
|
||||
|
||||
toEncodable() {
|
||||
return {
|
||||
None14: {},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export interface None15JSON {
|
||||
kind: "None15";
|
||||
}
|
||||
|
||||
export class None15 {
|
||||
static readonly discriminator = 15;
|
||||
static readonly kind = "None15";
|
||||
readonly discriminator = 15;
|
||||
readonly kind = "None15";
|
||||
|
||||
toJSON(): None15JSON {
|
||||
return {
|
||||
kind: "None15",
|
||||
};
|
||||
}
|
||||
|
||||
toEncodable() {
|
||||
return {
|
||||
None15: {},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export interface InvalidPermissionsJSON {
|
||||
kind: "InvalidPermissions";
|
||||
}
|
||||
|
||||
export class InvalidPermissions {
|
||||
static readonly discriminator = 5;
|
||||
static readonly discriminator = 16;
|
||||
static readonly kind = "InvalidPermissions";
|
||||
readonly discriminator = 5;
|
||||
readonly discriminator = 16;
|
||||
readonly kind = "InvalidPermissions";
|
||||
|
||||
toJSON(): InvalidPermissionsJSON {
|
||||
|
@ -158,12 +411,45 @@ export function fromDecoded(obj: any): types.FunctionStatusKind {
|
|||
if ("NonExecutable" in obj) {
|
||||
return new NonExecutable();
|
||||
}
|
||||
if ("None3" in obj) {
|
||||
return new None3();
|
||||
}
|
||||
if ("Expired" in obj) {
|
||||
return new Expired();
|
||||
}
|
||||
if ("None5" in obj) {
|
||||
return new None5();
|
||||
}
|
||||
if ("None6" in obj) {
|
||||
return new None6();
|
||||
}
|
||||
if ("None7" in obj) {
|
||||
return new None7();
|
||||
}
|
||||
if ("OutOfFunds" in obj) {
|
||||
return new OutOfFunds();
|
||||
}
|
||||
if ("None9" in obj) {
|
||||
return new None9();
|
||||
}
|
||||
if ("None10" in obj) {
|
||||
return new None10();
|
||||
}
|
||||
if ("None11" in obj) {
|
||||
return new None11();
|
||||
}
|
||||
if ("None12" in obj) {
|
||||
return new None12();
|
||||
}
|
||||
if ("None13" in obj) {
|
||||
return new None13();
|
||||
}
|
||||
if ("None14" in obj) {
|
||||
return new None14();
|
||||
}
|
||||
if ("None15" in obj) {
|
||||
return new None15();
|
||||
}
|
||||
if ("InvalidPermissions" in obj) {
|
||||
return new InvalidPermissions();
|
||||
}
|
||||
|
@ -184,12 +470,45 @@ export function fromJSON(
|
|||
case "NonExecutable": {
|
||||
return new NonExecutable();
|
||||
}
|
||||
case "None3": {
|
||||
return new None3();
|
||||
}
|
||||
case "Expired": {
|
||||
return new Expired();
|
||||
}
|
||||
case "None5": {
|
||||
return new None5();
|
||||
}
|
||||
case "None6": {
|
||||
return new None6();
|
||||
}
|
||||
case "None7": {
|
||||
return new None7();
|
||||
}
|
||||
case "OutOfFunds": {
|
||||
return new OutOfFunds();
|
||||
}
|
||||
case "None9": {
|
||||
return new None9();
|
||||
}
|
||||
case "None10": {
|
||||
return new None10();
|
||||
}
|
||||
case "None11": {
|
||||
return new None11();
|
||||
}
|
||||
case "None12": {
|
||||
return new None12();
|
||||
}
|
||||
case "None13": {
|
||||
return new None13();
|
||||
}
|
||||
case "None14": {
|
||||
return new None14();
|
||||
}
|
||||
case "None15": {
|
||||
return new None15();
|
||||
}
|
||||
case "InvalidPermissions": {
|
||||
return new InvalidPermissions();
|
||||
}
|
||||
|
@ -201,8 +520,19 @@ export function layout(property?: string) {
|
|||
borsh.struct([], "None"),
|
||||
borsh.struct([], "Active"),
|
||||
borsh.struct([], "NonExecutable"),
|
||||
borsh.struct([], "None3"),
|
||||
borsh.struct([], "Expired"),
|
||||
borsh.struct([], "None5"),
|
||||
borsh.struct([], "None6"),
|
||||
borsh.struct([], "None7"),
|
||||
borsh.struct([], "OutOfFunds"),
|
||||
borsh.struct([], "None9"),
|
||||
borsh.struct([], "None10"),
|
||||
borsh.struct([], "None11"),
|
||||
borsh.struct([], "None12"),
|
||||
borsh.struct([], "None13"),
|
||||
borsh.struct([], "None14"),
|
||||
borsh.struct([], "None15"),
|
||||
borsh.struct([], "InvalidPermissions"),
|
||||
]);
|
||||
if (property !== undefined) {
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
import { SwitchboardProgram } from "../../../SwitchboardProgram.js";
|
||||
|
||||
import type * as types from "./index.js"; // eslint-disable-line @typescript-eslint/no-unused-vars
|
||||
import type * as types from "./index.js";
|
||||
|
||||
import * as borsh from "@coral-xyz/borsh";
|
||||
import { PublicKey } from "@solana/web3.js"; // eslint-disable-line @typescript-eslint/no-unused-vars
|
||||
import { BN } from "@switchboard-xyz/common"; // eslint-disable-line @typescript-eslint/no-unused-vars
|
||||
|
||||
export interface NoneJSON {
|
||||
kind: "None";
|
||||
|
@ -75,6 +71,29 @@ export class VerificationFailure {
|
|||
}
|
||||
}
|
||||
|
||||
export interface None3JSON {
|
||||
kind: "None3";
|
||||
}
|
||||
|
||||
export class None3 {
|
||||
static readonly discriminator = 3;
|
||||
static readonly kind = "None3";
|
||||
readonly discriminator = 3;
|
||||
readonly kind = "None3";
|
||||
|
||||
toJSON(): None3JSON {
|
||||
return {
|
||||
kind: "None3",
|
||||
};
|
||||
}
|
||||
|
||||
toEncodable() {
|
||||
return {
|
||||
None3: {},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export interface VerificationSuccessJSON {
|
||||
kind: "VerificationSuccess";
|
||||
}
|
||||
|
@ -98,6 +117,75 @@ export class VerificationSuccess {
|
|||
}
|
||||
}
|
||||
|
||||
export interface None5JSON {
|
||||
kind: "None5";
|
||||
}
|
||||
|
||||
export class None5 {
|
||||
static readonly discriminator = 5;
|
||||
static readonly kind = "None5";
|
||||
readonly discriminator = 5;
|
||||
readonly kind = "None5";
|
||||
|
||||
toJSON(): None5JSON {
|
||||
return {
|
||||
kind: "None5",
|
||||
};
|
||||
}
|
||||
|
||||
toEncodable() {
|
||||
return {
|
||||
None5: {},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export interface None6JSON {
|
||||
kind: "None6";
|
||||
}
|
||||
|
||||
export class None6 {
|
||||
static readonly discriminator = 6;
|
||||
static readonly kind = "None6";
|
||||
readonly discriminator = 6;
|
||||
readonly kind = "None6";
|
||||
|
||||
toJSON(): None6JSON {
|
||||
return {
|
||||
kind: "None6",
|
||||
};
|
||||
}
|
||||
|
||||
toEncodable() {
|
||||
return {
|
||||
None6: {},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export interface None7JSON {
|
||||
kind: "None7";
|
||||
}
|
||||
|
||||
export class None7 {
|
||||
static readonly discriminator = 7;
|
||||
static readonly kind = "None7";
|
||||
readonly discriminator = 7;
|
||||
readonly kind = "None7";
|
||||
|
||||
toJSON(): None7JSON {
|
||||
return {
|
||||
kind: "None7",
|
||||
};
|
||||
}
|
||||
|
||||
toEncodable() {
|
||||
return {
|
||||
None7: {},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export interface VerificationOverrideJSON {
|
||||
kind: "VerificationOverride";
|
||||
}
|
||||
|
@ -136,9 +224,21 @@ export function fromDecoded(obj: any): types.VerificationStatusKind {
|
|||
if ("VerificationFailure" in obj) {
|
||||
return new VerificationFailure();
|
||||
}
|
||||
if ("None3" in obj) {
|
||||
return new None3();
|
||||
}
|
||||
if ("VerificationSuccess" in obj) {
|
||||
return new VerificationSuccess();
|
||||
}
|
||||
if ("None5" in obj) {
|
||||
return new None5();
|
||||
}
|
||||
if ("None6" in obj) {
|
||||
return new None6();
|
||||
}
|
||||
if ("None7" in obj) {
|
||||
return new None7();
|
||||
}
|
||||
if ("VerificationOverride" in obj) {
|
||||
return new VerificationOverride();
|
||||
}
|
||||
|
@ -159,9 +259,21 @@ export function fromJSON(
|
|||
case "VerificationFailure": {
|
||||
return new VerificationFailure();
|
||||
}
|
||||
case "None3": {
|
||||
return new None3();
|
||||
}
|
||||
case "VerificationSuccess": {
|
||||
return new VerificationSuccess();
|
||||
}
|
||||
case "None5": {
|
||||
return new None5();
|
||||
}
|
||||
case "None6": {
|
||||
return new None6();
|
||||
}
|
||||
case "None7": {
|
||||
return new None7();
|
||||
}
|
||||
case "VerificationOverride": {
|
||||
return new VerificationOverride();
|
||||
}
|
||||
|
@ -173,7 +285,11 @@ export function layout(property?: string) {
|
|||
borsh.struct([], "None"),
|
||||
borsh.struct([], "VerificationPending"),
|
||||
borsh.struct([], "VerificationFailure"),
|
||||
borsh.struct([], "None3"),
|
||||
borsh.struct([], "VerificationSuccess"),
|
||||
borsh.struct([], "None5"),
|
||||
borsh.struct([], "None6"),
|
||||
borsh.struct([], "None7"),
|
||||
borsh.struct([], "VerificationOverride"),
|
||||
]);
|
||||
if (property !== undefined) {
|
||||
|
|
|
@ -162,15 +162,37 @@ export type FunctionStatusKind =
|
|||
| FunctionStatus.None
|
||||
| FunctionStatus.Active
|
||||
| FunctionStatus.NonExecutable
|
||||
| FunctionStatus.None3
|
||||
| FunctionStatus.Expired
|
||||
| FunctionStatus.None5
|
||||
| FunctionStatus.None6
|
||||
| FunctionStatus.None7
|
||||
| FunctionStatus.OutOfFunds
|
||||
| FunctionStatus.None9
|
||||
| FunctionStatus.None10
|
||||
| FunctionStatus.None11
|
||||
| FunctionStatus.None12
|
||||
| FunctionStatus.None13
|
||||
| FunctionStatus.None14
|
||||
| FunctionStatus.None15
|
||||
| FunctionStatus.InvalidPermissions;
|
||||
export type FunctionStatusJSON =
|
||||
| FunctionStatus.NoneJSON
|
||||
| FunctionStatus.ActiveJSON
|
||||
| FunctionStatus.NonExecutableJSON
|
||||
| FunctionStatus.None3JSON
|
||||
| FunctionStatus.ExpiredJSON
|
||||
| FunctionStatus.None5JSON
|
||||
| FunctionStatus.None6JSON
|
||||
| FunctionStatus.None7JSON
|
||||
| FunctionStatus.OutOfFundsJSON
|
||||
| FunctionStatus.None9JSON
|
||||
| FunctionStatus.None10JSON
|
||||
| FunctionStatus.None11JSON
|
||||
| FunctionStatus.None12JSON
|
||||
| FunctionStatus.None13JSON
|
||||
| FunctionStatus.None14JSON
|
||||
| FunctionStatus.None15JSON
|
||||
| FunctionStatus.InvalidPermissionsJSON;
|
||||
|
||||
export { FundingStatus };
|
||||
|
@ -203,13 +225,21 @@ export type VerificationStatusKind =
|
|||
| VerificationStatus.None
|
||||
| VerificationStatus.VerificationPending
|
||||
| VerificationStatus.VerificationFailure
|
||||
| VerificationStatus.None3
|
||||
| VerificationStatus.VerificationSuccess
|
||||
| VerificationStatus.None5
|
||||
| VerificationStatus.None6
|
||||
| VerificationStatus.None7
|
||||
| VerificationStatus.VerificationOverride;
|
||||
export type VerificationStatusJSON =
|
||||
| VerificationStatus.NoneJSON
|
||||
| VerificationStatus.VerificationPendingJSON
|
||||
| VerificationStatus.VerificationFailureJSON
|
||||
| VerificationStatus.None3JSON
|
||||
| VerificationStatus.VerificationSuccessJSON
|
||||
| VerificationStatus.None5JSON
|
||||
| VerificationStatus.None6JSON
|
||||
| VerificationStatus.None7JSON
|
||||
| VerificationStatus.VerificationOverrideJSON;
|
||||
|
||||
export { SwitchboardAttestationPermission };
|
||||
|
|
|
@ -244,6 +244,19 @@ export function parseRawBuffer(rawBuffer: RawBuffer, size = 32): Uint8Array {
|
|||
);
|
||||
}
|
||||
|
||||
export function containsMrEnclave(
|
||||
mrEnclaves: number[][],
|
||||
targetMrEnclave: number[] | Uint8Array
|
||||
): boolean {
|
||||
return mrEnclaves.some((arr) => {
|
||||
if (arr.length !== targetMrEnclave.length) return false;
|
||||
for (let i = 0; i < arr.length; i++) {
|
||||
if (arr[i] !== targetMrEnclave[i]) return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate a cron schedule and return a valid 6 element cron string which includes seconds
|
||||
* @param cronSchedule - the cron string to validate
|
||||
|
|
123
pnpm-lock.yaml
123
pnpm-lock.yaml
|
@ -149,7 +149,7 @@ importers:
|
|||
specifier: ^1.78.0
|
||||
version: 1.78.3
|
||||
'@switchboard-xyz/solana.js':
|
||||
specifier: workspace:^
|
||||
specifier: workspace:*
|
||||
version: link:../../../javascript/solana.js
|
||||
devDependencies:
|
||||
'@types/bn.js':
|
||||
|
@ -476,8 +476,8 @@ importers:
|
|||
specifier: ^1.78.3
|
||||
version: 1.78.3
|
||||
'@switchboard-xyz/common':
|
||||
specifier: ^2.3.3
|
||||
version: 2.3.3(@solana/web3.js@1.78.3)
|
||||
specifier: ^2.3.6
|
||||
version: 2.3.6
|
||||
cron-validator:
|
||||
specifier: ^1.3.1
|
||||
version: 1.3.1
|
||||
|
@ -1661,15 +1661,28 @@ packages:
|
|||
- '@solana/web3.js'
|
||||
dev: false
|
||||
|
||||
/@switchboard-xyz/common@2.3.6:
|
||||
resolution: {integrity: sha512-q5cAw9VLbnPdjOPKvzlQzYWdmR8zXip9GvUr8mSaKs2x59ZtSmufpPoMw555vbW6HdfyA18Ix/A1Bboyzj/cXA==}
|
||||
engines: {node: '>=12'}
|
||||
dependencies:
|
||||
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
|
||||
dev: false
|
||||
|
||||
/@switchboard-xyz/eslint-config@0.1.9:
|
||||
resolution: {integrity: sha512-ZvCAsXn4NsBCECWvew/GIrkvDGzPhhDzT77jkEKQ7Xd2ftrjFJOeYoREDQIOhD88uN3qBl0cIKHbS4t0amkzGw==}
|
||||
dependencies:
|
||||
'@typescript-eslint/eslint-plugin': 6.6.0(@typescript-eslint/parser@6.6.0)(eslint@8.49.0)(typescript@5.1.6)
|
||||
'@typescript-eslint/parser': 6.6.0(eslint@8.49.0)(typescript@5.0.4)
|
||||
'@typescript-eslint/type-utils': 6.6.0(eslint@8.49.0)(typescript@5.1.6)
|
||||
'@typescript-eslint/eslint-plugin': 6.7.0(@typescript-eslint/parser@6.7.0)(eslint@8.49.0)(typescript@5.1.6)
|
||||
'@typescript-eslint/parser': 6.7.0(eslint@8.49.0)(typescript@5.0.4)
|
||||
'@typescript-eslint/type-utils': 6.7.0(eslint@8.49.0)(typescript@5.1.6)
|
||||
eslint: 8.49.0
|
||||
eslint-config-prettier: 9.0.0(eslint@8.49.0)
|
||||
eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.6.0)(eslint@8.49.0)
|
||||
eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.0)(eslint@8.49.0)
|
||||
eslint-plugin-node: 11.1.0(eslint@8.49.0)
|
||||
eslint-plugin-prettier: 5.0.0(eslint-config-prettier@9.0.0)(eslint@8.49.0)(prettier@2.8.8)
|
||||
eslint-plugin-simple-import-sort: 10.0.0(eslint@8.49.0)
|
||||
|
@ -1876,8 +1889,8 @@ packages:
|
|||
'@types/node': 20.4.2
|
||||
optional: true
|
||||
|
||||
/@typescript-eslint/eslint-plugin@6.6.0(@typescript-eslint/parser@6.6.0)(eslint@8.49.0)(typescript@5.1.6):
|
||||
resolution: {integrity: sha512-CW9YDGTQnNYMIo5lMeuiIG08p4E0cXrXTbcZ2saT/ETE7dWUrNxlijsQeU04qAAKkILiLzdQz+cGFxCJjaZUmA==}
|
||||
/@typescript-eslint/eslint-plugin@6.7.0(@typescript-eslint/parser@6.7.0)(eslint@8.49.0)(typescript@5.1.6):
|
||||
resolution: {integrity: sha512-gUqtknHm0TDs1LhY12K2NA3Rmlmp88jK9Tx8vGZMfHeNMLE3GH2e9TRub+y+SOjuYgtOmok+wt1AyDPZqxbNag==}
|
||||
engines: {node: ^16.0.0 || >=18.0.0}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
|
||||
|
@ -1888,11 +1901,11 @@ packages:
|
|||
optional: true
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.6.2
|
||||
'@typescript-eslint/parser': 6.6.0(eslint@8.49.0)(typescript@5.0.4)
|
||||
'@typescript-eslint/scope-manager': 6.6.0
|
||||
'@typescript-eslint/type-utils': 6.6.0(eslint@8.49.0)(typescript@5.1.6)
|
||||
'@typescript-eslint/utils': 6.6.0(eslint@8.49.0)(typescript@5.1.6)
|
||||
'@typescript-eslint/visitor-keys': 6.6.0
|
||||
'@typescript-eslint/parser': 6.7.0(eslint@8.49.0)(typescript@5.0.4)
|
||||
'@typescript-eslint/scope-manager': 6.7.0
|
||||
'@typescript-eslint/type-utils': 6.7.0(eslint@8.49.0)(typescript@5.1.6)
|
||||
'@typescript-eslint/utils': 6.7.0(eslint@8.49.0)(typescript@5.1.6)
|
||||
'@typescript-eslint/visitor-keys': 6.7.0
|
||||
debug: 4.3.4(supports-color@8.1.1)
|
||||
eslint: 8.49.0
|
||||
graphemer: 1.4.0
|
||||
|
@ -1905,8 +1918,8 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/parser@6.6.0(eslint@8.49.0)(typescript@5.0.4):
|
||||
resolution: {integrity: sha512-setq5aJgUwtzGrhW177/i+DMLqBaJbdwGj2CPIVFFLE0NCliy5ujIdLHd2D1ysmlmsjdL2GWW+hR85neEfc12w==}
|
||||
/@typescript-eslint/parser@6.7.0(eslint@8.49.0)(typescript@5.0.4):
|
||||
resolution: {integrity: sha512-jZKYwqNpNm5kzPVP5z1JXAuxjtl2uG+5NpaMocFPTNC2EdYIgbXIPImObOkhbONxtFTTdoZstLZefbaK+wXZng==}
|
||||
engines: {node: ^16.0.0 || >=18.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^7.0.0 || ^8.0.0
|
||||
|
@ -1915,10 +1928,10 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/scope-manager': 6.6.0
|
||||
'@typescript-eslint/types': 6.6.0
|
||||
'@typescript-eslint/typescript-estree': 6.6.0(typescript@5.0.4)
|
||||
'@typescript-eslint/visitor-keys': 6.6.0
|
||||
'@typescript-eslint/scope-manager': 6.7.0
|
||||
'@typescript-eslint/types': 6.7.0
|
||||
'@typescript-eslint/typescript-estree': 6.7.0(typescript@5.0.4)
|
||||
'@typescript-eslint/visitor-keys': 6.7.0
|
||||
debug: 4.3.4(supports-color@8.1.1)
|
||||
eslint: 8.49.0
|
||||
typescript: 5.0.4
|
||||
|
@ -1926,16 +1939,16 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/scope-manager@6.6.0:
|
||||
resolution: {integrity: sha512-pT08u5W/GT4KjPUmEtc2kSYvrH8x89cVzkA0Sy2aaOUIw6YxOIjA8ilwLr/1fLjOedX1QAuBpG9XggWqIIfERw==}
|
||||
/@typescript-eslint/scope-manager@6.7.0:
|
||||
resolution: {integrity: sha512-lAT1Uau20lQyjoLUQ5FUMSX/dS07qux9rYd5FGzKz/Kf8W8ccuvMyldb8hadHdK/qOI7aikvQWqulnEq2nCEYA==}
|
||||
engines: {node: ^16.0.0 || >=18.0.0}
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 6.6.0
|
||||
'@typescript-eslint/visitor-keys': 6.6.0
|
||||
'@typescript-eslint/types': 6.7.0
|
||||
'@typescript-eslint/visitor-keys': 6.7.0
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/type-utils@6.6.0(eslint@8.49.0)(typescript@5.1.6):
|
||||
resolution: {integrity: sha512-8m16fwAcEnQc69IpeDyokNO+D5spo0w1jepWWY2Q6y5ZKNuj5EhVQXjtVAeDDqvW6Yg7dhclbsz6rTtOvcwpHg==}
|
||||
/@typescript-eslint/type-utils@6.7.0(eslint@8.49.0)(typescript@5.1.6):
|
||||
resolution: {integrity: sha512-f/QabJgDAlpSz3qduCyQT0Fw7hHpmhOzY/Rv6zO3yO+HVIdPfIWhrQoAyG+uZVtWAIS85zAyzgAFfyEr+MgBpg==}
|
||||
engines: {node: ^16.0.0 || >=18.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^7.0.0 || ^8.0.0
|
||||
|
@ -1944,8 +1957,8 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/typescript-estree': 6.6.0(typescript@5.1.6)
|
||||
'@typescript-eslint/utils': 6.6.0(eslint@8.49.0)(typescript@5.1.6)
|
||||
'@typescript-eslint/typescript-estree': 6.7.0(typescript@5.1.6)
|
||||
'@typescript-eslint/utils': 6.7.0(eslint@8.49.0)(typescript@5.1.6)
|
||||
debug: 4.3.4(supports-color@8.1.1)
|
||||
eslint: 8.49.0
|
||||
ts-api-utils: 1.0.1(typescript@5.1.6)
|
||||
|
@ -1954,13 +1967,13 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/types@6.6.0:
|
||||
resolution: {integrity: sha512-CB6QpJQ6BAHlJXdwUmiaXDBmTqIE2bzGTDLADgvqtHWuhfNP3rAOK7kAgRMAET5rDRr9Utt+qAzRBdu3AhR3sg==}
|
||||
/@typescript-eslint/types@6.7.0:
|
||||
resolution: {integrity: sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q==}
|
||||
engines: {node: ^16.0.0 || >=18.0.0}
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/typescript-estree@6.6.0(typescript@5.0.4):
|
||||
resolution: {integrity: sha512-hMcTQ6Al8MP2E6JKBAaSxSVw5bDhdmbCEhGW/V8QXkb9oNsFkA4SBuOMYVPxD3jbtQ4R/vSODBsr76R6fP3tbA==}
|
||||
/@typescript-eslint/typescript-estree@6.7.0(typescript@5.0.4):
|
||||
resolution: {integrity: sha512-dPvkXj3n6e9yd/0LfojNU8VMUGHWiLuBZvbM6V6QYD+2qxqInE7J+J/ieY2iGwR9ivf/R/haWGkIj04WVUeiSQ==}
|
||||
engines: {node: ^16.0.0 || >=18.0.0}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
|
@ -1968,8 +1981,8 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 6.6.0
|
||||
'@typescript-eslint/visitor-keys': 6.6.0
|
||||
'@typescript-eslint/types': 6.7.0
|
||||
'@typescript-eslint/visitor-keys': 6.7.0
|
||||
debug: 4.3.4(supports-color@8.1.1)
|
||||
globby: 11.1.0
|
||||
is-glob: 4.0.3
|
||||
|
@ -1980,8 +1993,8 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/typescript-estree@6.6.0(typescript@5.1.6):
|
||||
resolution: {integrity: sha512-hMcTQ6Al8MP2E6JKBAaSxSVw5bDhdmbCEhGW/V8QXkb9oNsFkA4SBuOMYVPxD3jbtQ4R/vSODBsr76R6fP3tbA==}
|
||||
/@typescript-eslint/typescript-estree@6.7.0(typescript@5.1.6):
|
||||
resolution: {integrity: sha512-dPvkXj3n6e9yd/0LfojNU8VMUGHWiLuBZvbM6V6QYD+2qxqInE7J+J/ieY2iGwR9ivf/R/haWGkIj04WVUeiSQ==}
|
||||
engines: {node: ^16.0.0 || >=18.0.0}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
|
@ -1989,8 +2002,8 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 6.6.0
|
||||
'@typescript-eslint/visitor-keys': 6.6.0
|
||||
'@typescript-eslint/types': 6.7.0
|
||||
'@typescript-eslint/visitor-keys': 6.7.0
|
||||
debug: 4.3.4(supports-color@8.1.1)
|
||||
globby: 11.1.0
|
||||
is-glob: 4.0.3
|
||||
|
@ -2001,8 +2014,8 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/utils@6.6.0(eslint@8.49.0)(typescript@5.1.6):
|
||||
resolution: {integrity: sha512-mPHFoNa2bPIWWglWYdR0QfY9GN0CfvvXX1Sv6DlSTive3jlMTUy+an67//Gysc+0Me9pjitrq0LJp0nGtLgftw==}
|
||||
/@typescript-eslint/utils@6.7.0(eslint@8.49.0)(typescript@5.1.6):
|
||||
resolution: {integrity: sha512-MfCq3cM0vh2slSikQYqK2Gq52gvOhe57vD2RM3V4gQRZYX4rDPnKLu5p6cm89+LJiGlwEXU8hkYxhqqEC/V3qA==}
|
||||
engines: {node: ^16.0.0 || >=18.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^7.0.0 || ^8.0.0
|
||||
|
@ -2010,9 +2023,9 @@ packages:
|
|||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.49.0)
|
||||
'@types/json-schema': 7.0.12
|
||||
'@types/semver': 7.5.0
|
||||
'@typescript-eslint/scope-manager': 6.6.0
|
||||
'@typescript-eslint/types': 6.6.0
|
||||
'@typescript-eslint/typescript-estree': 6.6.0(typescript@5.1.6)
|
||||
'@typescript-eslint/scope-manager': 6.7.0
|
||||
'@typescript-eslint/types': 6.7.0
|
||||
'@typescript-eslint/typescript-estree': 6.7.0(typescript@5.1.6)
|
||||
eslint: 8.49.0
|
||||
semver: 7.5.4
|
||||
transitivePeerDependencies:
|
||||
|
@ -2020,11 +2033,11 @@ packages:
|
|||
- typescript
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/visitor-keys@6.6.0:
|
||||
resolution: {integrity: sha512-L61uJT26cMOfFQ+lMZKoJNbAEckLe539VhTxiGHrWl5XSKQgA0RTBZJW2HFPy5T0ZvPVSD93QsrTKDkfNwJGyQ==}
|
||||
/@typescript-eslint/visitor-keys@6.7.0:
|
||||
resolution: {integrity: sha512-/C1RVgKFDmGMcVGeD8HjKv2bd72oI1KxQDeY8uc66gw9R0OK0eMq48cA+jv9/2Ag6cdrsUGySm1yzYmfz0hxwQ==}
|
||||
engines: {node: ^16.0.0 || >=18.0.0}
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 6.6.0
|
||||
'@typescript-eslint/types': 6.7.0
|
||||
eslint-visitor-keys: 3.4.3
|
||||
dev: true
|
||||
|
||||
|
@ -3146,7 +3159,7 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/eslint-module-utils@2.8.0(@typescript-eslint/parser@6.6.0)(eslint-import-resolver-node@0.3.7)(eslint@8.49.0):
|
||||
/eslint-module-utils@2.8.0(@typescript-eslint/parser@6.7.0)(eslint-import-resolver-node@0.3.7)(eslint@8.49.0):
|
||||
resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
|
||||
engines: {node: '>=4'}
|
||||
peerDependencies:
|
||||
|
@ -3167,7 +3180,7 @@ packages:
|
|||
eslint-import-resolver-webpack:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/parser': 6.6.0(eslint@8.49.0)(typescript@5.0.4)
|
||||
'@typescript-eslint/parser': 6.7.0(eslint@8.49.0)(typescript@5.0.4)
|
||||
debug: 3.2.7
|
||||
eslint: 8.49.0
|
||||
eslint-import-resolver-node: 0.3.7
|
||||
|
@ -3186,7 +3199,7 @@ packages:
|
|||
regexpp: 3.2.0
|
||||
dev: true
|
||||
|
||||
/eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.6.0)(eslint@8.49.0):
|
||||
/eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.7.0)(eslint@8.49.0):
|
||||
resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==}
|
||||
engines: {node: '>=4'}
|
||||
peerDependencies:
|
||||
|
@ -3196,7 +3209,7 @@ packages:
|
|||
'@typescript-eslint/parser':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/parser': 6.6.0(eslint@8.49.0)(typescript@5.0.4)
|
||||
'@typescript-eslint/parser': 6.7.0(eslint@8.49.0)(typescript@5.0.4)
|
||||
array-includes: 3.1.6
|
||||
array.prototype.findlastindex: 1.2.2
|
||||
array.prototype.flat: 1.3.1
|
||||
|
@ -3205,7 +3218,7 @@ packages:
|
|||
doctrine: 2.1.0
|
||||
eslint: 8.49.0
|
||||
eslint-import-resolver-node: 0.3.7
|
||||
eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.6.0)(eslint-import-resolver-node@0.3.7)(eslint@8.49.0)
|
||||
eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.0)(eslint-import-resolver-node@0.3.7)(eslint@8.49.0)
|
||||
has: 1.0.3
|
||||
is-core-module: 2.13.0
|
||||
is-glob: 4.0.3
|
||||
|
@ -4061,12 +4074,6 @@ packages:
|
|||
ci-info: 3.8.0
|
||||
dev: true
|
||||
|
||||
/is-core-module@2.12.1:
|
||||
resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==}
|
||||
dependencies:
|
||||
has: 1.0.3
|
||||
dev: true
|
||||
|
||||
/is-core-module@2.13.0:
|
||||
resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==}
|
||||
dependencies:
|
||||
|
@ -5364,7 +5371,7 @@ packages:
|
|||
resolution: {integrity: sha512-P8ur/gp/AmbEzjr729bZnLjXK5Z+4P0zhIJgBgzqRih7hL7BOukHGtSTA3ACMY467GRFz3duQsi0bDZdR7DKdw==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
is-core-module: 2.12.1
|
||||
is-core-module: 2.13.0
|
||||
path-parse: 1.0.7
|
||||
supports-preserve-symlinks-flag: 1.0.0
|
||||
dev: true
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "switchboard-solana"
|
||||
version = "0.27.8"
|
||||
version = "0.27.18"
|
||||
edition = "2021"
|
||||
description = "A Rust library to interact with Switchboard accounts."
|
||||
readme = "README.md"
|
||||
|
@ -18,6 +18,7 @@ doctest = false
|
|||
default = ["cpi"]
|
||||
no-entrypoint = []
|
||||
cpi = ["no-entrypoint"]
|
||||
secrets = ["rand", "rsa", "reqwest", "serde", "serde_json"]
|
||||
|
||||
[dependencies]
|
||||
anchor-spl = "0.27.0"
|
||||
|
@ -28,11 +29,11 @@ bytemuck = "^1"
|
|||
superslice = "1"
|
||||
|
||||
[target.'cfg(target_os = "solana")'.dependencies]
|
||||
switchboard-common = { version = "0.8.7", path = "../switchboard-common" }
|
||||
switchboard-common = { version = "0.8.15", path = "../switchboard-common" }
|
||||
anchor-lang = { version = "0.27.0" }
|
||||
|
||||
[target.'cfg(not(target_os = "solana"))'.dependencies]
|
||||
switchboard-common = { version = "0.8.7", path = "../switchboard-common", features = [
|
||||
switchboard-common = { version = "0.8.15", path = "../switchboard-common", features = [
|
||||
"client",
|
||||
"solana",
|
||||
] }
|
||||
|
@ -46,5 +47,12 @@ hex = "0.4.3"
|
|||
tokio = "1"
|
||||
url = "2.4"
|
||||
|
||||
# Secrets Dependencies
|
||||
rsa = { version = "0.5.0", optional = true }
|
||||
reqwest = { version = "0.11", features = ["json"], optional = true }
|
||||
rand = { version = "0.8.5", optional = true }
|
||||
serde = { version = "^1", features = ["derive"], optional = true }
|
||||
serde_json = { version = "^1", optional = true }
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
rustdoc-args = ["--cfg", "doc_cfg"]
|
||||
|
|
|
@ -4439,13 +4439,11 @@ checksum = "ab16ced94dbd8a46c82fd81e3ed9a8727dac2977ea869d217bcc4ea1f122e81f"
|
|||
|
||||
[[package]]
|
||||
name = "switchboard-common"
|
||||
version = "0.8.15"
|
||||
version = "0.8.18"
|
||||
dependencies = [
|
||||
"envy",
|
||||
"getrandom 0.2.10",
|
||||
"hex",
|
||||
"rand 0.8.5",
|
||||
"reqwest",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"sgx-quote",
|
||||
|
@ -4454,7 +4452,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "switchboard-solana"
|
||||
version = "0.28.11"
|
||||
version = "0.28.18"
|
||||
dependencies = [
|
||||
"anchor-client",
|
||||
"anchor-lang",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "switchboard-solana"
|
||||
version = "0.28.12"
|
||||
version = "0.28.18"
|
||||
edition = "2021"
|
||||
description = "A Rust library to interact with Switchboard accounts."
|
||||
readme = "README.md"
|
||||
|
@ -18,7 +18,7 @@ doctest = false
|
|||
default = ["cpi"]
|
||||
no-entrypoint = []
|
||||
cpi = ["no-entrypoint"]
|
||||
|
||||
secrets = ["rand", "rsa", "reqwest", "serde", "serde_json"]
|
||||
|
||||
[dependencies]
|
||||
anchor-spl = "0.28.0"
|
||||
|
@ -29,11 +29,11 @@ bytemuck = "^1"
|
|||
superslice = "1"
|
||||
|
||||
[target.'cfg(target_os = "solana")'.dependencies]
|
||||
switchboard-common = { version = "0.8.14" }
|
||||
switchboard-common = { version = "0.8.18" }
|
||||
anchor-lang = { version = "0.28.0" }
|
||||
|
||||
[target.'cfg(not(target_os = "solana"))'.dependencies]
|
||||
switchboard-common = { version = "0.8.15", features = [
|
||||
switchboard-common = { version = "0.8.18", features = [
|
||||
"client",
|
||||
"solana",
|
||||
] }
|
||||
|
@ -46,11 +46,13 @@ chrono = { version = "0.4.25" }
|
|||
hex = "0.4.3"
|
||||
tokio = "1"
|
||||
url = "2.4"
|
||||
rsa = { version = "0.5.0" }
|
||||
serde = { version = "^1", features = ["derive"] }
|
||||
serde_json = "^1"
|
||||
reqwest = { version = "0.11", features = ["json"] }
|
||||
rand = { version = "0.8.5" }
|
||||
|
||||
# Secrets Dependencies
|
||||
rsa = { version = "0.5.0", optional = true }
|
||||
reqwest = { version = "0.11", features = ["json"], optional = true }
|
||||
rand = { version = "0.8.5", optional = true }
|
||||
serde = { version = "^1", features = ["derive"], optional = true }
|
||||
serde_json = { version = "^1", optional = true }
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
rustdoc-args = ["--cfg", "doc_cfg"]
|
||||
|
|
|
@ -125,8 +125,12 @@ pub mod prelude;
|
|||
cfg_client! {
|
||||
pub mod client;
|
||||
pub use client::*;
|
||||
|
||||
// Only enable this feature if client is already enabled
|
||||
cfg_secrets! {
|
||||
pub mod secrets;
|
||||
pub use secrets::*;
|
||||
}
|
||||
}
|
||||
|
||||
/// Program id for the Switchboard oracle program
|
||||
|
|
|
@ -12,6 +12,17 @@ macro_rules! cfg_client {
|
|||
}
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! cfg_secrets {
|
||||
($($item:item)*) => {
|
||||
$(
|
||||
#[cfg(feature = "secrets")]
|
||||
#[cfg_attr(doc_cfg, doc(cfg(feature = "secrets")))]
|
||||
$item
|
||||
)*
|
||||
}
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! cfg_program {
|
||||
($($item:item)*) => {
|
||||
|
|
Loading…
Reference in New Issue