vrfv2plus_wrapper

package
v2.4.1-clf-20230809 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 9, 2023 License: MIT Imports: 11 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

View Source
var VRFV2PlusWrapperABI = VRFV2PlusWrapperMetaData.ABI
View Source
var VRFV2PlusWrapperBin = VRFV2PlusWrapperMetaData.Bin
View Source
var VRFV2PlusWrapperMetaData = &bind.MetaData{
	ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_link\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_linkEthFeed\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_coordinator\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"LinkAlreadySet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"have\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"want\",\"type\":\"address\"}],\"name\":\"OnlyCoordinatorCanFulfill\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"have\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"coordinator\",\"type\":\"address\"}],\"name\":\"OnlyOwnerOrCoordinator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"consumer\",\"type\":\"address\"}],\"name\":\"WrapperFulfillmentFailed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COORDINATOR\",\"outputs\":[{\"internalType\":\"contractExtendedVRFCoordinatorV2PlusInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SUBSCRIPTION_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_callbackGasLimit\",\"type\":\"uint32\"}],\"name\":\"calculateRequestPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_callbackGasLimit\",\"type\":\"uint32\"}],\"name\":\"calculateRequestPriceNative\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_callbackGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"_requestGasPriceWei\",\"type\":\"uint256\"}],\"name\":\"estimateRequestPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_callbackGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"_requestGasPriceWei\",\"type\":\"uint256\"}],\"name\":\"estimateRequestPriceNative\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"fallbackWeiPerUnitLink\",\"type\":\"int256\"},{\"internalType\":\"uint32\",\"name\":\"stalenessSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"fulfillmentFlatFeeLinkPPM\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"wrapperGasOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"coordinatorGasOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"wrapperPremiumPercentage\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"keyHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"maxNumWords\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastRequestId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"onTokenTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"randomWords\",\"type\":\"uint256[]\"}],\"name\":\"rawFulfillRandomWords\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_callbackGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_requestConfirmations\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"_numWords\",\"type\":\"uint32\"}],\"name\":\"requestRandomWordsInNative\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"s_callbacks\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"callbackGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"requestGasPrice\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_configured\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_disabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_fulfillmentTxSizeBytes\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_link\",\"outputs\":[{\"internalType\":\"contractLinkTokenInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_linkEthFeed\",\"outputs\":[{\"internalType\":\"contractAggregatorV3Interface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_wrapperGasOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"_coordinatorGasOverhead\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"_wrapperPremiumPercentage\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_keyHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"_maxNumWords\",\"type\":\"uint8\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_vrfCoordinator\",\"type\":\"address\"}],\"name\":\"setCoordinator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"size\",\"type\":\"uint32\"}],\"name\":\"setFulfillmentTxSize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"link\",\"type\":\"address\"}],\"name\":\"setLINK\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"linkEthFeed\",\"type\":\"address\"}],\"name\":\"setLinkEthFeed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawNative\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
	Bin: "0x60c06040526004805463ffffffff60a01b1916609160a21b1790553480156200002757600080fd5b5060405162003079380380620030798339810160408190526200004a9162000317565b803380600081620000a25760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000d557620000d5816200024e565b5050600280546001600160a01b0319166001600160a01b03938416179055508316156200011857600380546001600160a01b0319166001600160a01b0385161790555b6001600160a01b038216156200014457600480546001600160a01b0319166001600160a01b0384161790555b806001600160a01b03166080816001600160a01b031660601b815250506000816001600160a01b031663a21a23e46040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156200019f57600080fd5b505af1158015620001b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001da919062000361565b60a0819052604051632fb1302360e21b8152600481018290523060248201529091506001600160a01b0383169063bec4c08c90604401600060405180830381600087803b1580156200022b57600080fd5b505af115801562000240573d6000803e3d6000fd5b50505050505050506200037b565b6001600160a01b038116331415620002a95760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000099565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b03811681146200031257600080fd5b919050565b6000806000606084860312156200032d57600080fd5b6200033884620002fa565b92506200034860208501620002fa565b91506200035860408501620002fa565b90509250925092565b6000602082840312156200037457600080fd5b5051919050565b60805160601c60a051612ca4620003d5600039600081816101e401528181610ceb01526115ac0152600081816102ee01528181610db5015281816116330152818161193b01528181611a1c0152611ab70152612ca46000f3fe6080604052600436106101cd5760003560e01c80638da5cb5b116100f7578063bf17e55911610095578063da4f5e6d11610064578063da4f5e6d146106c7578063f2fde38b146106f4578063f3fef3a314610714578063fc2a88c31461073457600080fd5b8063bf17e55914610595578063c15ce4d7146105b5578063c3f909d4146105d5578063cdd8d8851461067d57600080fd5b8063a02e0616116100d1578063a02e061614610521578063a3907d7114610541578063a4c0ed3614610556578063a608a1e11461057657600080fd5b80638da5cb5b146104b65780638ea98117146104e1578063981837d51461050157600080fd5b80634306d3541161016f57806361d386661161013e57806361d386661461044157806362a504fc1461046e57806379ba5097146104815780637fb5d19d1461049657600080fd5b80634306d3541461033557806348baa1c5146103555780634b160935146103f757806357a8070a1461041757600080fd5b80631fe543e3116101ab5780631fe543e3146102875780632f2770db146102a75780633255c456146102bc5780633b2bcbf1146102dc57600080fd5b8063030932bb146101d257806307b18bde14610219578063181f5a771461023b575b600080fd5b3480156101de57600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b34801561022557600080fd5b506102396102343660046125cc565b61074a565b005b34801561024757600080fd5b50604080518082018252601281527f56524656325772617070657220312e302e300000000000000000000000000000602082015290516102109190612a3a565b34801561029357600080fd5b506102396102a2366004612730565b610826565b3480156102b357600080fd5b506102396108a7565b3480156102c857600080fd5b506102066102d73660046128d1565b6108dd565b3480156102e857600080fd5b506103107f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610210565b34801561034157600080fd5b50610206610350366004612869565b6109d5565b34801561036157600080fd5b506103c0610370366004612717565b600b602052600090815260409020805460019091015473ffffffffffffffffffffffffffffffffffffffff82169174010000000000000000000000000000000000000000900463ffffffff169083565b6040805173ffffffffffffffffffffffffffffffffffffffff909416845263ffffffff909216602084015290820152606001610210565b34801561040357600080fd5b50610206610412366004612869565b610adc565b34801561042357600080fd5b506006546104319060ff1681565b6040519015158152602001610210565b34801561044d57600080fd5b506004546103109073ffffffffffffffffffffffffffffffffffffffff1681565b61020661047c366004612886565b610bd3565b34801561048d57600080fd5b50610239610ee5565b3480156104a257600080fd5b506102066104b13660046128d1565b610fe2565b3480156104c257600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610310565b3480156104ed57600080fd5b506102396104fc3660046125b1565b6110e8565b34801561050d57600080fd5b5061023961051c3660046125b1565b6111f3565b34801561052d57600080fd5b5061023961053c3660046125b1565b611242565b34801561054d57600080fd5b506102396112e1565b34801561056257600080fd5b506102396105713660046125f6565b611313565b34801561058257600080fd5b5060065461043190610100900460ff1681565b3480156105a157600080fd5b506102396105b0366004612869565b611793565b3480156105c157600080fd5b506102396105d0366004612929565b6117ea565b3480156105e157600080fd5b50600754600854600954600a546040805194855263ffffffff808516602087015264010000000085048116918601919091526c01000000000000000000000000840481166060860152700100000000000000000000000000000000840416608085015260ff74010000000000000000000000000000000000000000909304831660a085015260c08401919091521660e082015261010001610210565b34801561068957600080fd5b506004546106b29074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610210565b3480156106d357600080fd5b506003546103109073ffffffffffffffffffffffffffffffffffffffff1681565b34801561070057600080fd5b5061023961070f3660046125b1565b611bc6565b34801561072057600080fd5b5061023961072f3660046125cc565b611bda565b34801561074057600080fd5b5061020660055481565b610752611c8e565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146107ac576040519150601f19603f3d011682016040523d82523d6000602084013e6107b1565b606091505b5050905080610821576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f6661696c656420746f207769746864726177206e61746976650000000000000060448201526064015b60405180910390fd5b505050565b60025473ffffffffffffffffffffffffffffffffffffffff163314610899576002546040517f1cf993f400000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff9091166024820152604401610818565b6108a38282611d11565b5050565b6108af611c8e565b600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055565b60065460009060ff1661094c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f77726170706572206973206e6f7420636f6e66696775726564000000000000006044820152606401610818565b600654610100900460ff16156109be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f777261707065722069732064697361626c6564000000000000000000000000006044820152606401610818565b6109ce8363ffffffff1683611efd565b9392505050565b60065460009060ff16610a44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f77726170706572206973206e6f7420636f6e66696775726564000000000000006044820152606401610818565b600654610100900460ff1615610ab6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f777261707065722069732064697361626c6564000000000000000000000000006044820152606401610818565b6000610ac061200e565b9050610ad38363ffffffff163a8361215d565b9150505b919050565b60065460009060ff16610b4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f77726170706572206973206e6f7420636f6e66696775726564000000000000006044820152606401610818565b600654610100900460ff1615610bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f777261707065722069732064697361626c6564000000000000000000000000006044820152606401610818565b610bcd8263ffffffff163a611efd565b92915050565b600080610bdf8561228a565b90506000610bf38663ffffffff163a611efd565b905080341015610c5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f66656520746f6f206c6f770000000000000000000000000000000000000000006044820152606401610818565b600a5460ff1663ffffffff85161115610cd4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6e756d576f72647320746f6f20686967680000000000000000000000000000006044820152606401610818565b60006040518060c0016040528060095481526020017f000000000000000000000000000000000000000000000000000000000000000081526020018761ffff1681526020016008600c9054906101000a900463ffffffff16858a610d389190612b10565b610d429190612b10565b63ffffffff1681526020018663ffffffff168152602001610d736040518060200160405280600115158152506122a2565b90526040517f9b1c385e00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690639b1c385e90610dea908490600401612a4d565b602060405180830381600087803b158015610e0457600080fd5b505af1158015610e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3c919061269f565b6040805160608101825233815263ffffffff808b1660208084019182523a8486019081526000878152600b90925294902092518354915190921674010000000000000000000000000000000000000000027fffffffffffffffff00000000000000000000000000000000000000000000000090911673ffffffffffffffffffffffffffffffffffffffff9290921691909117178155905160019091015593505050509392505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610f66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e6572000000000000000000006044820152606401610818565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b60065460009060ff16611051576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f77726170706572206973206e6f7420636f6e66696775726564000000000000006044820152606401610818565b600654610100900460ff16156110c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f777261707065722069732064697361626c6564000000000000000000000000006044820152606401610818565b60006110cd61200e565b90506110e08463ffffffff16848361215d565b949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314801590611128575060025473ffffffffffffffffffffffffffffffffffffffff163314155b156111ac573361114d60005473ffffffffffffffffffffffffffffffffffffffff1690565b6002546040517f061db9c100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff93841660048201529183166024830152919091166044820152606401610818565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6111fb611c8e565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61124a611c8e565b60035473ffffffffffffffffffffffffffffffffffffffff161561129a576040517f2d118a6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6112e9611c8e565b600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055565b60065460ff1661137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f77726170706572206973206e6f7420636f6e66696775726564000000000000006044820152606401610818565b600654610100900460ff16156113f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f777261707065722069732064697361626c6564000000000000000000000000006044820152606401610818565b60035473ffffffffffffffffffffffffffffffffffffffff163314611472576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f6f6e6c792063616c6c61626c652066726f6d204c494e4b0000000000000000006044820152606401610818565b6000808061148284860186612886565b92509250925060006114938461228a565b9050600061149f61200e565b905060006114b48663ffffffff163a8461215d565b905080891015611520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f66656520746f6f206c6f770000000000000000000000000000000000000000006044820152606401610818565b600a5460ff1663ffffffff85161115611595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6e756d576f72647320746f6f20686967680000000000000000000000000000006044820152606401610818565b60006040518060c0016040528060095481526020017f000000000000000000000000000000000000000000000000000000000000000081526020018761ffff1681526020016008600c9054906101000a900463ffffffff16868a6115f99190612b10565b6116039190612b10565b63ffffffff1681526020018663ffffffff16815260200160405180602001604052806000815250815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639b1c385e836040518263ffffffff1660e01b815260040161168a9190612a4d565b602060405180830381600087803b1580156116a457600080fd5b505af11580156116b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116dc919061269f565b6040805160608101825273ffffffffffffffffffffffffffffffffffffffff9e8f16815263ffffffff9a8b1660208083019182523a8385019081526000868152600b909252939020915182549151909c1674010000000000000000000000000000000000000000027fffffffffffffffff0000000000000000000000000000000000000000000000009091169b909f169a909a179d909d1789559b5160019098019790975550505060059790975550505050505050565b61179b611c8e565b6004805463ffffffff90921674010000000000000000000000000000000000000000027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6117f2611c8e565b6008805460ff80861674010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff63ffffffff898116700100000000000000000000000000000000027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff918c166c0100000000000000000000000002919091167fffffffffffffffffffffffff0000000000000000ffffffffffffffffffffffff909516949094179390931792909216919091179091556009839055600a80549183167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00928316179055600680549091166001179055604080517f088070f5000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169163088070f5916004828101926080929190829003018186803b15801561198157600080fd5b505afa158015611995573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b991906126b8565b50600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff929092169190911790555050604080517f043bd6ae00000000000000000000000000000000000000000000000000000000815290517f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169163043bd6ae916004808301926020929190829003018186803b158015611a7757600080fd5b505afa158015611a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aaf919061269f565b6007819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636b6feccc6040518163ffffffff1660e01b8152600401604080518083038186803b158015611b1a57600080fd5b505afa158015611b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5291906128ef565b600880547fffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffff166801000000000000000063ffffffff938416027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff161764010000000093909216929092021790555050505050565b611bce611c8e565b611bd78161235e565b50565b611be2611c8e565b6003546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b158015611c5657600080fd5b505af1158015611c6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610821919061267d565b60005473ffffffffffffffffffffffffffffffffffffffff163314611d0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610818565b565b6000828152600b602081815260408084208151606081018352815473ffffffffffffffffffffffffffffffffffffffff808216835263ffffffff740100000000000000000000000000000000000000008304168387015260018401805495840195909552898852959094527fffffffffffffffff000000000000000000000000000000000000000000000000909316905592909255815116611e0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f72657175657374206e6f7420666f756e640000000000000000000000000000006044820152606401610818565b600080631fe543e360e01b8585604051602401611e2d929190612aaa565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000611ea7846020015163ffffffff16856000015184612454565b905080611ef557835160405173ffffffffffffffffffffffffffffffffffffffff9091169087907fc551b83c151f2d1c7eeb938ac59008e0409f1c1dc1e2f112449d4d79b458902290600090a35b505050505050565b6004546000908190611f2c9074010000000000000000000000000000000000000000900463ffffffff166124a0565b60085463ffffffff7001000000000000000000000000000000008204811691611f67916c010000000000000000000000009091041687612af8565b611f719190612af8565b611f7b9085612b94565b611f859190612af8565b6008549091508190600090606490611fb89074010000000000000000000000000000000000000000900460ff1682612b38565b611fc59060ff1684612b94565b611fcf9190612b5d565b600854909150600090611ff99068010000000000000000900463ffffffff1664e8d4a51000612b94565b6120039083612af8565b979650505050505050565b60085460048054604080517ffeaf968c000000000000000000000000000000000000000000000000000000008152905160009463ffffffff161515938593849373ffffffffffffffffffffffffffffffffffffffff9091169263feaf968c928281019260a0929190829003018186803b15801561208a57600080fd5b505afa15801561209e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c2919061298b565b5094509092508491505080156120e857506120dd8242612bd1565b60085463ffffffff16105b156120f257506007545b60008112156109ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e76616c6964204c494e4b20776569207072696365000000000000000000006044820152606401610818565b600454600090819061218c9074010000000000000000000000000000000000000000900463ffffffff166124a0565b60085463ffffffff70010000000000000000000000000000000082048116916121c7916c010000000000000000000000009091041688612af8565b6121d19190612af8565b6121db9086612b94565b6121e59190612af8565b90506000836121fc83670de0b6b3a7640000612b94565b6122069190612b5d565b6008549091506000906064906122379074010000000000000000000000000000000000000000900460ff1682612b38565b6122449060ff1684612b94565b61224e9190612b5d565b60085490915060009061227490640100000000900463ffffffff1664e8d4a51000612b94565b61227e9083612af8565b98975050505050505050565b6000612297603f83612b71565b610bcd906001612b10565b60607f92fd13387c7fe7befbc38d303d6468778fb9731bc4583f17d92989c6fcfdeaaa826040516024016122db91511515815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915292915050565b73ffffffffffffffffffffffffffffffffffffffff81163314156123de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610818565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60005a61138881101561246657600080fd5b61138881039050846040820482031161247e57600080fd5b50823b61248a57600080fd5b60008083516020850160008789f1949350505050565b60004661a4b18114806124b5575062066eed81145b15612559576000606c73ffffffffffffffffffffffffffffffffffffffff166341b247a86040518163ffffffff1660e01b815260040160c06040518083038186803b15801561250357600080fd5b505afa158015612517573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253b919061281f565b5050505091505083608c61254f9190612af8565b6110e09082612b94565b50600092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ad757600080fd5b803560ff81168114610ad757600080fd5b805169ffffffffffffffffffff81168114610ad757600080fd5b6000602082840312156125c357600080fd5b6109ce82612562565b600080604083850312156125df57600080fd5b6125e883612562565b946020939093013593505050565b6000806000806060858703121561260c57600080fd5b61261585612562565b935060208501359250604085013567ffffffffffffffff8082111561263957600080fd5b818701915087601f83011261264d57600080fd5b81358181111561265c57600080fd5b88602082850101111561266e57600080fd5b95989497505060200194505050565b60006020828403121561268f57600080fd5b815180151581146109ce57600080fd5b6000602082840312156126b157600080fd5b5051919050565b600080600080608085870312156126ce57600080fd5b84516126d981612c75565b60208601519094506126ea81612c85565b60408601519093506126fb81612c85565b606086015190925061270c81612c85565b939692955090935050565b60006020828403121561272957600080fd5b5035919050565b6000806040838503121561274357600080fd5b8235915060208084013567ffffffffffffffff8082111561276357600080fd5b818601915086601f83011261277757600080fd5b81358181111561278957612789612c46565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811085821117156127cc576127cc612c46565b604052828152858101935084860182860187018b10156127eb57600080fd5b600095505b8386101561280e5780358552600195909501949386019386016127f0565b508096505050505050509250929050565b60008060008060008060c0878903121561283857600080fd5b865195506020870151945060408701519350606087015192506080870151915060a087015190509295509295509295565b60006020828403121561287b57600080fd5b81356109ce81612c85565b60008060006060848603121561289b57600080fd5b83356128a681612c85565b925060208401356128b681612c75565b915060408401356128c681612c85565b809150509250925092565b600080604083850312156128e457600080fd5b82356125e881612c85565b6000806040838503121561290257600080fd5b825161290d81612c85565b602084015190925061291e81612c85565b809150509250929050565b600080600080600060a0868803121561294157600080fd5b853561294c81612c85565b9450602086013561295c81612c85565b935061296a60408701612586565b92506060860135915061297f60808701612586565b90509295509295909350565b600080600080600060a086880312156129a357600080fd5b6129ac86612597565b945060208601519350604086015192506060860151915061297f60808701612597565b6000815180845260005b818110156129f5576020818501810151868301820152016129d9565b81811115612a07576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006109ce60208301846129cf565b60208152815160208201526020820151604082015261ffff60408301511660608201526000606083015163ffffffff80821660808501528060808601511660a0850152505060a083015160c0808401526110e060e08401826129cf565b6000604082018483526020604081850152818551808452606086019150828701935060005b81811015612aeb57845183529383019391830191600101612acf565b5090979650505050505050565b60008219821115612b0b57612b0b612be8565b500190565b600063ffffffff808316818516808303821115612b2f57612b2f612be8565b01949350505050565b600060ff821660ff84168060ff03821115612b5557612b55612be8565b019392505050565b600082612b6c57612b6c612c17565b500490565b600063ffffffff80841680612b8857612b88612c17565b92169190910492915050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612bcc57612bcc612be8565b500290565b600082821015612be357612be3612be8565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61ffff81168114611bd757600080fd5b63ffffffff81168114611bd757600080fdfea164736f6c6343000806000a",
}

