/* 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 { MockSlasher, MockSlasherInterface } from "../MockSlasher"; 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: "init", outputs: [], stateMutability: "nonpayable", 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 = "0x608060405234801561001057600080fd5b50612ddb806100206000396000f3fe608060405234801561001057600080fd5b50600436106101a85760003560e01c80638da5cb5b116100f9578063bd590d7e11610097578063ed2a2d6411610071578063ed2a2d64146103cd578063f1e08aab146103e0578063f2fde38b146103fa578063fcf1864b1461040d57600080fd5b8063bd590d7e14610379578063c0c045331461038c578063e981d04e1461039557600080fd5b8063affed0e0116100d3578063affed0e01461031d578063b17479e914610333578063b200e99314610346578063b965933e1461036657600080fd5b80638da5cb5b146102e657806399572d6f146102f7578063a40077ac1461030a57600080fd5b80633a4b66f1116101665780635a672b55116101405780635a672b551461028b5780635aa6e6751461029e578063715018a6146102be5780637e06b919146102c657600080fd5b80633a4b66f1146102455780633f4016ed14610265578063448b5d761461027857600080fd5b80622c985c146101ad5780631e03795a146101c2578063201c5cc1146101eb57806331cf7898146101fe5780633390b4751461021857806337af69d514610232575b600080fd5b6101c06101bb366004611dbe565b610416565b005b606b546101d5906001600160401b031681565b6040516101e29190611df0565b60405180910390f35b6101c06101f9366004611ef7565b61042a565b606b546101d590600160c01b90046001600160401b031681565b606b546101d590600160401b90046001600160401b031681565b6101c0610240366004611f86565b6106ac565b606654610258906001600160a01b031681565b6040516101e291906120a4565b6101c0610273366004611dbe565b6107dc565b6101c0610286366004611dbe565b6107ed565b6101c0610299366004611f86565b6107fe565b6065546102b1906001600160a01b031681565b6040516101e291906120bb565b6101c0610869565b6102d96102d43660046120c9565b61087d565b6040516101e2919061220b565b6033546001600160a01b03166102b1565b6101c0610305366004612223565b610962565b6101c0610318366004612302565b610995565b610326606a5481565b6040516101e2919061239a565b606754610258906001600160a01b031681565b6103596103543660046123a8565b610d23565b6040516101e2919061243d565b6103266103743660046120c9565b610fe3565b6101c0610387366004611ef7565b611036565b61032660685481565b6103c06103a3366004612223565b6001600160a01b03166000908152606d6020526040902054151590565b6040516101e29190612456565b6103266103db366004612223565b6115e3565b606b546101d590600160801b90046001600160401b031681565b6101c0610408366004612223565b611634565b61032660695481565b61041e61166b565b61042781611695565b50565b6065546001600160a01b0316331461045d5760405162461bcd60e51b8152600401610454906124a9565b60405180910390fd5b60665460405163de8800eb60e01b81526000916001600160a01b03169063de8800eb9061048e90859060040161251b565b60206040518083038186803b1580156104a657600080fd5b505afa1580156104ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104de9190612537565b90506001600160a01b0381166105065760405162461bcd60e51b81526004016104549061258f565b6001600160a01b0381166000908152606d6020908152604080832054808452606c9092529091206004015461054d5760405162461bcd60e51b8152600401610454906125d3565b6000818152606c602052604081206005015460ff1660028111156105735761057361214d565b146105905760405162461bcd60e51b815260040161045490612624565b6069546000828152606c60205260409020600401546105af919061264a565b4211156105ce5760405162461bcd60e51b8152600401610454906126ac565b6000818152606c60205260409081902060058101805460ff1916600117905560665460039091015491516350a2fbcf60e11b81526001600160a01b039091169163a145f79e916106229186916004016126bc565b600060405180830381600087803b15801561063c57600080fd5b505af1158015610650573d6000803e3d6000fd5b5050506001600160a01b0383166000908152606d602052604080822091909155517f378880ee1e055f93925e14c6f78a3a8e2a291dcacd11c78700726165555eaedc915061069f90839061239a565b60405180910390a1505050565b600054610100900460ff16158080156106cc5750600054600160ff909116105b806106e65750303b1580156106e6575060005460ff166001145b6107025760405162461bcd60e51b815260040161045490612722565b6000805460ff191660011790558015610725576000805461ff0019166101001790555b61072e8b611753565b6107378a6117a5565b610740896117f0565b6107498861183b565b61075287611886565b61075b866118bb565b610764856118f0565b61076d8461193c565b61077683611695565b61077f826119f2565b6001606a5580156107cf576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906107c690600190612746565b60405180910390a15b5050505050505050505050565b6107e461166b565b6104278161193c565b6107f561166b565b610427816119f2565b6108078a611753565b610810896117a5565b610819886117f0565b6108228761183b565b61082b86611886565b610834856118bb565b61083d846118f0565b6108468361193c565b61084f82611695565b610858816119f2565b50506001606a555050505050505050565b61087161166b565b61087b6000611753565b565b610885611ccb565b6000828152606c6020908152604091829020825160c08101845281546001600160a01b039081168252600183015416818401526002820180548551818602810186018752818152929593949386019383018282801561090d57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108ef575b50505091835250506003820154602082015260048201546040820152600582015460609091019060ff1660028111156109485761094861214d565b60028111156109595761095961214d565b90525092915050565b6065546001600160a01b0316331461098c5760405162461bcd60e51b8152600401610454906124a9565b610427816117a5565b6065546001600160a01b031633146109bf5760405162461bcd60e51b8152600401610454906124a9565b60665460405163de8800eb60e01b81526000916001600160a01b03169063de8800eb906109f090879060040161251b565b60206040518083038186803b158015610a0857600080fd5b505afa158015610a1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a409190612537565b90506001600160a01b038116610a685760405162461bcd60e51b81526004016104549061258f565b6001600160a01b0381166000908152606d602052604090205415610a9e5760405162461bcd60e51b815260040161045490612788565b6000606a54868686604051602001610ab99493929190612798565b60408051601f19818403018152828201909152601a82527f19457468657265756d205369676e6564204d6573736167653a0a0000000000006020830152805190925060009190610b0890611aa0565b83604051602001610b1b939291906127ff565b60405160208183030381529060405290506000610b3f828051906020012086610d23565b6066546068546040516328aa0f1b60e01b81529293506000926001600160a01b03909216916328aa0f1b91610b79918991906004016126bc565b602060405180830381600087803b158015610b9357600080fd5b505af1158015610ba7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcb919061282e565b90508015610d18576040805160c0810182526001600160a01b03871681523360208201529081018390526060810182905242608082015260a0810160009052606a546000908152606c6020908152604091829020835181546001600160a01b039182166001600160a01b031991821617835585840151600184018054919093169116179055918301518051610c669260028501920190611d23565b50606082015160038201556080820151600482015560a082015160058201805460ff19166001836002811115610c9e57610c9e61214d565b021790555050606a546001600160a01b0387166000908152606d602052604090819020829055517fe6defb800f5f0e2b03dc7f0aa7621f0d101ade0229c9d61487c78f7cde8fee829250610cfa919088908d908d908d9061284f565b60405180910390a1606a8054906000610d12836128a2565b91905055505b505050505050505050565b60606003606760009054906101000a90046001600160a01b03166001600160a01b0316637809d1c86040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7557600080fd5b505afa158015610d89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dad919061282e565b610db89060026128bd565b610dc291906128f2565b82511015610de25760405162461bcd60e51b81526004016104549061294a565b81516001600160401b03811115610dfb57610dfb611dfe565b604051908082528060200260200182016040528015610e24578160200160208202803683370190505b50905060005b82518160ff161015610fdc57600080610e5f86868560ff1681518110610e5257610e5261295a565b6020026020010151611ba5565b90925090506000816004811115610e7857610e7861214d565b14610e955760405162461bcd60e51b8152600401610454906129a4565b60ff831615610ef55783610eaa6001856129b4565b60ff1681518110610ebd57610ebd61295a565b60200260200101516001600160a01b0316826001600160a01b031611610ef55760405162461bcd60e51b815260040161045490612a17565b60675460405163048d865f60e31b81526001600160a01b039091169063246c32f890610f259085906004016120bb565b60206040518083038186803b158015610f3d57600080fd5b505afa158015610f51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f759190612a3a565b610f915760405162461bcd60e51b815260040161045490612aa2565b81848460ff1681518110610fa757610fa761295a565b60200260200101906001600160a01b031690816001600160a01b03168152505050508080610fd490612ab2565b915050610e2a565b5092915050565b60008082118015610ff55750606a5482105b6110115760405162461bcd60e51b815260040161045490612af8565b6069546000838152606c6020526040902060040154611030919061264a565b92915050565b6065546001600160a01b031633146110605760405162461bcd60e51b8152600401610454906124a9565b60665460405163de8800eb60e01b81526000916001600160a01b03169063de8800eb9061109190859060040161251b565b60206040518083038186803b1580156110a957600080fd5b505afa1580156110bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e19190612537565b90506001600160a01b0381166111095760405162461bcd60e51b81526004016104549061258f565b6000611114826115e3565b6000818152606c60205260409020600401549091506111455760405162461bcd60e51b8152600401610454906125d3565b6000818152606c602052604081206005015460ff16600281111561116b5761116b61214d565b146111885760405162461bcd60e51b815260040161045490612624565b6069546000828152606c60205260409020600401546111a7919061264a565b42116111c55760405162461bcd60e51b815260040161045490612b4e565b606a546000908152606c60209081526040808320600501805460ff1916600290811790915584845281842060038101549101805483518186028101860190945280845291949390919083018282801561124757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611229575b50508351939450600092506112619150839050600261264a565b6001600160401b0381111561127857611278611dfe565b6040519080825280602002602001820160405280156112a1578160200160208202803683370190505b50905060006112b183600261264a565b6001600160401b038111156112c8576112c8611dfe565b6040519080825280602002602001820160405280156112f1578160200160208202803683370190505b50606b549091506000906001600160401b038082169161131a91600160801b90910416886128bd565b61132491906128f2565b606b549091506000906001600160401b038082169161134c91600160401b90910416896128bd565b61135691906128f2565b606b549091506000906001600160401b038082169161137e91600160c01b909104168a6128bd565b61138891906128f2565b905060008184611398858c612b5e565b6113a29190612b5e565b6113ac9190612b5e565b905060006113ba88866128f2565b905060005b8951811015611444578981815181106113da576113da61295a565b60200260200101518882815181106113f4576113f461295a565b60200260200101906001600160a01b031690816001600160a01b031681525050818782815181106114275761142761295a565b60209081029190910101528061143c816128a2565b9150506113bf565b5060008b8152606c602052604090206001015487516001600160a01b039091169088908a9081106114775761147761295a565b60200260200101906001600160a01b031690816001600160a01b031681525050838689815181106114aa576114aa61295a565b602090810291909101015233876114c28a600161264a565b815181106114d2576114d261295a565b6001600160a01b039092166020928302919091019091015282866114f78a600161264a565b815181106115075761150761295a565b60209081029190910101526066546040516001621f07f360e31b031981526001600160a01b039091169063ff07c0689061154d908f908e908c908c908990600401612bb0565b600060405180830381600087803b15801561156757600080fd5b505af115801561157b573d6000803e3d6000fd5b5050506001600160a01b038d166000908152606d602052604080822091909155517f3b504ca2bcb5eb7cf652c7a8dad2a58f5d597d617a6bf3fa93f7a3407541caa191506115cc908d903390612c00565b60405180910390a150505050505050505050505050565b6001600160a01b0381166000908152606d60205260408120546116185760405162461bcd60e51b8152600401610454906125d3565b506001600160a01b03166000908152606d602052604090205490565b61163c61166b565b6001600160a01b0381166116625760405162461bcd60e51b815260040161045490612c5e565b61042781611753565b6033546001600160a01b0316331461087b5760405162461bcd60e51b815260040161045490612ca0565b606b546001600160401b0380821691600160c01b81048216916116c2918591600160401b90910416612cb0565b6116cc9190612cb0565b6001600160401b031611156116f35760405162461bcd60e51b815260040161045490612d17565b606b805467ffffffffffffffff60801b1916600160801b6001600160401b038416021790556040517ff255742f6b0f40bd0cd4621bea7c69bfb9af99658510d6836a321c02a75cf00d90611748908390612d45565b60405180910390a150565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606580546001600160a01b0319166001600160a01b0383161790556040517f9d3e522e1e47a2f6009739342b9cc7b252a1888154e843ab55ee1c81745795ab906117489083906120bb565b606680546001600160a01b0319166001600160a01b0383161790556040517f27a2474ca8353642fab173d2cadd631382797bbd4f01c76aa56f932bceaf580f906117489083906120a4565b606780546001600160a01b0319166001600160a01b0383161790556040517f476e1ab7433dee921bc37cd453322068187c39ca4847e6a0d4aa36f559b8461c906117489083906120a4565b60688190556040517f27dbc9ba90428b0cd9b5778615ecf054d9f4727201131e038dd891a15653cf749061174890839061239a565b60698190556040517f4e0ad0e7cffd9cb3c3bfb84f8728dc496f70b5a9bec04a05c9f04ad15f83859e9061174890839061239a565b606b805467ffffffffffffffff19166001600160401b0383161790556040517f0b8f3c74b24bc0f01cca1823c0c201f7f1c9ff08ee52bc5b7d9bc610258e24f690611748908390612d45565b606b546001600160401b0380821691600160c01b810482169161196791600160801b90041684612cb0565b6119719190612cb0565b6001600160401b031611156119985760405162461bcd60e51b815260040161045490612d17565b606b80546fffffffffffffffff00000000000000001916600160401b6001600160401b038416021790556040517f1c7ba5f24f3052cfeeb7705b36f206bf2bc0b9af1bf4bda87ceb114fbce5c01a90611748908390611df0565b606b546001600160401b03808216918391611a1f91600160801b8104821691600160401b90910416612cb0565b611a299190612cb0565b6001600160401b03161115611a505760405162461bcd60e51b815260040161045490612d17565b606b80546001600160c01b0316600160c01b6001600160401b038416021790556040517f398b11c7ff45a5ba321f2c6bad44de1afb92856bfbc4b35e5f5d7cc19af5f1ca90611748908390612d45565b606081611ac45750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611aee5780611ad8816128a2565b9150611ae79050600a836128f2565b9150611ac8565b6000816001600160401b03811115611b0857611b08611dfe565b6040519080825280601f01601f191660200182016040528015611b32576020820181803683370190505b5090505b8415611b9d57611b47600183612b5e565b9150611b54600a86612d53565b611b5f90603061264a565b60f81b818381518110611b7457611b7461295a565b60200101906001600160f81b031916908160001a905350611b96600a866128f2565b9450611b36565b949350505050565b600080825160411415611bdc5760208301516040840151606085015160001a611bd087828585611beb565b94509450505050611be4565b506000905060025b9250929050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611c225750600090506003611cc2565b8460ff16601b14158015611c3a57508460ff16601c14155b15611c4b5750600090506004611cc2565b600060018787878760405160008152602001604052604051611c709493929190612d70565b6020604051602081039080840390855afa158015611c92573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611cbb57600060019250925050611cc2565b9150600090505b94509492505050565b6040518060c0016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160608152602001600081526020016000815260200160006002811115611d1e57611d1e61214d565b905290565b828054828255906000526020600020908101928215611d78579160200282015b82811115611d7857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611d43565b50611d84929150611d88565b5090565b5b80821115611d845760008155600101611d89565b6001600160401b0381165b811461042757600080fd5b803561103081611d9d565b600060208284031215611dd357611dd3600080fd5b6000611b9d8484611db3565b6001600160401b0381165b82525050565b602081016110308284611ddf565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b0382111715611e3957611e39611dfe565b6040525050565b6000611e4b60405190565b9050611e578282611e14565b919050565b60006001600160401b03821115611e7557611e75611dfe565b601f19601f83011660200192915050565b82818337506000910152565b6000611ea5611ea084611e5c565b611e40565b905082815260208101848484011115611ec057611ec0600080fd5b611ecb848285611e86565b509392505050565b600082601f830112611ee757611ee7600080fd5b8135611b9d848260208601611e92565b600060208284031215611f0c57611f0c600080fd5b81356001600160401b03811115611f2557611f25600080fd5b611b9d84828501611ed3565b60006001600160a01b038216611030565b611da881611f31565b803561103081611f42565b600061103082611f31565b611da881611f56565b803561103081611f61565b80611da8565b803561103081611f75565b6000806000806000806000806000806101408b8d031215611fa957611fa9600080fd5b6000611fb58d8d611f4b565b9a50506020611fc68d828e01611f4b565b9950506040611fd78d828e01611f6a565b9850506060611fe88d828e01611f6a565b9750506080611ff98d828e01611f7b565b96505060a061200a8d828e01611f7b565b95505060c061201b8d828e01611db3565b94505060e061202c8d828e01611db3565b93505061010061203e8d828e01611db3565b9250506101206120508d828e01611db3565b9150509295989b9194979a5092959850565b60006110306001600160a01b038316612079565b90565b6001600160a01b031690565b600061103082612062565b600061103082612085565b611dea81612090565b60208101611030828461209b565b611dea81611f31565b6020810161103082846120b2565b6000602082840312156120de576120de600080fd5b6000611b9d8484611f7b565b60006120f683836120b2565b505060200190565b6000612108825190565b80845260209384019383018060005b8381101561213c57815161212b88826120ea565b975060208301925050600101612117565b509495945050505050565b80611dea565b634e487b7160e01b600052602160045260246000fd5b600381106104275761042761214d565b80611e5781612163565b600061103082612173565b611dea8161217d565b805160009060c08401906121a585826120b2565b5060208301516121b860208601826120b2565b50604083015184820360408601526121d082826120fe565b91505060608301516121e56060860182612147565b5060808301516121f86080860182612147565b5060a0830151611ecb60a0860182612188565b6020808252810161221c8184612191565b9392505050565b60006020828403121561223857612238600080fd5b6000611b9d8484611f4b565b60006001600160401b0382111561225d5761225d611dfe565b5060209081020190565b6000612275611ea084612244565b8381529050602080820190840283018581111561229457612294600080fd5b835b818110156122d45780356001600160401b038111156122b7576122b7600080fd5b8086016122c48982611ed3565b8552505060209283019201612296565b5050509392505050565b600082601f8301126122f2576122f2600080fd5b8135611b9d848260208601612267565b6000806000806080858703121561231b5761231b600080fd5b60006123278787611db3565b94505060208501356001600160401b0381111561234657612346600080fd5b61235287828801611ed3565b935050604061236387828801611db3565b92505060608501356001600160401b0381111561238257612382600080fd5b61238e878288016122de565b91505092959194509250565b602081016110308284612147565b600080604083850312156123be576123be600080fd5b60006123ca8585611f7b565b92505060208301356001600160401b038111156123e9576123e9600080fd5b6123f5858286016122de565b9150509250929050565b6000612409825190565b80845260209384019383018060005b8381101561213c57815161242c88826120ea565b975060208301925050600101612418565b6020808252810161221c81846123ff565b801515611dea565b60208101611030828461244e565b602581526000602082017f536c61736865723a2063616c6c6572206d7573742062652074686520476f7665815264726e61636560d81b602082015291505b5060400190565b6020808252810161103081612464565b60005b838110156124d45781810151838201526020016124bc565b838111156124e3576000848401525b50505050565b60006124f3825190565b80845260208401935061250a8185602086016124b9565b601f01601f19169290920192915050565b6020808252810161221c81846124e9565b805161103081611f42565b60006020828403121561254c5761254c600080fd5b6000611b9d848461252c565b601e81526000602082017f536c61736865723a206e6f6e6578697374656e742063616e6469646174650000815291505b5060200190565b6020808252810161103081612558565b601a81526000602082017f536c61736865723a206e6f6e6578697374656e7420736c61736800000000000081529150612588565b602080825281016110308161259f565b602481526000602082017f536c61736865723a20736c61736820737461747573206973206e6f7420647261815263199d195960e21b602082015291506124a2565b60208082528101611030816125e3565b634e487b7160e01b600052601160045260246000fd5b6000821982111561265d5761265d612634565b500190565b602d81526000602082017f536c61736865723a20736c617368206973206e6f7420696e207075626c69632081526c1b9bdd1a58d9481c195c9a5bd9609a1b602082015291506124a2565b6020808252810161103081612662565b604081016126ca82856120b2565b61221c6020830184612147565b602e81526000602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b602082015291506124a2565b60208082528101611030816126d7565b600060ff8216611030565b611dea81612732565b60208101611030828461273d565b601e81526000602082017f536c61736865723a2063616e64696461746520697320696e20736c617368000081529150612588565b6020808252810161103081612754565b608081016127a68287612147565b6127b36020830186611ddf565b81810360408301526127c581856124e9565b90506127d46060830184611ddf565b95945050505050565b60006127e7825190565b6127f58185602086016124b9565b9290920192915050565b600061280b82866127dd565b915061281782856127dd565b91506127d482846127dd565b805161103081611f75565b60006020828403121561284357612843600080fd5b6000611b9d8484612823565b60a0810161285d8288612147565b61286a60208301876120b2565b6128776040830186611ddf565b818103606083015261288981856124e9565b90506128986080830184611ddf565b9695505050505050565b60006000198214156128b6576128b6612634565b5060010190565b60008160001904831182151516156128d7576128d7612634565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612901576129016128dc565b500490565b602781526000602082017f536c61736865723a207369676e6174757265206c656e677468206973206e6f74815266040cadcdeeaced60cb1b602082015291506124a2565b6020808252810161103081612906565b634e487b7160e01b600052603260045260246000fd5b601a81526000602082017f536c61736865723a20696e76616c6964207369676e617475726500000000000081529150612588565b6020808252810161103081612970565b600060ff8216915060ff83165b9250828210156129d3576129d3612634565b500390565b602281526000602082017f536c61736865723a20696e636f7272656374207369676e6174757265206f726481526132b960f11b602082015291506124a2565b60208082528101611030816129d8565b801515611da8565b805161103081612a27565b600060208284031215612a4f57612a4f600080fd5b6000611b9d8484612a2f565b602a81526000602082017f536c61736865723a207369676e6572206973206e6f7420746865206d616a6f728152692063616e64696461746560b01b602082015291506124a2565b6020808252810161103081612a5b565b600060ff8216915060ff8214156128b6576128b6612634565b6016815260006020820175536c61736865723a20696e76616c6964206e6f6e636560501b81529150612588565b6020808252810161103081612acb565b602981526000602082017f536c61736865723a20736c61736820697320696e207075626c6963206e6f746981526818d9481c195c9a5bd960ba1b602082015291506124a2565b6020808252810161103081612b08565b6000826129c1565b60006120f68383612147565b6000612b7c825190565b80845260209384019383018060005b8381101561213c578151612b9f8882612b66565b975060208301925050600101612b8b565b60a08101612bbe82886120b2565b612bcb6020830187612147565b8181036040830152612bdd81866123ff565b90508181036060830152612bf18185612b72565b90506128986080830184612147565b60408101612c0e8285612147565b61221c60208301846120b2565b602681526000602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015291506124a2565b6020808252810161103081612c1b565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081526000612588565b6020808252810161103081612c6e565b60006001600160401b03821691506001600160401b0383169250826001600160401b030382111561265d5761265d612634565b601c81526000602082017f536c61736865723a20696e76616c696420636f656666696369656e740000000081529150612588565b6020808252810161103081612ce3565b60006110306120766001600160401b03841681565b611dea81612d27565b602081016110308284612d3c565b600082612d6257612d626128dc565b500690565b60ff8116611dea565b60808101612d7e8287612147565b612d8b6020830186612d67565b612d986040830185612147565b6127d4606083018461214756fea264697066735822122001889c2c96d7c03c210e3243301f005fa02ef951101e3651c995689cdab95bec64736f6c63430008090033"; export class MockSlasher__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): MockSlasher { return super.attach(address) as MockSlasher; } connect(signer: Signer): MockSlasher__factory { return super.connect(signer) as MockSlasher__factory; } static readonly bytecode = _bytecode; static readonly abi = _abi; static createInterface(): MockSlasherInterface { return new utils.Interface(_abi) as MockSlasherInterface; } static connect( address: string, signerOrProvider: Signer | Provider ): MockSlasher { return new Contract(address, _abi, signerOrProvider) as MockSlasher; } }