// Code generated by go-bindata. DO NOT EDIT.
// sources:
// 4byte.json (11.101kB)

package fourbyte

import (
	"crypto/sha256"
	"fmt"
	"io/ioutil"
	"os"
	"path/filepath"
	"strings"
	"time"
)

type asset struct {
	bytes  []byte
	info   os.FileInfo
	digest [sha256.Size]byte
}

type bindataFileInfo struct {
	name    string
	size    int64
	mode    os.FileMode
	modTime time.Time
}

func (fi bindataFileInfo) Name() string {
	return fi.name
}
func (fi bindataFileInfo) Size() int64 {
	return fi.size
}
func (fi bindataFileInfo) Mode() os.FileMode {
	return fi.mode
}
func (fi bindataFileInfo) ModTime() time.Time {
	return fi.modTime
}
func (fi bindataFileInfo) IsDir() bool {
	return false
}
func (fi bindataFileInfo) Sys() interface{} {
	return nil
}

//nolint:misspell
var __4byteJson = []byte(`{
  "f3c70aad": "STANDARD_DECIMALS()",
  "d144f00a": "STANDARD_SCALE_FACTOR()",
  "b46e5520": "activateValidator(address)",
  "dd62ed3e": "allowance(address,address)",
  "095ea7b3": "approve(address,uint256)",
  "f7fcc510": "autobond(address,uint256,uint256)",
  "70a08231": "balanceOf(address)",
  "a515366a": "bond(address,uint256)",
  "9dc29fac": "burn(address,uint256)",
  "852c4849": "changeCommissionRate(address,uint256)",
  "9358928b": "circulatingSupply()",
  "872cf059": "completeContractUpgrade()",
  "ae1f5fa0": "computeCommittee()",
  "79502c55": "config()",
  "b99a00e3": "configuredCommitteeSize()",
  "354c40a7": "createSchedule(address,uint256,uint256,uint256)",
  "313ce567": "decimals()",
  "d5f39488": "deployer()",
  "c9d97af4": "epochID()",
  "9c98e471": "epochTotalBondedStake()",
  "4bb278f3": "finalize()",
  "4da3baec": "finalizeInitialization(uint256)",
  "43645969": "getBlockPeriod()",
  "8ebb48b7": "getBondingRequestByID(uint256)",
  "f3f759c1": "getClientConfig()",
  "ab8f6ffe": "getCommittee()",
  "a8b2216e": "getCommitteeEnodes()",
  "0aac2da1": "getCurrentEpochPeriod()",
  "affb1cf1": "getEpochByHeight(uint256)",
  "96b477cb": "getEpochFromBlock(uint256)",
  "a9fd1a8f": "getEpochInfo()",
  "dfb1a4d2": "getEpochPeriod()",
  "731b3a03": "getLastEpochBlock()",
  "819b6463": "getMaxCommitteeSize()",
  "fed76a56": "getMaxScheduleDuration()",
  "11220633": "getMinimumBaseFee()",
  "b66b3e79": "getNewContract()",
  "25ce1bb9": "getNextEpochBlock()",
  "e7f43c68": "getOperator()",
  "833b1fce": "getOracle()",
  "7264c4da": "getSchedule(address,uint256)",
  "088566e9": "getTotalSchedules(address)",
  "f7866ee3": "getTreasuryAccount()",
  "29070c6d": "getTreasuryFee()",
  "6fd2c80b": "getUnbondingPeriod()",
  "4bfe23f1": "getUnbondingRequestByID(uint256)",
  "8d347287": "getUnbondingShare(uint256)",
  "1904bb2e": "getValidator(address)",
  "5b7d6c36": "getValidatorState(address)",
  "b7ab4db5": "getValidators()",
  "0d8e6e2c": "getVersion()",
  "9ac31074": "inflationReserve()",
  "e294df7c": "isUnbondingReleased(uint256)",
  "154d76d7": "jail(address,uint256,uint8)",
  "8ef8c2fd": "jailbound(address,uint8)",
  "89c614b8": "lastEpochTime()",
  "ae1da0b5": "lastFinalizedBlock()",
  "96f18a32": "liquidLogicContract()",
  "40c10f19": "mint(address,uint256)",
  "06fdde03": "name()",
  "241ed650": "newEpochPeriod()",
  "0ae65e7a": "pauseValidator(address)",
  "84467fdb": "registerValidator(string,address,bytes,bytes)",
  "cf9c5719": "resetContractUpgrade()",
  "1250a28d": "setAccountabilityContract(address)",
  "d372c07e": "setAcuContract(address)",
  "5a061362": "setAuctioneerContract(address)",
  "20a04467": "setBaseFeeChangeDenominator(uint256)",
  "8bac7dad": "setCommitteeSize(uint256)",
  "cd5899d0": "setElasticityMultiplier(uint256)",
  "6b5f444c": "setEpochPeriod(uint256)",
  "ee7d72b4": "setGasLimit(uint256)",
  "97b68dcd": "setGasLimitBoundDivisor(uint256)",
  "f03b959d": "setInflationControllerContract(address)",
  "15ef30f8": "setLiquidLogicContract(address)",
  "8bb2e477": "setMaxScheduleDuration(uint256)",
  "cb696f54": "setMinimumBaseFee(uint256)",
  "b47c3eaa": "setOmissionAccountabilityContract(address)",
  "520fdbbc": "setOperatorAccount(address)",
  "496ccd9b": "setOracleContract(address)",
  "ed5676e9": "setOracleRewardRate(uint256)",
  "416f86a2": "setProposerRewardRate(uint256)",
  "aabc2496": "setSlasher(address)",
  "cfd19fb9": "setStabilizationContract(address)",
  "b3ecbadd": "setSupplyControlContract(address)",
  "d886f8a2": "setTreasuryAccount(address)",
  "77e741c7": "setTreasuryFee(uint256)",
  "114eaf55": "setUnbondingPeriod(uint256)",
  "ceaad455": "setUpgradeManagerContract(address)",
  "39f9eb1f": "setWithheldRewardsPool(address)",
  "905d76e9": "setWithholdingThreshold(uint256)",
  "02fb4d85": "slash(address,uint256)",
  "122b4122": "slashAndJail(address,uint256,uint256,uint8,uint8)",
  "b1344271": "slasher()",
  "95d89b41": "symbol()",
  "18160ddd": "totalSupply()",
  "a9059cbb": "transfer(address,uint256)",
  "23b872dd": "transferFrom(address,address,uint256)",
  "a5d059ca": "unbond(address,uint256)",
  "784304b5": "updateEnode(address,string)",
  "b2ea9adb": "upgradeContract(bytes,string)",
  "d0c66054": "getSlashingScaleFactor()",
  "f189d66c": "jail((address,address,address,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256,uint256,uint256,bytes,uint8),uint256,uint8)",
  "c44a5b21": "jailbound((address,address,address,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256,uint256,uint256,bytes,uint8),uint8)",
  "f774fac0": "slash((address,address,address,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256,uint256,uint256,bytes,uint8),uint256)",
  "64d61bbe": "slashAndJail((address,address,address,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256,uint256,uint256,bytes,uint8),uint256,uint256,uint8,uint8)",
  "55463ceb": "autonity()",
  "570ca735": "operator()",
  "b3ab15fb": "setOperator(address)",
  "6e3d9ff0": "upgrade(address,string)",
  "683dd191": "scaleFactor()",
  "7adbf973": "setOracle(address)",
  "a2e62045": "update()",
  "3fa4f245": "value()",
  "96e4547c": "paidInterest()",
  "4f505895": "setStabilization(address)",
  "840c7e24": "cdps(address)",
  "8ffba9dd": "debtAmountAtTime(address,uint256)",
  "d0b06f5d": "lastUpdated()",
  "4914c008": "liquidate(address,uint256,address)",
  "4b8ef943": "setACU(address)",
  "00ede7e4": "setAuctioneer(address)",
  "52e5a050": "setSupplyControl(address)",
  "7ecc2b56": "availableSupply()",
  "44df8e70": "burn()",
  "db7f521a": "setStabilizer(address)",
  "7e47961c": "stabilizer()",
  "a8031a1d": "distributeRewards(address,uint256)",
  "6c9789b0": "finalize(bool)",
  "c3f909d4": "getConfig()",
  "dbd18388": "getGracePeriod()",
  "e08b14ed": "setCommittee(address[])",
  "92eff3cd": "calculateSupplyDelta(uint256,uint256,uint256,uint256)",
  "372500ab": "claimRewards()",
  "bd96102f": "claimTreasuryATN()",
  "3e4eb36c": "getCommissionRate()",
  "3b19e84a": "getTreasury()",
  "1eeffad0": "getTreasuryUnclaimedATN()",
  "1195e07e": "getValidator()",
  "282d3fdf": "lock(address,uint256)",
  "59355736": "lockedBalanceOf(address)",
  "a0ce552d": "redistribute(uint256)",
  "19fac8fd": "setCommissionRate(uint256)",
  "949813b8": "unclaimedRewards(address)",
  "7eee288d": "unlock(address,uint256)",
  "84955c88": "unlockedBalanceOf(address)",
  "eeb92233": "distributeProposerRewards(uint256)",
  "c549176e": "getDelta()",
  "9a11e0e6": "getInactivityScore(address)",
  "5ca1809c": "getLookbackWindow()",
  "7f5e2f11": "getScaleFactor()",
  "53b1821b": "getTotalEffort()",
  "e3deef9c": "setCommittee((address,uint256,bytes)[],address[])",
  "c024cc2c": "setEpochBlock(uint256)",
  "59974e38": "distributeRewards(uint256)",
  "f0141d84": "getDecimals()",
  "57eba759": "getNewVotePeriod()",
  "077945d3": "getNewVoters()",
  "ed78349d": "getNonRevealThreshold()",
  "9f8743f7": "getRound()",
  "3c8510fd": "getRoundData(uint256,string)",
  "df7f710e": "getSymbols()",
  "b78dec52": "getVotePeriod()",
  "cdd72253": "getVoters()",
  "33f98c77": "latestRoundData(string)",
  "3f422ef3": "setCommitRevealConfig(uint256,uint256)",
  "da39fbfe": "setSlashingConfig(int256,int256,uint256,uint256)",
  "8d4f75d2": "setSymbols(string[])",
  "da78110e": "setVoters(address[],address[],address[])",
  "0f65875c": "updateVotersAndSymbol()",
  "56833ebe": "vote(uint256,(uint120,uint8)[],uint256,uint8)",
  "4dc925d3": "ACCUSATION_CONTRACT()",
  "625fb940": "ACTIVITY_CONTRACT()",
  "2090a442": "COMPUTE_COMMITTEE_CONTRACT()",
  "c13974e1": "ENODE_VERIFIER_CONTRACT()",
  "8e153dc3": "INNOCENCE_CONTRACT()",
  "925c5492": "MISBEHAVIOUR_CONTRACT()",
  "50d93720": "POP_VERIFIER_CONTRACT()",
  "d0a6d1a6": "SUCCESS()",
  "a4ad5d91": "UPGRADER_CONTRACT()",
  "72c81963": "COMMISSION_RATE_DECIMALS()",
  "f5be3489": "COMMISSION_RATE_SCALE_FACTOR()",
  "187cf4d7": "FEE_FACTOR_UNIT_RECIP()",
  "3b80e355": "FEE_FACTOR_UNIT_RECIP_DECIMALS()",
  "2b56feac": "getCurrentCommitteeSize()",
  "6fc53515": "getEpochID()",
  "4efcd15f": "getEpochTotalBondedStake()",
  "4651e07b": "getInflationReserve()",
  "ba522458": "getLastEpochTime()",
  "4c1f1c77": "getLiquidLogicContract()",
  "d0c80f13": "getSlasher()",
  "d4b2cb21": "jail((address,address,address,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256,uint256,uint256,bytes,uint8),uint256,uint256,uint8)",
  "3ada86ec": "slashAndJail((address,address,address,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256,uint256,uint256,bytes,uint8),uint256,uint256,uint256,uint8,uint8)",
  "7c8ccebe": "getAutonity()",
  "80af1799": "getStabilizer()",
  "c4e41b22": "getTotalSupply()",
  "56176bc4": "setEip1559Params((uint256,uint256,uint256,uint256))",
  "5891de72": "collateralPrice()",
  "1d894f4a": "jail((address,address,address,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256,uint256,uint256,uint256,bytes,uint8),uint256,uint256,uint8)",
  "41da31f7": "jailbound((address,address,address,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256,uint256,uint256,uint256,bytes,uint8),uint8)",
  "28ff0ed9": "slash((address,address,address,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256,uint256,uint256,uint256,bytes,uint8),uint256)",
  "57897331": "slashAndJail((address,address,address,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256,uint256,uint256,uint256,bytes,uint8),uint256,uint256,uint256,uint8,uint8)",
  "41b6cb0f": "jail((address,address,address,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256,uint256,uint256,bytes,uint8,uint256),uint256,uint256,uint8)",
  "0273a3ee": "jailbound((address,address,address,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256,uint256,uint256,bytes,uint8,uint256),uint8)",
  "99ac2d48": "slash((address,address,address,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256,uint256,uint256,bytes,uint8,uint256),uint256)",
  "a00f313f": "slashAndJail((address,address,address,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256,uint256,uint256,bytes,uint8,uint256),uint256,uint256,uint256,uint8,uint8)",
  "50492571": "approveBonding(address,uint256)",
  "67542de6": "approveSelfUnbonding(address,uint256)",
  "41de7400": "bondFrom(address,address,uint256)",
  "e0e01d54": "bondingAllowance(address,address)",
  "251f1a13": "selfUnbondingAllowance(address,address)",
  "a9a7d7c9": "unbondFrom(address,address,uint256)",
  "bf99b73e": "approveUnbonding(address,uint256)",
  "708e91e5": "lockFrom(address,address,uint256)",
  "d768d578": "unbondingAllowance(address,address)",
  "12e7b45d": "setClusteringThreshold(uint256)"
}
`)