Functions

This section is empty.

Types

type GetConfig

type GetConfig struct {
	FallbackWeiPerUnitLink    *big.Int
	StalenessSeconds          uint32
	FulfillmentFlatFeeLinkPPM uint32
	WrapperGasOverhead        uint32
	CoordinatorGasOverhead    uint32
	WrapperPremiumPercentage  uint8
	KeyHash                   [32]byte
	MaxNumWords               uint8
}

type SCallbacks

type SCallbacks struct {
	CallbackAddress  common.Address
	CallbackGasLimit uint32
	RequestGasPrice  *big.Int
}

type VRFV2PlusWrapper

type VRFV2PlusWrapper struct {
	VRFV2PlusWrapperCaller
	VRFV2PlusWrapperTransactor
	VRFV2PlusWrapperFilterer
	// contains filtered or unexported fields
}

func DeployVRFV2PlusWrapper

func DeployVRFV2PlusWrapper(auth *bind.TransactOpts, backend bind.ContractBackend, _link common.Address, _linkEthFeed common.Address, _coordinator common.Address) (common.Address, *types.Transaction, *VRFV2PlusWrapper, error)

func NewVRFV2PlusWrapper

func NewVRFV2PlusWrapper(address common.Address, backend bind.ContractBackend) (*VRFV2PlusWrapper, error)

