/* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; import { Provider, TransactionRequest } from "@ethersproject/providers"; import type { Slasher, SlasherInterface } from "../Slasher"; const _abi = [ { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "DefaultSlashAmountUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "nonce", type: "uint256", }, { indexed: false, internalType: "address", name: "candidate", type: "address", }, { indexed: false, internalType: "uint64", name: "slashBlock", type: "uint64", }, { indexed: false, internalType: "string", name: "manifest", type: "string", }, { indexed: false, internalType: "uint64", name: "accuracy", type: "uint64", }, ], name: "DraftSlash", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint64", name: "drafterCoef", type: "uint64", }, ], name: "DrafterCoefUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "nonce", type: "uint256", }, { indexed: false, internalType: "address", name: "executor", type: "address", }, ], name: "ExecuteSlash", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "executorCoef", type: "uint256", }, ], name: "ExecutorCoefUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "governance", type: "address", }, ], name: "GovernanceUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint8", name: "version", type: "uint8", }, ], name: "Initialized", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract IMajorCandidates", name: "majorCandidates", type: "address", }, ], name: "MajorCandidatesUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "maxCoef", type: "uint256", }, ], name: "MaxCoefUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address", }, { indexed: true, internalType: "address", name: "newOwner", type: "address", }, ], name: "OwnershipTransferred", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "period", type: "uint256", }, ], name: "PublicNoticePeriodUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "nonce", type: "uint256", }, ], name: "RejectSlash", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract IStake", name: "stake", type: "address", }, ], name: "StakeUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "validatorCoef", type: "uint256", }, ], name: "ValidatorCoefUpdated", type: "event", }, { inputs: [], name: "MAXCOEF", outputs: [ { internalType: "uint64", name: "", type: "uint64", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "newGovernance", type: "address", }, ], name: "changeGovernance", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes32", name: "hash", type: "bytes32", }, { internalType: "bytes[]", name: "signatures", type: "bytes[]", }, ], name: "checkNSignatures", outputs: [ { internalType: "address[]", name: "signers", type: "address[]", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "defaultSlashAmount", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint64", name: "slashBlock", type: "uint64", }, { internalType: "string", name: "manifest", type: "string", }, { internalType: "uint64", name: "accuracy", type: "uint64", }, { internalType: "bytes[]", name: "signatures", type: "bytes[]", }, ], name: "draft", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "drafterCoef", outputs: [ { internalType: "uint64", name: "", type: "uint64", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "_nonce", type: "uint256", }, ], name: "endOf", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "string", name: "manifest", type: "string", }, ], name: "execute", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "executorCoef", outputs: [ { internalType: "uint64", name: "", type: "uint64", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "_nonce", type: "uint256", }, ], name: "getSlashAt", outputs: [ { components: [ { internalType: "address", name: "candidate", type: "address", }, { internalType: "address", name: "drafter", type: "address", }, { internalType: "address[]", name: "validators", type: "address[]", }, { internalType: "uint256", name: "amount", type: "uint256", }, { internalType: "uint256", name: "timestamp", type: "uint256", }, { internalType: "enum Types.SlashStatus", name: "status", type: "uint8", }, ], internalType: "struct Types.SlashInfo", name: "", type: "tuple", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "governance", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "newOwner", type: "address", }, { internalType: "address", name: "_governance", type: "address", }, { internalType: "contract IStake", name: "_stake", type: "address", }, { internalType: "contract IMajorCandidates", name: "_majorCandidates", type: "address", }, { internalType: "uint256", name: "_defaultSlashAmount", type: "uint256", }, { internalType: "uint256", name: "_publicNoticePeriod", type: "uint256", }, { internalType: "uint64", name: "maxCoef", type: "uint64", }, { internalType: "uint64", name: "_drafterCoef", type: "uint64", }, { internalType: "uint64", name: "_validatorCoef", type: "uint64", }, { internalType: "uint64", name: "_executorCoef", type: "uint64", }, ], name: "initialize", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "majorCandidates", outputs: [ { internalType: "contract IMajorCandidates", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "nonce", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "candidate", type: "address", }, ], name: "nonceOf", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "owner", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "publicNoticePeriod", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "string", name: "manifest", type: "string", }, ], name: "reject", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "renounceOwnership", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint64", name: "_drafterCoef", type: "uint64", }, ], name: "setDrafterCoef", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint64", name: "_executorCoef", type: "uint64", }, ], name: "setExecutorCoef", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint64", name: "_validatorCoef", type: "uint64", }, ], name: "setValidatorCoef", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "candidate", type: "address", }, ], name: "slashExists", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "stake", outputs: [ { internalType: "contract IStake", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "newOwner", type: "address", }, ], name: "transferOwnership", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "validatorCoef", outputs: [ { internalType: "uint64", name: "", type: "uint64", }, ], stateMutability: "view", type: "function", }, ]; const _bytecode = "0x608060405234801561001057600080fd5b50612d42806100206000396000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806399572d6f116100de578063bd590d7e11610097578063ed2a2d6411610071578063ed2a2d641461039f578063f1e08aab146103b2578063f2fde38b146103cc578063fcf1864b146103df57600080fd5b8063bd590d7e1461034b578063c0c045331461035e578063e981d04e1461036757600080fd5b806399572d6f146102c9578063a40077ac146102dc578063affed0e0146102ef578063b17479e914610305578063b200e99314610318578063b965933e1461033857600080fd5b80633a4b66f11161014b5780635aa6e675116101255780635aa6e67514610270578063715018a6146102905780637e06b919146102985780638da5cb5b146102b857600080fd5b80633a4b66f11461022a5780633f4016ed1461024a578063448b5d761461025d57600080fd5b80622c985c146101925780631e03795a146101a7578063201c5cc1146101d057806331cf7898146101e35780633390b475146101fd57806337af69d514610217575b600080fd5b6101a56101a0366004611d25565b6103e8565b005b606b546101ba906001600160401b031681565b6040516101c79190611d57565b60405180910390f35b6101a56101de366004611e5e565b6103fc565b606b546101ba90600160c01b90046001600160401b031681565b606b546101ba90600160401b90046001600160401b031681565b6101a5610225366004611eed565b61067e565b60665461023d906001600160a01b031681565b6040516101c7919061200b565b6101a5610258366004611d25565b6107ae565b6101a561026b366004611d25565b6107bf565b606554610283906001600160a01b031681565b6040516101c79190612022565b6101a56107d0565b6102ab6102a6366004612030565b6107e4565b6040516101c79190612172565b6033546001600160a01b0316610283565b6101a56102d736600461218a565b6108c9565b6101a56102ea366004612269565b6108fc565b6102f8606a5481565b6040516101c79190612301565b60675461023d906001600160a01b031681565b61032b61032636600461230f565b610c8a565b6040516101c791906123a4565b6102f8610346366004612030565b610f4a565b6101a5610359366004611e5e565b610f9d565b6102f860685481565b61039261037536600461218a565b6001600160a01b03166000908152606d6020526040902054151590565b6040516101c791906123bd565b6102f86103ad36600461218a565b61154a565b606b546101ba90600160801b90046001600160401b031681565b6101a56103da36600461218a565b61159b565b6102f860695481565b6103f06115d2565b6103f9816115fc565b50565b6065546001600160a01b0316331461042f5760405162461bcd60e51b815260040161042690612410565b60405180910390fd5b60665460405163de8800eb60e01b81526000916001600160a01b03169063de8800eb90610460908590600401612482565b60206040518083038186803b15801561047857600080fd5b505afa15801561048c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b0919061249e565b90506001600160a01b0381166104d85760405162461bcd60e51b8152600401610426906124f6565b6001600160a01b0381166000908152606d6020908152604080832054808452606c9092529091206004015461051f5760405162461bcd60e51b81526004016104269061253a565b6000818152606c602052604081206005015460ff166002811115610545576105456120b4565b146105625760405162461bcd60e51b81526004016104269061258b565b6069546000828152606c602052604090206004015461058191906125b1565b4211156105a05760405162461bcd60e51b815260040161042690612613565b6000818152606c60205260409081902060058101805460ff1916600117905560665460039091015491516350a2fbcf60e11b81526001600160a01b039091169163a145f79e916105f4918691600401612623565b600060405180830381600087803b15801561060e57600080fd5b505af1158015610622573d6000803e3d6000fd5b5050506001600160a01b0383166000908152606d602052604080822091909155517f378880ee1e055f93925e14c6f78a3a8e2a291dcacd11c78700726165555eaedc9150610671908390612301565b60405180910390a1505050565b600054610100900460ff161580801561069e5750600054600160ff909116105b806106b85750303b1580156106b8575060005460ff166001145b6106d45760405162461bcd60e51b815260040161042690612689565b6000805460ff1916600117905580156106f7576000805461ff0019166101001790555b6107008b6116ba565b6107098a61170c565b61071289611757565b61071b886117a2565b610724876117ed565b61072d86611822565b61073685611857565b61073f846118a3565b610748836115fc565b61075182611959565b6001606a5580156107a1576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890610798906001906126ad565b60405180910390a15b5050505050505050505050565b6107b66115d2565b6103f9816118a3565b6107c76115d2565b6103f981611959565b6107d86115d2565b6107e260006116ba565b565b6107ec611c32565b6000828152606c6020908152604091829020825160c08101845281546001600160a01b039081168252600183015416818401526002820180548551818602810186018752818152929593949386019383018282801561087457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610856575b50505091835250506003820154602082015260048201546040820152600582015460609091019060ff1660028111156108af576108af6120b4565b60028111156108c0576108c06120b4565b90525092915050565b6065546001600160a01b031633146108f35760405162461bcd60e51b815260040161042690612410565b6103f98161170c565b6065546001600160a01b031633146109265760405162461bcd60e51b815260040161042690612410565b60665460405163de8800eb60e01b81526000916001600160a01b03169063de8800eb90610957908790600401612482565b60206040518083038186803b15801561096f57600080fd5b505afa158015610983573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a7919061249e565b90506001600160a01b0381166109cf5760405162461bcd60e51b8152600401610426906124f6565b6001600160a01b0381166000908152606d602052604090205415610a055760405162461bcd60e51b8152600401610426906126ef565b6000606a54868686604051602001610a2094939291906126ff565b60408051601f19818403018152828201909152601a82527f19457468657265756d205369676e6564204d6573736167653a0a0000000000006020830152805190925060009190610a6f90611a07565b83604051602001610a8293929190612766565b60405160208183030381529060405290506000610aa6828051906020012086610c8a565b6066546068546040516328aa0f1b60e01b81529293506000926001600160a01b03909216916328aa0f1b91610ae091899190600401612623565b602060405180830381600087803b158015610afa57600080fd5b505af1158015610b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b329190612795565b90508015610c7f576040805160c0810182526001600160a01b03871681523360208201529081018390526060810182905242608082015260a0810160009052606a546000908152606c6020908152604091829020835181546001600160a01b039182166001600160a01b031991821617835585840151600184018054919093169116179055918301518051610bcd9260028501920190611c8a565b50606082015160038201556080820151600482015560a082015160058201805460ff19166001836002811115610c0557610c056120b4565b021790555050606a546001600160a01b0387166000908152606d602052604090819020829055517fe6defb800f5f0e2b03dc7f0aa7621f0d101ade0229c9d61487c78f7cde8fee829250610c61919088908d908d908d906127b6565b60405180910390a1606a8054906000610c7983612809565b91905055505b505050505050505050565b60606003606760009054906101000a90046001600160a01b03166001600160a01b0316637809d1c86040518163ffffffff1660e01b815260040160206040518083038186803b158015610cdc57600080fd5b505afa158015610cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d149190612795565b610d1f906002612824565b610d299190612859565b82511015610d495760405162461bcd60e51b8152600401610426906128b1565b81516001600160401b03811115610d6257610d62611d65565b604051908082528060200260200182016040528015610d8b578160200160208202803683370190505b50905060005b82518160ff161015610f4357600080610dc686868560ff1681518110610db957610db96128c1565b6020026020010151611b0c565b90925090506000816004811115610ddf57610ddf6120b4565b14610dfc5760405162461bcd60e51b81526004016104269061290b565b60ff831615610e5c5783610e1160018561291b565b60ff1681518110610e2457610e246128c1565b60200260200101516001600160a01b0316826001600160a01b031611610e5c5760405162461bcd60e51b81526004016104269061297e565b60675460405163048d865f60e31b81526001600160a01b039091169063246c32f890610e8c908590600401612022565b60206040518083038186803b158015610ea457600080fd5b505afa158015610eb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edc91906129a1565b610ef85760405162461bcd60e51b815260040161042690612a09565b81848460ff1681518110610f0e57610f0e6128c1565b60200260200101906001600160a01b031690816001600160a01b03168152505050508080610f3b90612a19565b915050610d91565b5092915050565b60008082118015610f5c5750606a5482105b610f785760405162461bcd60e51b815260040161042690612a5f565b6069546000838152606c6020526040902060040154610f9791906125b1565b92915050565b6065546001600160a01b03163314610fc75760405162461bcd60e51b815260040161042690612410565b60665460405163de8800eb60e01b81526000916001600160a01b03169063de8800eb90610ff8908590600401612482565b60206040518083038186803b15801561101057600080fd5b505afa158015611024573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611048919061249e565b90506001600160a01b0381166110705760405162461bcd60e51b8152600401610426906124f6565b600061107b8261154a565b6000818152606c60205260409020600401549091506110ac5760405162461bcd60e51b81526004016104269061253a565b6000818152606c602052604081206005015460ff1660028111156110d2576110d26120b4565b146110ef5760405162461bcd60e51b81526004016104269061258b565b6069546000828152606c602052604090206004015461110e91906125b1565b421161112c5760405162461bcd60e51b815260040161042690612ab5565b606a546000908152606c60209081526040808320600501805460ff191660029081179091558484528184206003810154910180548351818602810186019094528084529194939091908301828280156111ae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611190575b50508351939450600092506111c8915083905060026125b1565b6001600160401b038111156111df576111df611d65565b604051908082528060200260200182016040528015611208578160200160208202803683370190505b50905060006112188360026125b1565b6001600160401b0381111561122f5761122f611d65565b604051908082528060200260200182016040528015611258578160200160208202803683370190505b50606b549091506000906001600160401b038082169161128191600160801b9091041688612824565b61128b9190612859565b606b549091506000906001600160401b03808216916112b391600160401b9091041689612824565b6112bd9190612859565b606b549091506000906001600160401b03808216916112e591600160c01b909104168a612824565b6112ef9190612859565b9050600081846112ff858c612ac5565b6113099190612ac5565b6113139190612ac5565b905060006113218886612859565b905060005b89518110156113ab57898181518110611341576113416128c1565b602002602001015188828151811061135b5761135b6128c1565b60200260200101906001600160a01b031690816001600160a01b0316815250508187828151811061138e5761138e6128c1565b6020908102919091010152806113a381612809565b915050611326565b5060008b8152606c602052604090206001015487516001600160a01b039091169088908a9081106113de576113de6128c1565b60200260200101906001600160a01b031690816001600160a01b03168152505083868981518110611411576114116128c1565b602090810291909101015233876114298a60016125b1565b81518110611439576114396128c1565b6001600160a01b0390921660209283029190910190910152828661145e8a60016125b1565b8151811061146e5761146e6128c1565b60209081029190910101526066546040516001621f07f360e31b031981526001600160a01b039091169063ff07c068906114b4908f908e908c908c908990600401612b17565b600060405180830381600087803b1580156114ce57600080fd5b505af11580156114e2573d6000803e3d6000fd5b5050506001600160a01b038d166000908152606d602052604080822091909155517f3b504ca2bcb5eb7cf652c7a8dad2a58f5d597d617a6bf3fa93f7a3407541caa19150611533908d903390612b67565b60405180910390a150505050505050505050505050565b6001600160a01b0381166000908152606d602052604081205461157f5760405162461bcd60e51b81526004016104269061253a565b506001600160a01b03166000908152606d602052604090205490565b6115a36115d2565b6001600160a01b0381166115c95760405162461bcd60e51b815260040161042690612bc5565b6103f9816116ba565b6033546001600160a01b031633146107e25760405162461bcd60e51b815260040161042690612c07565b606b546001600160401b0380821691600160c01b8104821691611629918591600160401b90910416612c17565b6116339190612c17565b6001600160401b0316111561165a5760405162461bcd60e51b815260040161042690612c7e565b606b805467ffffffffffffffff60801b1916600160801b6001600160401b038416021790556040517ff255742f6b0f40bd0cd4621bea7c69bfb9af99658510d6836a321c02a75cf00d906116af908390612cac565b60405180910390a150565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606580546001600160a01b0319166001600160a01b0383161790556040517f9d3e522e1e47a2f6009739342b9cc7b252a1888154e843ab55ee1c81745795ab906116af908390612022565b606680546001600160a01b0319166001600160a01b0383161790556040517f27a2474ca8353642fab173d2cadd631382797bbd4f01c76aa56f932bceaf580f906116af90839061200b565b606780546001600160a01b0319166001600160a01b0383161790556040517f476e1ab7433dee921bc37cd453322068187c39ca4847e6a0d4aa36f559b8461c906116af90839061200b565b60688190556040517f27dbc9ba90428b0cd9b5778615ecf054d9f4727201131e038dd891a15653cf74906116af908390612301565b60698190556040517f4e0ad0e7cffd9cb3c3bfb84f8728dc496f70b5a9bec04a05c9f04ad15f83859e906116af908390612301565b606b805467ffffffffffffffff19166001600160401b0383161790556040517f0b8f3c74b24bc0f01cca1823c0c201f7f1c9ff08ee52bc5b7d9bc610258e24f6906116af908390612cac565b606b546001600160401b0380821691600160c01b81048216916118ce91600160801b90041684612c17565b6118d89190612c17565b6001600160401b031611156118ff5760405162461bcd60e51b815260040161042690612c7e565b606b80546fffffffffffffffff00000000000000001916600160401b6001600160401b038416021790556040517f1c7ba5f24f3052cfeeb7705b36f206bf2bc0b9af1bf4bda87ceb114fbce5c01a906116af908390611d57565b606b546001600160401b0380821691839161198691600160801b8104821691600160401b90910416612c17565b6119909190612c17565b6001600160401b031611156119b75760405162461bcd60e51b815260040161042690612c7e565b606b80546001600160c01b0316600160c01b6001600160401b038416021790556040517f398b11c7ff45a5ba321f2c6bad44de1afb92856bfbc4b35e5f5d7cc19af5f1ca906116af908390612cac565b606081611a2b5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611a555780611a3f81612809565b9150611a4e9050600a83612859565b9150611a2f565b6000816001600160401b03811115611a6f57611a6f611d65565b6040519080825280601f01601f191660200182016040528015611a99576020820181803683370190505b5090505b8415611b0457611aae600183612ac5565b9150611abb600a86612cba565b611ac69060306125b1565b60f81b818381518110611adb57611adb6128c1565b60200101906001600160f81b031916908160001a905350611afd600a86612859565b9450611a9d565b949350505050565b600080825160411415611b435760208301516040840151606085015160001a611b3787828585611b52565b94509450505050611b4b565b506000905060025b9250929050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611b895750600090506003611c29565b8460ff16601b14158015611ba157508460ff16601c14155b15611bb25750600090506004611c29565b600060018787878760405160008152602001604052604051611bd79493929190612cd7565b6020604051602081039080840390855afa158015611bf9573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611c2257600060019250925050611c29565b9150600090505b94509492505050565b6040518060c0016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160608152602001600081526020016000815260200160006002811115611c8557611c856120b4565b905290565b828054828255906000526020600020908101928215611cdf579160200282015b82811115611cdf57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611caa565b50611ceb929150611cef565b5090565b5b80821115611ceb5760008155600101611cf0565b6001600160401b0381165b81146103f957600080fd5b8035610f9781611d04565b600060208284031215611d3a57611d3a600080fd5b6000611b048484611d1a565b6001600160401b0381165b82525050565b60208101610f978284611d46565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b0382111715611da057611da0611d65565b6040525050565b6000611db260405190565b9050611dbe8282611d7b565b919050565b60006001600160401b03821115611ddc57611ddc611d65565b601f19601f83011660200192915050565b82818337506000910152565b6000611e0c611e0784611dc3565b611da7565b905082815260208101848484011115611e2757611e27600080fd5b611e32848285611ded565b509392505050565b600082601f830112611e4e57611e4e600080fd5b8135611b04848260208601611df9565b600060208284031215611e7357611e73600080fd5b81356001600160401b03811115611e8c57611e8c600080fd5b611b0484828501611e3a565b60006001600160a01b038216610f97565b611d0f81611e98565b8035610f9781611ea9565b6000610f9782611e98565b611d0f81611ebd565b8035610f9781611ec8565b80611d0f565b8035610f9781611edc565b6000806000806000806000806000806101408b8d031215611f1057611f10600080fd5b6000611f1c8d8d611eb2565b9a50506020611f2d8d828e01611eb2565b9950506040611f3e8d828e01611ed1565b9850506060611f4f8d828e01611ed1565b9750506080611f608d828e01611ee2565b96505060a0611f718d828e01611ee2565b95505060c0611f828d828e01611d1a565b94505060e0611f938d828e01611d1a565b935050610100611fa58d828e01611d1a565b925050610120611fb78d828e01611d1a565b9150509295989b9194979a5092959850565b6000610f976001600160a01b038316611fe0565b90565b6001600160a01b031690565b6000610f9782611fc9565b6000610f9782611fec565b611d5181611ff7565b60208101610f978284612002565b611d5181611e98565b60208101610f978284612019565b60006020828403121561204557612045600080fd5b6000611b048484611ee2565b600061205d8383612019565b505060200190565b600061206f825190565b80845260209384019383018060005b838110156120a35781516120928882612051565b97506020830192505060010161207e565b509495945050505050565b80611d51565b634e487b7160e01b600052602160045260246000fd5b600381106103f9576103f96120b4565b80611dbe816120ca565b6000610f97826120da565b611d51816120e4565b805160009060c084019061210c8582612019565b50602083015161211f6020860182612019565b50604083015184820360408601526121378282612065565b915050606083015161214c60608601826120ae565b50608083015161215f60808601826120ae565b5060a0830151611e3260a08601826120ef565b6020808252810161218381846120f8565b9392505050565b60006020828403121561219f5761219f600080fd5b6000611b048484611eb2565b60006001600160401b038211156121c4576121c4611d65565b5060209081020190565b60006121dc611e07846121ab565b838152905060208082019084028301858111156121fb576121fb600080fd5b835b8181101561223b5780356001600160401b0381111561221e5761221e600080fd5b80860161222b8982611e3a565b85525050602092830192016121fd565b5050509392505050565b600082601f83011261225957612259600080fd5b8135611b048482602086016121ce565b6000806000806080858703121561228257612282600080fd5b600061228e8787611d1a565b94505060208501356001600160401b038111156122ad576122ad600080fd5b6122b987828801611e3a565b93505060406122ca87828801611d1a565b92505060608501356001600160401b038111156122e9576122e9600080fd5b6122f587828801612245565b91505092959194509250565b60208101610f9782846120ae565b6000806040838503121561232557612325600080fd5b60006123318585611ee2565b92505060208301356001600160401b0381111561235057612350600080fd5b61235c85828601612245565b9150509250929050565b6000612370825190565b80845260209384019383018060005b838110156120a35781516123938882612051565b97506020830192505060010161237f565b602080825281016121838184612366565b801515611d51565b60208101610f9782846123b5565b602581526000602082017f536c61736865723a2063616c6c6572206d7573742062652074686520476f7665815264726e61636560d81b602082015291505b5060400190565b60208082528101610f97816123cb565b60005b8381101561243b578181015183820152602001612423565b8381111561244a576000848401525b50505050565b600061245a825190565b808452602084019350612471818560208601612420565b601f01601f19169290920192915050565b602080825281016121838184612450565b8051610f9781611ea9565b6000602082840312156124b3576124b3600080fd5b6000611b048484612493565b601e81526000602082017f536c61736865723a206e6f6e6578697374656e742063616e6469646174650000815291505b5060200190565b60208082528101610f97816124bf565b601a81526000602082017f536c61736865723a206e6f6e6578697374656e7420736c617368000000000000815291506124ef565b60208082528101610f9781612506565b602481526000602082017f536c61736865723a20736c61736820737461747573206973206e6f7420647261815263199d195960e21b60208201529150612409565b60208082528101610f978161254a565b634e487b7160e01b600052601160045260246000fd5b600082198211156125c4576125c461259b565b500190565b602d81526000602082017f536c61736865723a20736c617368206973206e6f7420696e207075626c69632081526c1b9bdd1a58d9481c195c9a5bd9609a1b60208201529150612409565b60208082528101610f97816125c9565b604081016126318285612019565b61218360208301846120ae565b602e81526000602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150612409565b60208082528101610f978161263e565b600060ff8216610f97565b611d5181612699565b60208101610f9782846126a4565b601e81526000602082017f536c61736865723a2063616e64696461746520697320696e20736c6173680000815291506124ef565b60208082528101610f97816126bb565b6080810161270d82876120ae565b61271a6020830186611d46565b818103604083015261272c8185612450565b905061273b6060830184611d46565b95945050505050565b600061274e825190565b61275c818560208601612420565b9290920192915050565b60006127728286612744565b915061277e8285612744565b915061273b8284612744565b8051610f9781611edc565b6000602082840312156127aa576127aa600080fd5b6000611b04848461278a565b60a081016127c482886120ae565b6127d16020830187612019565b6127de6040830186611d46565b81810360608301526127f08185612450565b90506127ff6080830184611d46565b9695505050505050565b600060001982141561281d5761281d61259b565b5060010190565b600081600019048311821515161561283e5761283e61259b565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261286857612868612843565b500490565b602781526000602082017f536c61736865723a207369676e6174757265206c656e677468206973206e6f74815266040cadcdeeaced60cb1b60208201529150612409565b60208082528101610f978161286d565b634e487b7160e01b600052603260045260246000fd5b601a81526000602082017f536c61736865723a20696e76616c6964207369676e6174757265000000000000815291506124ef565b60208082528101610f97816128d7565b600060ff8216915060ff83165b92508282101561293a5761293a61259b565b500390565b602281526000602082017f536c61736865723a20696e636f7272656374207369676e6174757265206f726481526132b960f11b60208201529150612409565b60208082528101610f978161293f565b801515611d0f565b8051610f978161298e565b6000602082840312156129b6576129b6600080fd5b6000611b048484612996565b602a81526000602082017f536c61736865723a207369676e6572206973206e6f7420746865206d616a6f728152692063616e64696461746560b01b60208201529150612409565b60208082528101610f97816129c2565b600060ff8216915060ff82141561281d5761281d61259b565b6016815260006020820175536c61736865723a20696e76616c6964206e6f6e636560501b815291506124ef565b60208082528101610f9781612a32565b602981526000602082017f536c61736865723a20736c61736820697320696e207075626c6963206e6f746981526818d9481c195c9a5bd960ba1b60208201529150612409565b60208082528101610f9781612a6f565b600082612928565b600061205d83836120ae565b6000612ae3825190565b80845260209384019383018060005b838110156120a3578151612b068882612acd565b975060208301925050600101612af2565b60a08101612b258288612019565b612b3260208301876120ae565b8181036040830152612b448186612366565b90508181036060830152612b588185612ad9565b90506127ff60808301846120ae565b60408101612b7582856120ae565b6121836020830184612019565b602681526000602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b60208201529150612409565b60208082528101610f9781612b82565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572910190815260006124ef565b60208082528101610f9781612bd5565b60006001600160401b03821691506001600160401b0383169250826001600160401b03038211156125c4576125c461259b565b601c81526000602082017f536c61736865723a20696e76616c696420636f656666696369656e7400000000815291506124ef565b60208082528101610f9781612c4a565b6000610f97611fdd6001600160401b03841681565b611d5181612c8e565b60208101610f978284612ca3565b600082612cc957612cc9612843565b500690565b60ff8116611d51565b60808101612ce582876120ae565b612cf26020830186612cce565b612cff60408301856120ae565b61273b60608301846120ae56fea2646970667358221220d84986f8b73044743096b20af0fc20901e3bcbba1f2e51a0bd35ca936928fcbe64736f6c63430008090033"; export class Slasher__factory extends ContractFactory { constructor( ...args: [signer: Signer] | ConstructorParameters ) { if (args.length === 1) { super(_abi, _bytecode, args[0]); } else { super(...args); } } deploy( overrides?: Overrides & { from?: string | Promise } ): Promise { return super.deploy(overrides || {}) as Promise; } getDeployTransaction( overrides?: Overrides & { from?: string | Promise } ): TransactionRequest { return super.getDeployTransaction(overrides || {}); } attach(address: string): Slasher { return super.attach(address) as Slasher; } connect(signer: Signer): Slasher__factory { return super.connect(signer) as Slasher__factory; } static readonly bytecode = _bytecode; static readonly abi = _abi; static createInterface(): SlasherInterface { return new utils.Interface(_abi) as SlasherInterface; } static connect( address: string, signerOrProvider: Signer | Provider ): Slasher { return new Contract(address, _abi, signerOrProvider) as Slasher; } }