func _4byteJsonBytes() ([]byte, error) {
	return __4byteJson, nil
}

func _4byteJson() (*asset, error) {
	bytes, err := _4byteJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "4byte.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x30, 0x45, 0x29, 0x32, 0x5b, 0x75, 0xe, 0x8b, 0x37, 0x50, 0xc8, 0x59, 0xf6, 0x63, 0xbd, 0x21, 0xc2, 0x84, 0xd5, 0x8f, 0xc6, 0x9f, 0x35, 0xe2, 0x3b, 0x67, 0x72, 0xcb, 0x7f, 0x86, 0x90, 0x19}}
	return a, nil
}

// Asset loads and returns the asset for the given name.
// It returns an error if the asset could not be found or
// could not be loaded.
func Asset(name string) ([]byte, error) {
	canonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[canonicalName]; ok {
		a, err := f()
		if err != nil {
			return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err)
		}
		return a.bytes, nil
	}
	return nil, fmt.Errorf("Asset %s not found", name)
}

// AssetString returns the asset contents as a string (instead of a []byte).
func AssetString(name string) (string, error) {
	data, err := Asset(name)
	return string(data), err
}

// MustAsset is like Asset but panics when Asset would return an error.
// It simplifies safe initialization of global variables.
func MustAsset(name string) []byte {
	a, err := Asset(name)
	if err != nil {
		panic("asset: Asset(" + name + "): " + err.Error())
	}

	return a
}