func (*VRFV2PlusWrapper) Address

func (_VRFV2PlusWrapper *VRFV2PlusWrapper) Address() common.Address

func (*VRFV2PlusWrapper) ParseLog

func (_VRFV2PlusWrapper *VRFV2PlusWrapper) ParseLog(log types.Log) (generated.AbigenLog, error)

type VRFV2PlusWrapperCaller

type VRFV2PlusWrapperCaller struct {
	// contains filtered or unexported fields
}

func NewVRFV2PlusWrapperCaller

func NewVRFV2PlusWrapperCaller(address common.Address, caller bind.ContractCaller) (*VRFV2PlusWrapperCaller, error)

func (*VRFV2PlusWrapperCaller) COORDINATOR

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCaller) COORDINATOR(opts *bind.CallOpts) (common.Address, error)

func (*VRFV2PlusWrapperCaller) CalculateRequestPrice

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCaller) CalculateRequestPrice(opts *bind.CallOpts, _callbackGasLimit uint32) (*big.Int, error)

func (*VRFV2PlusWrapperCaller) CalculateRequestPriceNative

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCaller) CalculateRequestPriceNative(opts *bind.CallOpts, _callbackGasLimit uint32) (*big.Int, error)

func (*VRFV2PlusWrapperCaller) EstimateRequestPrice

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCaller) EstimateRequestPrice(opts *bind.CallOpts, _callbackGasLimit uint32, _requestGasPriceWei *big.Int) (*big.Int, error)

