@orao-network/solana-vrf
Version:
ORAO Verifiable Random Function for Solana.
373 lines (372 loc) • 11 kB
TypeScript
export declare type OraoVrf = {
"version": "0.1.2";
"name": "orao_vrf";
"instructions": [
{
"name": "initNetwork";
"accounts": [
{
"name": "payer";
"isMut": true;
"isSigner": true;
},
{
"name": "networkState";
"isMut": true;
"isSigner": false;
},
{
"name": "treasury";
"isMut": false;
"isSigner": false;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "fee";
"type": "u64";
},
{
"name": "configAuthority";
"type": "publicKey";
},
{
"name": "fulfillmentAuthorities";
"type": {
"vec": "publicKey";
};
},
{
"name": "tokenFeeConfig";
"type": {
"option": {
"defined": "OraoTokenFeeConfig";
};
};
}
];
},
{
"name": "updateNetwork";
"accounts": [
{
"name": "payer";
"isMut": true;
"isSigner": true;
},
{
"name": "configAuthority";
"isMut": false;
"isSigner": true;
},
{
"name": "networkState";
"isMut": true;
"isSigner": false;
},
{
"name": "treasury";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "fee";
"type": "u64";
},
{
"name": "configAuthority";
"type": "publicKey";
},
{
"name": "fulfillmentAuthorities";
"type": {
"vec": "publicKey";
};
},
{
"name": "tokenFeeConfig";
"type": {
"option": {
"defined": "OraoTokenFeeConfig";
};
};
}
];
},
{
"name": "request";
"accounts": [
{
"name": "payer";
"isMut": true;
"isSigner": true;
},
{
"name": "networkState";
"isMut": true;
"isSigner": false;
},
{
"name": "treasury";
"isMut": true;
"isSigner": false;
},
{
"name": "request";
"isMut": true;
"isSigner": false;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "tokenPayer";
"isMut": true;
"isSigner": false;
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "seed";
"type": {
"array": [
"u8",
32
];
};
}
];
},
{
"name": "fulfill";
"accounts": [
{
"name": "payer";
"isMut": true;
"isSigner": true;
},
{
"name": "instructionAcc";
"isMut": false;
"isSigner": false;
},
{
"name": "networkState";
"isMut": true;
"isSigner": false;
},
{
"name": "fulfillmentAuthority";
"isMut": false;
"isSigner": false;
},
{
"name": "request";
"isMut": true;
"isSigner": false;
}
];
"args": [];
}
];
"accounts": [
{
"name": "networkState";
"type": {
"kind": "struct";
"fields": [
{
"name": "config";
"type": {
"defined": "NetworkConfiguration";
};
},
{
"name": "numReceived";
"docs": [
"Total number of received requests."
];
"type": "u64";
}
];
};
},
{
"name": "randomness";
"type": {
"kind": "struct";
"fields": [
{
"name": "seed";
"type": {
"array": [
"u8",
32
];
};
},
{
"name": "randomness";
"type": {
"array": [
"u8",
64
];
};
},
{
"name": "responses";
"type": {
"vec": {
"defined": "RandomnessResponse";
};
};
}
];
};
}
];
"types": [
{
"name": "OraoTokenFeeConfig";
"type": {
"kind": "struct";
"fields": [
{
"name": "mint";
"docs": [
"ORAO token mint address."
];
"type": "publicKey";
},
{
"name": "treasury";
"docs": [
"ORAO token treasury account."
];
"type": "publicKey";
},
{
"name": "fee";
"docs": [
"Fee in ORAO SPL token smallest units."
];
"type": "u64";
}
];
};
},
{
"name": "NetworkConfiguration";
"type": {
"kind": "struct";
"fields": [
{
"name": "authority";
"type": "publicKey";
},
{
"name": "treasury";
"type": "publicKey";
},
{
"name": "requestFee";
"type": "u64";
},
{
"name": "fulfillmentAuthorities";
"type": {
"vec": "publicKey";
};
},
{
"name": "tokenFeeConfig";
"type": {
"option": {
"defined": "OraoTokenFeeConfig";
};
};
}
];
};
},
{
"name": "RandomnessResponse";
"type": {
"kind": "struct";
"fields": [
{
"name": "pubkey";
"type": "publicKey";
},
{
"name": "randomness";
"type": {
"array": [
"u8",
64
];
};
}
];
};
}
];
"errors": [
{
"code": 6000;
"name": "ZeroSeed";
"msg": "Randomness seed cannot be zero";
},
{
"code": 6001;
"name": "SeedAlreadyInUse";
"msg": "Another account is using the provided seed, so randomness can be predicted";
},
{
"code": 6002;
"name": "InsufficientFunds";
"msg": "The called account doesn't have enough funds to cover the randomness request";
},
{
"code": 6003;
"name": "RandomnessVerificationFailed";
"msg": "Failed to verify randomness against the public key";
},
{
"code": 6004;
"name": "SerializationError";
"msg": "Serialization error";
},
{
"code": 6005;
"name": "UnauthorizedFulfillmentAuthority";
"msg": "Unauthorized fulfillment authority";
},
{
"code": 6006;
"name": "MissingEd25519SigVerifyInstruction";
"msg": "Missing Ed25519SigVerify instruction";
},
{
"code": 6007;
"name": "RandomnessCombinationFailed";
"msg": "Failed to validate combined randomness";
}
];
};
export declare const IDL: OraoVrf;