// MustAssetString is like AssetString but panics when Asset would return an
// error. It simplifies safe initialization of global variables.
func MustAssetString(name string) string {
	return string(MustAsset(name))
}

// AssetInfo loads and returns the asset info for the given name.
// It returns an error if the asset could not be found or
// could not be loaded.
func AssetInfo(name string) (os.FileInfo, error) {
	canonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[canonicalName]; ok {
		a, err := f()
		if err != nil {
			return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err)
		}
		return a.info, nil
	}
	return nil, fmt.Errorf("AssetInfo %s not found", name)
}

// AssetDigest returns the digest of the file with the given name. It returns an
// error if the asset could not be found or the digest could not be loaded.
func AssetDigest(name string) ([sha256.Size]byte, error) {
	canonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[canonicalName]; ok {
		a, err := f()
		if err != nil {
			return [sha256.Size]byte{}, fmt.Errorf("AssetDigest %s can't read by error: %v", name, err)
		}
		return a.digest, nil
	}
	return [sha256.Size]byte{}, fmt.Errorf("AssetDigest %s not found", name)
}

// Digests returns a map of all known files and their checksums.
func Digests() (map[string][sha256.Size]byte, error) {
	mp := make(map[string][sha256.Size]byte, len(_bindata))
	for name := range _bindata {
		a, err := _bindata[name]()
		if err != nil {
			return nil, err
		}
		mp[name] = a.digest
	}
	return mp, nil
}