func (*VRFV2PlusWrapperCaller) EstimateRequestPriceNative

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCaller) EstimateRequestPriceNative(opts *bind.CallOpts, _callbackGasLimit uint32, _requestGasPriceWei *big.Int) (*big.Int, error)

func (*VRFV2PlusWrapperCaller) GetConfig

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCaller) GetConfig(opts *bind.CallOpts) (GetConfig,

	error)

func (*VRFV2PlusWrapperCaller) LastRequestId

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCaller) LastRequestId(opts *bind.CallOpts) (*big.Int, error)

func (*VRFV2PlusWrapperCaller) Owner

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCaller) Owner(opts *bind.CallOpts) (common.Address, error)

func (*VRFV2PlusWrapperCaller) SCallbacks

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCaller) SCallbacks(opts *bind.CallOpts, arg0 *big.Int) (SCallbacks,

	error)

func (*VRFV2PlusWrapperCaller) SConfigured

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCaller) SConfigured(opts *bind.CallOpts) (bool, error)

func (*VRFV2PlusWrapperCaller) SDisabled

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCaller) SDisabled(opts *bind.CallOpts) (bool, error)

func (*VRFV2PlusWrapperCaller) SFulfillmentTxSizeBytes

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCaller) SFulfillmentTxSizeBytes(opts *bind.CallOpts) (uint32, error)
func (_VRFV2PlusWrapper *VRFV2PlusWrapperCaller) SLink(opts *bind.CallOpts) (common.Address, error)

