randomness-js
Version:
A library for consuming, verifying and using randomness from the dcipher network
205 lines (197 loc) • 25.2 kB
text/typescript
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
Contract,
ContractFactory,
ContractTransactionResponse,
Interface,
} from "ethers";
import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
import type { NonPayableOverrides } from "../common";
import type { Randomness, RandomnessInterface } from "../Randomness";
const _abi = [
{
type: "function",
name: "selectArrayIndices",
inputs: [
{
name: "lengthOfArray",
type: "uint256",
internalType: "uint256",
},
{
name: "countToDraw",
type: "uint256",
internalType: "uint256",
},
{
name: "randomBytes",
type: "bytes32",
internalType: "bytes32",
},
],
outputs: [
{
name: "",
type: "uint256[]",
internalType: "uint256[]",
},
],
stateMutability: "pure",
},
{
type: "function",
name: "verify",
inputs: [
{
name: "randomnessContract",
type: "address",
internalType: "address",
},
{
name: "signatureContract",
type: "address",
internalType: "address",
},
{
name: "signature",
type: "bytes",
internalType: "bytes",
},
{
name: "requestID",
type: "uint256",
internalType: "uint256",
},
{
name: "requester",
type: "address",
internalType: "address",
},
{
name: "DST",
type: "bytes",
internalType: "bytes",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "view",
},
{
type: "error",
name: "BNAddFailed",
inputs: [
{
name: "input",
type: "uint256[4]",
internalType: "uint256[4]",
},
],
},
{
type: "error",
name: "InvalidDSTLength",
inputs: [
{
name: "dst",
type: "bytes",
internalType: "bytes",
},
],
},
{
type: "error",
name: "InvalidFieldElement",
inputs: [
{
name: "x",
type: "uint256",
internalType: "uint256",
},
],
},
{
type: "error",
name: "InvalidInputs",
inputs: [],
},
{
type: "error",
name: "MapToPointFailed",
inputs: [
{
name: "noSqrt",
type: "uint256",
internalType: "uint256",
},
],
},
{
type: "error",
name: "ModExpFailed",
inputs: [
{
name: "base",
type: "uint256",
internalType: "uint256",
},
{
name: "exponent",
type: "uint256",
internalType: "uint256",
},
{
name: "modulus",
type: "uint256",
internalType: "uint256",
},
],
},
] as const;
const _bytecode =
"0x612895610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004a575f3560e01c8063298f239c1461004e5780635dc8804a146100775780639e43d984146100a4575b5f5ffd5b61006161005c36600461223d565b6100c7565b60405161006e9190612266565b60405180910390f35b818015610082575f5ffd5b506100966100913660046122cc565b6101b0565b60405190815260200161006e565b6100b76100b236600461232c565b610225565b604051901515815260200161006e565b6060835f036100e957604080515f80825260208201909252905b5090506101a9565b5f8367ffffffffffffffff811115610103576101036123db565b60405190808252806020026020018201604052801561012c578160200160208202803683370190505b509050838511610166575f5b848110156100e1578082828151811061015357610153612408565b6020908102919091010152600101610138565b825f5b858110156101a35761017e818884600a61045b565b83828151811061019057610190612408565b6020908102919091010152600101610169565b50909150505b9392505050565b5f8173ffffffffffffffffffffffffffffffffffffffff1663f8413b076040518163ffffffff1660e01b81526004016020604051808303815f875af11580156101fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021f9190612435565b92915050565b5f5f5f8973ffffffffffffffffffffffffffffffffffffffff16632e3344526040518163ffffffff1660e01b8152600401608060405180830381865afa158015610271573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102959190612508565b915091505f60405180604001604052808481526020018381525090505f6103e887878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050508e73ffffffffffffffffffffffffffffffffffffffff1663775b839c60405180604001604052808e81526020018d73ffffffffffffffffffffffffffffffffffffffff168152506040518263ffffffff1660e01b815260040161038491908151815260209182015173ffffffffffffffffffffffffffffffffffffffff169181019190915260400190565b5f60405180830381865afa15801561039e573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526103e3919081019061253b565b6105db565b90505f6104298c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506106c092505050565b90505f5f61043883868661075d565b915091508180156104465750805b97505050505050505098975050505050505050565b5f8315806104695750838510155b806104775750816001166001145b156104ae576040517ff34cfab600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ff565b5f60038211600181146104d557600183151916156104d057600191505b6104f9565b829150600160028404015b828110156104f757915060028284048301046104e0565b505b50919050565b610508846104b3565b5f856002830a146001811461054257600183016fffffffffffffffffffffffffffffffff811115610537575f5ffd5b6002900a9150610546565b8691505b50610550816104b3565b915050604051608081016040528460408201528560608201525b8187068288045f5b868110156105c2578284527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81880301602085015260808420859006918501919091038490069190600101610572565b5083020196508587101561056a57509495945050505050565b604080518082019091525f80825260208201525f6105f984846108d0565b90505f61060c82825b6020020151610a1b565b90505f61061a836001610602565b90506106246121e3565b825181526020808401518282015282516040808401919091529083015160608301525f908460808460066107d05a03fa90508061069857816040517f128e3f0800000000000000000000000000000000000000000000000000000000815260040161068f91906125ed565b60405180910390fd5b6040805180820190915284518152602081018560016020020151905298975050505050505050565b604080518082019091525f8082526020820152815160401461073e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496e76616c6964204731206279746573206c656e677468000000000000000000604482015260640161068f565b5060208181015160409283015183518085019094529083529082015290565b5f5f5f604051806101800160405280875f01518152602001876020015181526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec81526020017f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d8152602001855f0151815260200185602001518152602001865f015160016002811061084057610840612408565b60200201518152602001865f01515f6002811061085f5761085f612408565b60200201518152602001866020015160016002811061088057610880612408565b6020020151815260200186602001515f600281106108a0576108a0612408565b6020020151905290506108b1612201565b6020816101808460086107d05a03fa9051151597909650945050505050565b6108d861221f565b5f6108e38484610ec3565b90505f5f5f5f6018850177ffffffffffffffffffffffffffffffffffffffffffffffff815116935060308601905077ffffffffffffffffffffffffffffffffffffffffffffffff81511694507f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47857f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4778010000000000000000000000000000000000000000000000008709086048870151606088015177ffffffffffffffffffffffffffffffffffffffffffffffff908116975016945092507f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47905084817801000000000000000000000000000000000000000000000000860908604080518082019091529283526020830152509695505050505050565b610a2361221f565b7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478210610a7f576040517fd53e94150000000000000000000000000000000000000000000000000000000081526004810183905260240161068f565b5f7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760047f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478586090990505f7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478260010890507f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47610b3d837f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4761264a565b60010891505f610b6f7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478385096110ad565b90505f7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4778016789af3a83522eb353c98fc6b36d713d5d8d1cc5dffffffa7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47847f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47888b09090990505f7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47610c43837f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4761264a565b7f183227397098d014dc2822db40c0ac2ecbc0b548b438e5469e10460b6c3e7ea30890505f7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47837f183227397098d014dc2822db40c0ac2ecbc0b548b438e5469e10460b6c3e7ea30890505f7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4786870990505f7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4786830990505f7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47807f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478485097f10216f7ba065e00de81ac1e7808072c9dd2b2385cd7b438469602eb24829a9bd0960010890505f5f610d7d610d78886110b7565b611129565b5f0b600103610de657868c52610d92876110b7565b9050610d9d816111d9565b60208e0191909152915081610de1576040517f396ec7710000000000000000000000000000000000000000000000000000000081526004810182905260240161068f565b610e62565b610df2610d78876110b7565b5f0b600103610e0757858c52610d92866110b7565b828c52610e13836110b7565b9050610e1e816111d9565b60208e0191909152915081610e62576040517f396ec7710000000000000000000000000000000000000000000000000000000081526004810182905260240161068f565b60208c0151610e7090611213565b610e798e611213565b14610eb35760208c0151610ead907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4761264a565b60208d01525b5050505050505050505050919050565b815160609060ff811115610f0557836040517f26e4f9ba00000000000000000000000000000000000000000000000000000000815260040161068f919061265d565b60408051608880825260c082019092525f916020820181803683370190505090505f81855f60605f8a88604051602001610f4597969594939291906126c7565b60405160208183030381529060405290505f818051906020012090505f8160018987604051602001610f7a94939291906127a2565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815282825280516020820120606080855260808501909352909350915f91602082018180368337019050509050600360015b8181101561107157858418610feb826001612814565b8d8b60405160200161100094939291906127a2565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815291905260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff830181028501810195909552805194810194909420939450600101610fd5565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016020908102820101919091529550505050505092915050565b5f61021f8261121f565b5f7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760037f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47847f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47868709090892915050565b5f5f61113483611977565b905061116160017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4761264a565b810361118f57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92915050565b801580159061119f575080600114155b1561021f576040517f396ec7710000000000000000000000000000000000000000000000000000000081526004810184905260240161068f565b5f5f6111e483611a9d565b9150827f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47838409149050915091565b5f61021f600283612827565b5f7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478083840991508083830981838209828283098385830984848309858484098684850997508684840987858409945087898a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087818a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087898a09985087818a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087898a09985087838a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087818a09985050868889099750868889099750868889099750868889099750868889099750868889099750868489099750868889099750868889099750868889099750868889099750868889099750868989099750868889099750868889099750868889099750868889099750868889099750868889099750868989099750868889099750868889099750868889099750868889099750868889099750868689099750868889099750868889099750868889099750868889099750868889099750868889099750868889099750868889099750868889099750868189099750508587880996508587880996508587880996508585880996508587880996508587880996508587880996508585880996508587880996508587880996508587880996508587880996508587880996508587880996508587880996508587880996508583880996508587880996508587880996508587880996508587880996508581880996505050838586099450838586099450838586099450838586099450838186099450508284850993508284850993508284850993508281850993508284850993508284850993508285850993508284850993508284850993508284850993508284850993508284850993508284850993508281850995945050505050565b6040805160c080825260e082019092525f918291906020820181803683370190505060208082018181526040830182905260608301829052608083018690527f183227397098d014dc2822db40c0ac2ecbc0b548b438e5469e10460b6c3e7ea360a08401527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760c0808501919091529293505f92839160055afa90505f519250806104f7576040517fc6daf7ab000000000000000000000000000000000000000000000000000000008152600481018590527f183227397098d014dc2822db40c0ac2ecbc0b548b438e5469e10460b6c3e7ea360248201527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47604482015260640161068f565b5f7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478083840991508083830981838209828283098385830984848309858484098684850997508684840987858409945087898a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087818a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087898a09985087818a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087898a09985087838a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087818a09985050868889099750868889099750868889099750868889099750868889099750868889099750868489099750868889099750868889099750868889099750868889099750868889099750868989099750868889099750868889099750868889099750868889099750868889099750868889099750868989099750868889099750868889099750868889099750868889099750868889099750868689099750868889099750868889099750868889099750868889099750868889099750868889099750868889099750868889099750868889099750868189099750508587880996508587880996508587880996508585880996508587880996508587880996508587880996508585880996508587880996508587880996508587880996508587880996508587880996508587880996508587880996508587880996508583880996508587880996508587880996508587880996508587880996508581880996508587880996508587880996508587880996508587880996508583880996508587880996508587880996508587880996508584880996508587880996508587880996508587880996508587880996508587880996508581880996505050505050808283099392505050565b60405180608001604052806004906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b5f5f5f6060848603121561224f575f5ffd5b505081359360208301359350604090920135919050565b602080825282518282018190525f918401906040840190835b8181101561229d57835183526020938401939092019160010161227f565b509095945050505050565b73ffffffffffffffffffffffffffffffffffffffff811681146122c9575f5ffd5b50565b5f602082840312156122dc575f5ffd5b81356101a9816122a8565b5f5f83601f8401126122f7575f5ffd5b50813567ffffffffffffffff81111561230e575f5ffd5b602083019150836020828501011115612325575f5ffd5b9250929050565b5f5f5f5f5f5f5f5f60c0898b031215612343575f5ffd5b883561234e816122a8565b9750602089013561235e816122a8565b9650604089013567ffffffffffffffff811115612379575f5ffd5b6123858b828c016122e7565b9097509550506060890135935060808901356123a0816122a8565b925060a089013567ffffffffffffffff8111156123bb575f5ffd5b6123c78b828c016122e7565b999c989b5096995094979396929594505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215612445575f5ffd5b5051919050565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612493576124936123db565b604052919050565b5f82601f8301126124aa575f5ffd5b6040805190810167ffffffffffffffff811182821017156124cd576124cd6123db565b80604052508060408401858111156124e3575f5ffd5b845b818110156124fd5780518352602092830192016124e5565b509195945050505050565b5f5f60808385031215612519575f5ffd5b612523848461249b565b9150612532846040850161249b565b90509250929050565b5f6020828403121561254b575f5ffd5b815167ffffffffffffffff811115612561575f5ffd5b8201601f81018413612571575f5ffd5b805167ffffffffffffffff81111561258b5761258b6123db565b6125bc60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161244c565b8181528560208385010111156125d0575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b6080810181835f5b60048110156126145781518352602092830192909101906001016125f5565b50505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561021f5761021f61261d565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f81518060208401855e5f93019283525090919050565b5f6126db6126d5838b6126b0565b896126b0565b7fff000000000000000000000000000000000000000000000000000000000000008860f81b1681527fff000000000000000000000000000000000000000000000000000000000000008760f81b1660018201527fff000000000000000000000000000000000000000000000000000000000000008660f81b16600282015261276660038201866126b0565b60f89490941b7fff0000000000000000000000000000000000000000000000000000000000000016845250506001909101979650505050505050565b8481527fff000000000000000000000000000000000000000000000000000000000000008460f81b1660208201525f6127de60218301856126b0565b60f89390931b7fff0000000000000000000000000000000000000000000000000000000000000016835250506001019392505050565b8082018082111561021f5761021f61261d565b5f8261285a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50069056fea264697066735822122099b94b6b7f0aaa266eca0ffe259ea02de72857f81ceba7f3343ed2230bb5e3f464736f6c634300081c0033";
type RandomnessConstructorParams =
| [signer?: Signer]
| ConstructorParameters<typeof ContractFactory>;
const isSuperArgs = (
xs: RandomnessConstructorParams
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
export class Randomness__factory extends ContractFactory {
constructor(...args: RandomnessConstructorParams) {
if (isSuperArgs(args)) {
super(...args);
} else {
super(_abi, _bytecode, args[0]);
}
}
override getDeployTransaction(
overrides?: NonPayableOverrides & { from?: string }
): Promise<ContractDeployTransaction> {
return super.getDeployTransaction(overrides || {});
}
override deploy(overrides?: NonPayableOverrides & { from?: string }) {
return super.deploy(overrides || {}) as Promise<
Randomness & {
deploymentTransaction(): ContractTransactionResponse;
}
>;
}
override connect(runner: ContractRunner | null): Randomness__factory {
return super.connect(runner) as Randomness__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): RandomnessInterface {
return new Interface(_abi) as RandomnessInterface;
}
static connect(address: string, runner?: ContractRunner | null): Randomness {
return new Contract(address, _abi, runner) as unknown as Randomness;
}
}