// AssetNames returns the names of the assets.
func AssetNames() []string {
	names := make([]string, 0, len(_bindata))
	for name := range _bindata {
		names = append(names, name)
	}
	return names
}

// _bindata is a table, holding each asset generator, mapped to its name.
var _bindata = map[string]func() (*asset, error){
	"4byte.json": _4byteJson,
}

// AssetDebug is true if the assets were built with the debug flag enabled.
const AssetDebug = false

// AssetDir returns the file names below a certain
// directory embedded in the file by go-bindata.
// For example if you run go-bindata on data/... and data contains the
// following hierarchy:
//
//	data/
//	  foo.txt
//	  img/
//	    a.png
//	    b.png
//
// then AssetDir("data") would return []string{"foo.txt", "img"},
// AssetDir("data/img") would return []string{"a.png", "b.png"},
// AssetDir("foo.txt") and AssetDir("notexist") would return an error, and
// AssetDir("") will return []string{"data"}.
func AssetDir(name string) ([]string, error) {
	node := _bintree
	if len(name) != 0 {
		canonicalName := strings.Replace(name, "\\", "/", -1)
		pathList := strings.Split(canonicalName, "/")
		for _, p := range pathList {
			node = node.Children[p]
			if node == nil {
				return nil, fmt.Errorf("Asset %s not found", name)
			}
		}
	}
	if node.Func != nil {
		return nil, fmt.Errorf("Asset %s not found", name)
	}
	rv := make([]string, 0, len(node.Children))
	for childName := range node.Children {
		rv = append(rv, childName)
	}
	return rv, nil
}

type bintree struct {
	Func     func() (*asset, error)
	Children map[string]*bintree
}

var _bintree = &bintree{nil, map[string]*bintree{
	"4byte.json": {_4byteJson, map[string]*bintree{}},
}}

// RestoreAsset restores an asset under the given directory.
func RestoreAsset(dir, name string) error {
	data, err := Asset(name)
	if err != nil {
		return err
	}
	info, err := AssetInfo(name)
	if err != nil {
		return err
	}
	err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755))
	if err != nil {
		return err
	}
	err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode())
	if err != nil {
		return err
	}
	return os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
}

// RestoreAssets restores an asset under the given directory recursively.
func RestoreAssets(dir, name string) error {
	children, err := AssetDir(name)
	// File
	if err != nil {
		return RestoreAsset(dir, name)
	}
	// Dir
	for _, child := range children {
		err = RestoreAssets(dir, filepath.Join(name, child))
		if err != nil {
			return err
		}
	}
	return nil
}

func _filePath(dir, name string) string {
	canonicalName := strings.Replace(name, "\\", "/", -1)
	return filepath.Join(append([]string{dir}, strings.Split(canonicalName, "/")...)...)
}