func (*VRFV2PlusWrapperCaller) SLinkEthFeed

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCaller) SLinkEthFeed(opts *bind.CallOpts) (common.Address, error)

func (*VRFV2PlusWrapperCaller) SUBSCRIPTIONID

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCaller) SUBSCRIPTIONID(opts *bind.CallOpts) (*big.Int, error)

func (*VRFV2PlusWrapperCaller) TypeAndVersion

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCaller) TypeAndVersion(opts *bind.CallOpts) (string, error)

type VRFV2PlusWrapperCallerRaw

type VRFV2PlusWrapperCallerRaw struct {
	Contract *VRFV2PlusWrapperCaller
}

func (*VRFV2PlusWrapperCallerRaw) Call

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error

type VRFV2PlusWrapperCallerSession

type VRFV2PlusWrapperCallerSession struct {
	Contract *VRFV2PlusWrapperCaller
	CallOpts bind.CallOpts
}

func (*VRFV2PlusWrapperCallerSession) COORDINATOR

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCallerSession) COORDINATOR() (common.Address, error)

func (*VRFV2PlusWrapperCallerSession) CalculateRequestPrice

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCallerSession) CalculateRequestPrice(_callbackGasLimit uint32) (*big.Int, error)

func (*VRFV2PlusWrapperCallerSession) CalculateRequestPriceNative

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCallerSession) CalculateRequestPriceNative(_callbackGasLimit uint32) (*big.Int, error)

func (*VRFV2PlusWrapperCallerSession) EstimateRequestPrice

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCallerSession) EstimateRequestPrice(_callbackGasLimit uint32, _requestGasPriceWei *big.Int) (*big.Int, error)

func (*VRFV2PlusWrapperCallerSession) EstimateRequestPriceNative

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCallerSession) EstimateRequestPriceNative(_callbackGasLimit uint32, _requestGasPriceWei *big.Int) (*big.Int, error)

func (*VRFV2PlusWrapperCallerSession) GetConfig

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCallerSession) GetConfig() (GetConfig,

	error)

func (*VRFV2PlusWrapperCallerSession) LastRequestId

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCallerSession) LastRequestId() (*big.Int, error)

func (*VRFV2PlusWrapperCallerSession) Owner

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCallerSession) Owner() (common.Address, error)

func (*VRFV2PlusWrapperCallerSession) SCallbacks

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCallerSession) SCallbacks(arg0 *big.Int) (SCallbacks,

	error)

func (*VRFV2PlusWrapperCallerSession) SConfigured

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCallerSession) SConfigured() (bool, error)

func (*VRFV2PlusWrapperCallerSession) SDisabled

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCallerSession) SDisabled() (bool, error)

func (*VRFV2PlusWrapperCallerSession) SFulfillmentTxSizeBytes

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCallerSession) SFulfillmentTxSizeBytes() (uint32, error)
func (_VRFV2PlusWrapper *VRFV2PlusWrapperCallerSession) SLink() (common.Address, error)

func (*VRFV2PlusWrapperCallerSession) SLinkEthFeed

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCallerSession) SLinkEthFeed() (common.Address, error)

func (*VRFV2PlusWrapperCallerSession) SUBSCRIPTIONID

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCallerSession) SUBSCRIPTIONID() (*big.Int, error)

func (*VRFV2PlusWrapperCallerSession) TypeAndVersion

func (_VRFV2PlusWrapper *VRFV2PlusWrapperCallerSession) TypeAndVersion() (string, error)

type VRFV2PlusWrapperFilterer

type VRFV2PlusWrapperFilterer struct {
	// contains filtered or unexported fields
}

func NewVRFV2PlusWrapperFilterer

func NewVRFV2PlusWrapperFilterer(address common.Address, filterer bind.ContractFilterer) (*VRFV2PlusWrapperFilterer, error)

func (*VRFV2PlusWrapperFilterer) FilterOwnershipTransferRequested

func (_VRFV2PlusWrapper *VRFV2PlusWrapperFilterer) FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*VRFV2PlusWrapperOwnershipTransferRequestedIterator, error)

func (*VRFV2PlusWrapperFilterer) FilterOwnershipTransferred

func (_VRFV2PlusWrapper *VRFV2PlusWrapperFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*VRFV2PlusWrapperOwnershipTransferredIterator, error)

func (*VRFV2PlusWrapperFilterer) FilterWrapperFulfillmentFailed

func (_VRFV2PlusWrapper *VRFV2PlusWrapperFilterer) FilterWrapperFulfillmentFailed(opts *bind.FilterOpts, requestId []*big.Int, consumer []common.Address) (*VRFV2PlusWrapperWrapperFulfillmentFailedIterator, error)

func (*VRFV2PlusWrapperFilterer) ParseOwnershipTransferRequested

