UNPKG

@orao-network/solana-vrf

Version:

ORAO Verifiable Random Function for Solana.

375 lines (374 loc) 11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IDL = void 0; exports.IDL = { "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" } ] };