randomness-js
Version:
A library for consuming, verifying and using randomness from the dcipher network
267 lines (266 loc) • 17.9 kB
TypeScript
import { ContractFactory, ContractTransactionResponse } from "ethers";
import type { Signer, BigNumberish, AddressLike, ContractDeployTransaction, ContractRunner } from "ethers";
import type { NonPayableOverrides } from "../common";
import type { ChainlinkVRFSubscriptionConsumer, ChainlinkVRFSubscriptionConsumerInterface } from "../ChainlinkVRFSubscriptionConsumer";
type ChainlinkVRFSubscriptionConsumerConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
export declare class ChainlinkVRFSubscriptionConsumer__factory extends ContractFactory {
constructor(...args: ChainlinkVRFSubscriptionConsumerConstructorParams);
getDeployTransaction(subscriptionId: BigNumberish, _vrfCoordinator: AddressLike, overrides?: NonPayableOverrides & {
from?: string;
}): Promise<ContractDeployTransaction>;
deploy(subscriptionId: BigNumberish, _vrfCoordinator: AddressLike, overrides?: NonPayableOverrides & {
from?: string;
}): Promise<ChainlinkVRFSubscriptionConsumer & {
deploymentTransaction(): ContractTransactionResponse;
}>;
connect(runner: ContractRunner | null): ChainlinkVRFSubscriptionConsumer__factory;
static readonly bytecode = "0x608060405234801561000f575f5ffd5b50604051610ffd380380610ffd83398101604081905261002e916101ae565b8033805f816100845760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b5f80546001600160a01b0319166001600160a01b03848116919091179091558116156100b3576100b381610106565b5050506001600160a01b0381166100dd5760405163d92e233d60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055506005556101e8565b336001600160a01b0382160361015e5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161007b565b600180546001600160a01b0319166001600160a01b038381169182179092555f8054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b5f5f604083850312156101bf575f5ffd5b825160208401519092506001600160a01b03811681146101dd575f5ffd5b809150509250929050565b610e08806101f55f395ff3fe6080604052600436106100d8575f3560e01c80638ea981171161007c578063a21a23e411610057578063a21a23e41461024b578063bec4c08c1461025f578063e726f2e11461027e578063f2fde38b1461029d575f5ffd5b80638ea98117146101ed57806395b55cfc1461020c5780639eccacf61461021f575f5ffd5b80634b3c08f3116100b75780634b3c08f31461014457806379ba50971461017057806388b660a6146101845780638da5cb5b146101a3575f5ffd5b80626d6cae146100dc578063064e96a0146101045780631fe543e314610125575b5f5ffd5b3480156100e7575f5ffd5b506100f160035481565b6040519081526020015b60405180910390f35b34801561010f575f5ffd5b5061012361011e366004610b92565b600555565b005b348015610130575f5ffd5b5061012361013f366004610ba9565b6102bc565b34801561014f575f5ffd5b5061016361015e366004610b92565b610344565b6040516100fb9190610c23565b34801561017b575f5ffd5b506101236103a3565b34801561018f575f5ffd5b506100f161019e366004610c65565b61049f565b3480156101ae575f5ffd5b505f5473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100fb565b3480156101f8575f5ffd5b50610123610207366004610cad565b6104ca565b61012361021a366004610b92565b610652565b34801561022a575f5ffd5b506002546101c89073ffffffffffffffffffffffffffffffffffffffff1681565b348015610256575f5ffd5b506100f16106d7565b34801561026a575f5ffd5b50610123610279366004610ccd565b610773565b348015610289575f5ffd5b506100f1610298366004610cf7565b6107ec565b3480156102a8575f5ffd5b506101236102b7366004610cad565b6108d1565b60025473ffffffffffffffffffffffffffffffffffffffff163314610334576002546040517f1cf993f400000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff90911660248201526044015b60405180910390fd5b61033f8383836108e5565b505050565b5f8181526004602090815260409182902080548351818402810184019094528084526060939283018282801561039757602002820191905f5260205f20905b815481526020019060010190808311610383575b50505050509050919050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610424576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e657200000000000000000000604482015260640161032b565b5f8054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6004602052815f5260405f2081815481106104b8575f80fd5b905f5260205f20015f91509150505481565b5f5473ffffffffffffffffffffffffffffffffffffffff163314801590610509575060025473ffffffffffffffffffffffffffffffffffffffff163314155b1561058c573361052d5f5473ffffffffffffffffffffffffffffffffffffffff1690565b6002546040517f061db9c100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152918316602483015291909116604482015260640161032b565b73ffffffffffffffffffffffffffffffffffffffff81166105d9576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd1a6a14209a385a964d036e404cb5cfb71f4000cdb03c9366292430787261be69060200160405180910390a150565b6002546040517f95b55cfc0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906395b55cfc9034906024015f604051808303818588803b1580156106bd575f5ffd5b505af11580156106cf573d5f5f3e3d5ffd5b505050505050565b600254604080517fa21a23e400000000000000000000000000000000000000000000000000000000815290515f9273ffffffffffffffffffffffffffffffffffffffff169163a21a23e4916004808301926020929190829003018187875af1158015610745573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107699190610d1a565b6005819055919050565b61077b610903565b6002546040517fbec4c08c0000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff83811660248301529091169063bec4c08c906044015f604051808303815f87803b1580156106bd575f5ffd5b5f6107f5610903565b6002546040805160c0810182525f8152600554602080830191909152600382840181905263ffffffff8716606084015260016080840181905284519283019094528382529373ffffffffffffffffffffffffffffffffffffffff1691639b1c385e9160a082019061086590610985565b8152506040518263ffffffff1660e01b81526004016108849190610d31565b6020604051808303815f875af11580156108a0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c49190610d1a565b6003819055949350505050565b6108d9610903565b6108e281610a41565b50565b5f8381526004602052604090206108fd908383610b35565b50505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015260640161032b565b565b60607f92fd13387c7fe7befbc38d303d6468778fb9731bc4583f17d92989c6fcfdeaaa826040516024016109be91511515815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915292915050565b3373ffffffffffffffffffffffffffffffffffffffff821603610ac0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161032b565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8381169182179092555f8054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b828054828255905f5260205f20908101928215610b6e579160200282015b82811115610b6e578235825591602001919060010190610b53565b50610b7a929150610b7e565b5090565b5b80821115610b7a575f8155600101610b7f565b5f60208284031215610ba2575f5ffd5b5035919050565b5f5f5f60408486031215610bbb575f5ffd5b83359250602084013567ffffffffffffffff811115610bd8575f5ffd5b8401601f81018613610be8575f5ffd5b803567ffffffffffffffff811115610bfe575f5ffd5b8660208260051b8401011115610c12575f5ffd5b939660209190910195509293505050565b602080825282518282018190525f918401906040840190835b81811015610c5a578351835260209384019390920191600101610c3c565b509095945050505050565b5f5f60408385031215610c76575f5ffd5b50508035926020909101359150565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ca8575f5ffd5b919050565b5f60208284031215610cbd575f5ffd5b610cc682610c85565b9392505050565b5f5f60408385031215610cde575f5ffd5b82359150610cee60208401610c85565b90509250929050565b5f60208284031215610d07575f5ffd5b813563ffffffff81168114610cc6575f5ffd5b5f60208284031215610d2a575f5ffd5b5051919050565b60208152815160208201526020820151604082015261ffff604083015116606082015263ffffffff606083015116608082015263ffffffff60808301511660a08201525f60a083015160c08084015280518060e0850152806020830161010086015e5f61010082860101526101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116850101925050509291505056fea2646970667358221220b371f1d9e18829e41d1e00e5faeb7b80c17d346a187a975c52545a1c3810df5c64736f6c634300081c0033";
static readonly abi: readonly [{
readonly type: "constructor";
readonly inputs: readonly [{
readonly name: "subscriptionId";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "_vrfCoordinator";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "acceptOwnership";
readonly inputs: readonly [];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "addConsumer";
readonly inputs: readonly [{
readonly name: "subId";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "consumer";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "createSubscription";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "fundSubscriptionWithNative";
readonly inputs: readonly [{
readonly name: "subId";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [];
readonly stateMutability: "payable";
}, {
readonly type: "function";
readonly name: "getRandomWords";
readonly inputs: readonly [{
readonly name: "_requestId";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256[]";
readonly internalType: "uint256[]";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "owner";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "randomWordsOf";
readonly inputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "rawFulfillRandomWords";
readonly inputs: readonly [{
readonly name: "requestId";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "randomWords";
readonly type: "uint256[]";
readonly internalType: "uint256[]";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "requestId";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "requestRandomWords";
readonly inputs: readonly [{
readonly name: "callbackGasLimit";
readonly type: "uint32";
readonly internalType: "uint32";
}];
readonly outputs: readonly [{
readonly name: "_requestId";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "s_vrfCoordinator";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IVRFCoordinatorV2Plus";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "setCoordinator";
readonly inputs: readonly [{
readonly name: "_vrfCoordinator";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "setSubscription";
readonly inputs: readonly [{
readonly name: "subId";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "transferOwnership";
readonly inputs: readonly [{
readonly name: "to";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "event";
readonly name: "CoordinatorSet";
readonly inputs: readonly [{
readonly name: "vrfCoordinator";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "OwnershipTransferRequested";
readonly inputs: readonly [{
readonly name: "from";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "to";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "OwnershipTransferred";
readonly inputs: readonly [{
readonly name: "from";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "to";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "error";
readonly name: "OnlyCoordinatorCanFulfill";
readonly inputs: readonly [{
readonly name: "have";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "want";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "OnlyOwnerOrCoordinator";
readonly inputs: readonly [{
readonly name: "have";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "owner";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "coordinator";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "ZeroAddress";
readonly inputs: readonly [];
}];
static createInterface(): ChainlinkVRFSubscriptionConsumerInterface;
static connect(address: string, runner?: ContractRunner | null): ChainlinkVRFSubscriptionConsumer;
}
export {};