func (_VRFV2PlusWrapper *VRFV2PlusWrapperFilterer) ParseOwnershipTransferRequested(log types.Log) (*VRFV2PlusWrapperOwnershipTransferRequested, error)

func (*VRFV2PlusWrapperFilterer) ParseOwnershipTransferred

func (_VRFV2PlusWrapper *VRFV2PlusWrapperFilterer) ParseOwnershipTransferred(log types.Log) (*VRFV2PlusWrapperOwnershipTransferred, error)

func (*VRFV2PlusWrapperFilterer) ParseWrapperFulfillmentFailed

func (_VRFV2PlusWrapper *VRFV2PlusWrapperFilterer) ParseWrapperFulfillmentFailed(log types.Log) (*VRFV2PlusWrapperWrapperFulfillmentFailed, error)

func (*VRFV2PlusWrapperFilterer) WatchOwnershipTransferRequested

func (_VRFV2PlusWrapper *VRFV2PlusWrapperFilterer) WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *VRFV2PlusWrapperOwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error)

func (*VRFV2PlusWrapperFilterer) WatchOwnershipTransferred

func (_VRFV2PlusWrapper *VRFV2PlusWrapperFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *VRFV2PlusWrapperOwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error)

func (*VRFV2PlusWrapperFilterer) WatchWrapperFulfillmentFailed

func (_VRFV2PlusWrapper *VRFV2PlusWrapperFilterer) WatchWrapperFulfillmentFailed(opts *bind.WatchOpts, sink chan<- *VRFV2PlusWrapperWrapperFulfillmentFailed, requestId []*big.Int, consumer []common.Address) (event.Subscription, error)

type VRFV2PlusWrapperInterface

type VRFV2PlusWrapperInterface interface {
	COORDINATOR(opts *bind.CallOpts) (common.Address, error)

	SUBSCRIPTIONID(opts *bind.CallOpts) (*big.Int, error)

	CalculateRequestPrice(opts *bind.CallOpts, _callbackGasLimit uint32) (*big.Int, error)

	CalculateRequestPriceNative(opts *bind.CallOpts, _callbackGasLimit uint32) (*big.Int, error)

	EstimateRequestPrice(opts *bind.CallOpts, _callbackGasLimit uint32, _requestGasPriceWei *big.Int) (*big.Int, error)

	EstimateRequestPriceNative(opts *bind.CallOpts, _callbackGasLimit uint32, _requestGasPriceWei *big.Int) (*big.Int, error)

	GetConfig(opts *bind.CallOpts) (GetConfig,

		error)

	LastRequestId(opts *bind.CallOpts) (*big.Int, error)

	Owner(opts *bind.CallOpts) (common.Address, error)

	SCallbacks(opts *bind.CallOpts, arg0 *big.Int) (SCallbacks,

		error)

	SConfigured(opts *bind.CallOpts) (bool, error)

	SDisabled(opts *bind.CallOpts) (bool, error)

	SFulfillmentTxSizeBytes(opts *bind.CallOpts) (uint32, error)

	SLink(opts *bind.CallOpts) (common.Address, error)

	SLinkEthFeed(opts *bind.CallOpts) (common.Address, error)

	TypeAndVersion(opts *bind.CallOpts) (string, error)

	AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error)

	Disable(opts *bind.TransactOpts) (*types.Transaction, error)

	Enable(opts *bind.TransactOpts) (*types.Transaction, error)

	OnTokenTransfer(opts *bind.TransactOpts, _sender common.Address, _amount *big.Int, _data []byte) (*types.Transaction, error)

	RawFulfillRandomWords(opts *bind.TransactOpts, requestId *big.Int, randomWords []*big.Int) (*types.Transaction, error)

	RequestRandomWordsInNative(opts *bind.TransactOpts, _callbackGasLimit uint32, _requestConfirmations uint16, _numWords uint32) (*types.Transaction, error)

	SetConfig(opts *bind.TransactOpts, _wrapperGasOverhead uint32, _coordinatorGasOverhead uint32, _wrapperPremiumPercentage uint8, _keyHash [32]byte, _maxNumWords uint8) (*types.Transaction, error)

	SetCoordinator(opts *bind.TransactOpts, _vrfCoordinator common.Address) (*types.Transaction, error)

	SetFulfillmentTxSize(opts *bind.TransactOpts, size uint32) (*types.Transaction, error)

	SetLINK(opts *bind.TransactOpts, link common.Address) (*types.Transaction, error)

	SetLinkEthFeed(opts *bind.TransactOpts, linkEthFeed common.Address) (*types.Transaction, error)

	TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error)

	Withdraw(opts *bind.TransactOpts, _recipient common.Address, _amount *big.Int) (*types.Transaction, error)

	WithdrawNative(opts *bind.TransactOpts, _recipient common.Address, _amount *big.Int) (*types.Transaction, error)

	FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*VRFV2PlusWrapperOwnershipTransferRequestedIterator, error)

	WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *VRFV2PlusWrapperOwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error)

	ParseOwnershipTransferRequested(log types.Log) (*VRFV2PlusWrapperOwnershipTransferRequested, error)

	FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*VRFV2PlusWrapperOwnershipTransferredIterator, error)

	WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *VRFV2PlusWrapperOwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error)

	ParseOwnershipTransferred(log types.Log) (*VRFV2PlusWrapperOwnershipTransferred, error)

	FilterWrapperFulfillmentFailed(opts *bind.FilterOpts, requestId []*big.Int, consumer []common.Address) (*VRFV2PlusWrapperWrapperFulfillmentFailedIterator, error)

	WatchWrapperFulfillmentFailed(opts *bind.WatchOpts, sink chan<- *VRFV2PlusWrapperWrapperFulfillmentFailed, requestId []*big.Int, consumer []common.Address) (event.Subscription, error)

	ParseWrapperFulfillmentFailed(log types.Log) (*VRFV2PlusWrapperWrapperFulfillmentFailed, error)

	ParseLog(log types.Log) (generated.AbigenLog, error)

	Address() common.Address
}

type VRFV2PlusWrapperOwnershipTransferRequested

type VRFV2PlusWrapperOwnershipTransferRequested struct {
	From common.Address
	To   common.Address
	Raw  types.Log
}

func (VRFV2PlusWrapperOwnershipTransferRequested) Topic

type VRFV2PlusWrapperOwnershipTransferRequestedIterator

type VRFV2PlusWrapperOwnershipTransferRequestedIterator struct {
	Event *VRFV2PlusWrapperOwnershipTransferRequested
	// contains filtered or unexported fields
}

func (*VRFV2PlusWrapperOwnershipTransferRequestedIterator) Close

func (*VRFV2PlusWrapperOwnershipTransferRequestedIterator) Error

func (*VRFV2PlusWrapperOwnershipTransferRequestedIterator) Next

type VRFV2PlusWrapperOwnershipTransferred

type VRFV2PlusWrapperOwnershipTransferred struct {
	From common.Address
	To   common.Address
	Raw  types.Log
}

func (VRFV2PlusWrapperOwnershipTransferred) Topic

type VRFV2PlusWrapperOwnershipTransferredIterator

type VRFV2PlusWrapperOwnershipTransferredIterator struct {
	Event *VRFV2PlusWrapperOwnershipTransferred
	// contains filtered or unexported fields
}

func (*VRFV2PlusWrapperOwnershipTransferredIterator) Close

func (*VRFV2PlusWrapperOwnershipTransferredIterator) Error

func (*VRFV2PlusWrapperOwnershipTransferredIterator) Next

type VRFV2PlusWrapperRaw

type VRFV2PlusWrapperRaw struct {
	Contract *VRFV2PlusWrapper
}

func (*VRFV2PlusWrapperRaw) Call

func (_VRFV2PlusWrapper *VRFV2PlusWrapperRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error

func (*VRFV2PlusWrapperRaw) Transact

func (_VRFV2PlusWrapper *VRFV2PlusWrapperRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error)

func (*VRFV2PlusWrapperRaw) Transfer

func (_VRFV2PlusWrapper *VRFV2PlusWrapperRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error)

type VRFV2PlusWrapperSession

type VRFV2PlusWrapperSession struct {
	Contract     *VRFV2PlusWrapper
	CallOpts     bind.CallOpts
	TransactOpts bind.TransactOpts
}

func (*VRFV2PlusWrapperSession) AcceptOwnership

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) AcceptOwnership() (*types.Transaction, error)

func (*VRFV2PlusWrapperSession) COORDINATOR

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) COORDINATOR() (common.Address, error)

func (*VRFV2PlusWrapperSession) CalculateRequestPrice

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) CalculateRequestPrice(_callbackGasLimit uint32) (*big.Int, error)

func (*VRFV2PlusWrapperSession) CalculateRequestPriceNative

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) CalculateRequestPriceNative(_callbackGasLimit uint32) (*big.Int, error)

func (*VRFV2PlusWrapperSession) Disable

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) Disable() (*types.Transaction, error)

func (*VRFV2PlusWrapperSession) Enable

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) Enable() (*types.Transaction, error)

func (*VRFV2PlusWrapperSession) EstimateRequestPrice

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) EstimateRequestPrice(_callbackGasLimit uint32, _requestGasPriceWei *big.Int) (*big.Int, error)

func (*VRFV2PlusWrapperSession) EstimateRequestPriceNative

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) EstimateRequestPriceNative(_callbackGasLimit uint32, _requestGasPriceWei *big.Int) (*big.Int, error)

func (*VRFV2PlusWrapperSession) GetConfig

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) GetConfig() (GetConfig,

	error)

func (*VRFV2PlusWrapperSession) LastRequestId

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) LastRequestId() (*big.Int, error)

func (*VRFV2PlusWrapperSession) OnTokenTransfer

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) OnTokenTransfer(_sender common.Address, _amount *big.Int, _data []byte) (*types.Transaction, error)

func (*VRFV2PlusWrapperSession) Owner

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) Owner() (common.Address, error)

func (*VRFV2PlusWrapperSession) RawFulfillRandomWords

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) RawFulfillRandomWords(requestId *big.Int, randomWords []*big.Int) (*types.Transaction, error)

func (*VRFV2PlusWrapperSession) RequestRandomWordsInNative

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) RequestRandomWordsInNative(_callbackGasLimit uint32, _requestConfirmations uint16, _numWords uint32) (*types.Transaction, error)

func (*VRFV2PlusWrapperSession) SCallbacks

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) SCallbacks(arg0 *big.Int) (SCallbacks,

	error)

func (*VRFV2PlusWrapperSession) SConfigured

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) SConfigured() (bool, error)

func (*VRFV2PlusWrapperSession) SDisabled

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) SDisabled() (bool, error)

func (*VRFV2PlusWrapperSession) SFulfillmentTxSizeBytes

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) SFulfillmentTxSizeBytes() (uint32, error)
func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) SLink() (common.Address, error)

func (*VRFV2PlusWrapperSession) SLinkEthFeed

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) SLinkEthFeed() (common.Address, error)

func (*VRFV2PlusWrapperSession) SUBSCRIPTIONID

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) SUBSCRIPTIONID() (*big.Int, error)

func (*VRFV2PlusWrapperSession) SetConfig

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) SetConfig(_wrapperGasOverhead uint32, _coordinatorGasOverhead uint32, _wrapperPremiumPercentage uint8, _keyHash [32]byte, _maxNumWords uint8) (*types.Transaction, error)

func (*VRFV2PlusWrapperSession) SetCoordinator

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) SetCoordinator(_vrfCoordinator common.Address) (*types.Transaction, error)

func (*VRFV2PlusWrapperSession) SetFulfillmentTxSize

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) SetFulfillmentTxSize(size uint32) (*types.Transaction, error)
func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) SetLINK(link common.Address) (*types.Transaction, error)

func (*VRFV2PlusWrapperSession) SetLinkEthFeed

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) SetLinkEthFeed(linkEthFeed common.Address) (*types.Transaction, error)

func (*VRFV2PlusWrapperSession) TransferOwnership

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) TransferOwnership(to common.Address) (*types.Transaction, error)

func (*VRFV2PlusWrapperSession) TypeAndVersion

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) TypeAndVersion() (string, error)

func (*VRFV2PlusWrapperSession) Withdraw

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) Withdraw(_recipient common.Address, _amount *big.Int) (*types.Transaction, error)

func (*VRFV2PlusWrapperSession) WithdrawNative

func (_VRFV2PlusWrapper *VRFV2PlusWrapperSession) WithdrawNative(_recipient common.Address, _amount *big.Int) (*types.Transaction, error)

type VRFV2PlusWrapperTransactor

type VRFV2PlusWrapperTransactor struct {
	// contains filtered or unexported fields
}

func NewVRFV2PlusWrapperTransactor

func NewVRFV2PlusWrapperTransactor(address common.Address, transactor bind.ContractTransactor) (*VRFV2PlusWrapperTransactor, error)

func (*VRFV2PlusWrapperTransactor) AcceptOwnership

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactor) Disable

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactor) Disable(opts *bind.TransactOpts) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactor) Enable

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactor) Enable(opts *bind.TransactOpts) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactor) OnTokenTransfer

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactor) OnTokenTransfer(opts *bind.TransactOpts, _sender common.Address, _amount *big.Int, _data []byte) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactor) RawFulfillRandomWords

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactor) RawFulfillRandomWords(opts *bind.TransactOpts, requestId *big.Int, randomWords []*big.Int) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactor) RequestRandomWordsInNative

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactor) RequestRandomWordsInNative(opts *bind.TransactOpts, _callbackGasLimit uint32, _requestConfirmations uint16, _numWords uint32) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactor) SetConfig

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactor) SetConfig(opts *bind.TransactOpts, _wrapperGasOverhead uint32, _coordinatorGasOverhead uint32, _wrapperPremiumPercentage uint8, _keyHash [32]byte, _maxNumWords uint8) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactor) SetCoordinator

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactor) SetCoordinator(opts *bind.TransactOpts, _vrfCoordinator common.Address) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactor) SetFulfillmentTxSize

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactor) SetFulfillmentTxSize(opts *bind.TransactOpts, size uint32) (*types.Transaction, error)
func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactor) SetLINK(opts *bind.TransactOpts, link common.Address) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactor) SetLinkEthFeed

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactor) SetLinkEthFeed(opts *bind.TransactOpts, linkEthFeed common.Address) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactor) TransferOwnership

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactor) TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactor) Withdraw

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactor) Withdraw(opts *bind.TransactOpts, _recipient common.Address, _amount *big.Int) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactor) WithdrawNative

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactor) WithdrawNative(opts *bind.TransactOpts, _recipient common.Address, _amount *big.Int) (*types.Transaction, error)

type VRFV2PlusWrapperTransactorRaw

type VRFV2PlusWrapperTransactorRaw struct {
	Contract *VRFV2PlusWrapperTransactor
}

func (*VRFV2PlusWrapperTransactorRaw) Transact

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactorRaw) Transfer

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error)

type VRFV2PlusWrapperTransactorSession

type VRFV2PlusWrapperTransactorSession struct {
	Contract     *VRFV2PlusWrapperTransactor
	TransactOpts bind.TransactOpts
}

func (*VRFV2PlusWrapperTransactorSession) AcceptOwnership

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactorSession) AcceptOwnership() (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactorSession) Disable

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactorSession) Disable() (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactorSession) Enable

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactorSession) Enable() (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactorSession) OnTokenTransfer

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactorSession) OnTokenTransfer(_sender common.Address, _amount *big.Int, _data []byte) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactorSession) RawFulfillRandomWords

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactorSession) RawFulfillRandomWords(requestId *big.Int, randomWords []*big.Int) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactorSession) RequestRandomWordsInNative

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactorSession) RequestRandomWordsInNative(_callbackGasLimit uint32, _requestConfirmations uint16, _numWords uint32) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactorSession) SetConfig

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactorSession) SetConfig(_wrapperGasOverhead uint32, _coordinatorGasOverhead uint32, _wrapperPremiumPercentage uint8, _keyHash [32]byte, _maxNumWords uint8) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactorSession) SetCoordinator

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactorSession) SetCoordinator(_vrfCoordinator common.Address) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactorSession) SetFulfillmentTxSize

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactorSession) SetFulfillmentTxSize(size uint32) (*types.Transaction, error)
func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactorSession) SetLINK(link common.Address) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactorSession) SetLinkEthFeed

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactorSession) SetLinkEthFeed(linkEthFeed common.Address) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactorSession) TransferOwnership

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactorSession) TransferOwnership(to common.Address) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactorSession) Withdraw

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactorSession) Withdraw(_recipient common.Address, _amount *big.Int) (*types.Transaction, error)

func (*VRFV2PlusWrapperTransactorSession) WithdrawNative

func (_VRFV2PlusWrapper *VRFV2PlusWrapperTransactorSession) WithdrawNative(_recipient common.Address, _amount *big.Int) (*types.Transaction, error)

type VRFV2PlusWrapperWrapperFulfillmentFailed

type VRFV2PlusWrapperWrapperFulfillmentFailed struct {
	RequestId *big.Int
	Consumer  common.Address
	Raw       types.Log
}

func (VRFV2PlusWrapperWrapperFulfillmentFailed) Topic

type VRFV2PlusWrapperWrapperFulfillmentFailedIterator

type VRFV2PlusWrapperWrapperFulfillmentFailedIterator struct {
	Event *VRFV2PlusWrapperWrapperFulfillmentFailed
	// contains filtered or unexported fields
}

func (*VRFV2PlusWrapperWrapperFulfillmentFailedIterator) Close

func (*VRFV2PlusWrapperWrapperFulfillmentFailedIterator) Error

func (*VRFV2PlusWrapperWrapperFulfillmentFailedIterator) Next

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL