import { Signer , Contract , ContractFactory , Overrides } from "ethers" ; import { Provider , TransactionRequest } from "@ethersproject/providers" ; import type { LibBytesImpl } from "../LibBytesImpl" ; export class LibBytesImpl__factory extends ContractFactory { constructor ( signer ? ) { super ( _abi , _bytecode , signer ) ; } deploy ( overrides ? ) { return super . deploy ( overrides || { } ) as Promise < LibBytesImpl > ; } getDeployTransaction ( overrides ? ) { return super . getDeployTransaction ( overrides || { } ) ; } attach ( address ) { return super . attach ( address ) as LibBytesImpl ; } connect ( signer ) { return super . connect ( signer ) as LibBytesImpl__factory ; } static connect ( address , signerOrProvider ) { return new Contract ( address , _abi , signerOrProvider ) as LibBytesImpl ; } } const _abi = [ { inputs : [ { internalType : "bytes" , name : "_data" , type : "bytes" , } , { internalType : "uint256" , name : "_index" , type : "uint256" , } , ] , name : "readAddress" , outputs : [ { internalType : "address" , name : "" , type : "address" , } , { internalType : "uint256" , name : "" , type : "uint256" , } , ] , stateMutability : "pure" , type : "function" , } , { inputs : [ { internalType : "bytes" , name : "_data" , type : "bytes" , } , { internalType : "uint256" , name : "_index" , type : "uint256" , } , { internalType : "uint256" , name : "_size" , type : "uint256" , } , ] , name : "readBytes" , outputs : [ { internalType : "bytes" , name : "" , type : "bytes" , } , { internalType : "uint256" , name : "" , type : "uint256" , } , ] , stateMutability : "view" , type : "function" , } , { inputs : [ { internalType : "bytes" , name : "_data" , type : "bytes" , } , { internalType : "uint256" , name : "_index" , type : "uint256" , } , ] , name : "readBytes32" , outputs : [ { internalType : "bytes32" , name : "" , type : "bytes32" , } , ] , stateMutability : "pure" , type : "function" , } , { inputs : [ { internalType : "bytes" , name : "_data" , type : "bytes" , } , { internalType : "uint256" , name : "_index" , type : "uint256" , } , ] , name : "readBytes66" , outputs : [ { internalType : "bytes" , name : "" , type : "bytes" , } , { internalType : "uint256" , name : "" , type : "uint256" , } , ] , stateMutability : "pure" , type : "function" , } , { inputs : [ { internalType : "bytes" , name : "_data" , type : "bytes" , } , ] , name : "readFirstUint16" , outputs : [ { internalType : "uint16" , name : "" , type : "uint16" , } , { internalType : "uint256" , name : "" , type : "uint256" , } , ] , stateMutability : "pure" , type : "function" , } , { inputs : [ { internalType : "bytes" , name : "_data" , type : "bytes" , } , { internalType : "uint256" , name : "_index" , type : "uint256" , } , ] , name : "readUint16" , outputs : [ { internalType : "uint16" , name : "" , type : "uint16" , } , { internalType : "uint256" , name : "" , type : "uint256" , } , ] , stateMutability : "pure" , type : "function" , } , { inputs : [ { internalType : "bytes" , name : "_data" , type : "bytes" , } , { internalType : "uint256" , name : "_index" , type : "uint256" , } , ] , name : "readUint8Uint8" , outputs : [ { internalType : "uint8" , name : "" , type : "uint8" , } , { internalType : "uint8" , name : "" , type : "uint8" , } , { internalType : "uint256" , name : "" , type : "uint256" , } , ] , stateMutability : "pure" , type : "function" , } , ] ; const _bytecode = "0x608060405234801561001057600080fd5b50610bdc806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063afa3102d1161005b578063afa3102d14610202578063ca9cd01d146102f7578063e8a7c08a14610367578063f0e9da23146103fb5761007d565b8063285badc214610082578063a23ccef614610110578063af500fb714610180575b600080fd5b6100f26004803603602081101561009857600080fd5b8101906020810181356401000000008111156100b357600080fd5b8201836020820111156100c557600080fd5b803590602001918460018302840111640100000000831117156100e757600080fd5b50909250905061049b565b6040805161ffff909316835260208301919091528051918290030190f35b6100f26004803603604081101561012657600080fd5b81019060208101813564010000000081111561014157600080fd5b82018360208201111561015357600080fd5b8035906020019184600183028401116401000000008311171561017557600080fd5b9193509150356104e9565b6101f06004803603604081101561019657600080fd5b8101906020810181356401000000008111156101b157600080fd5b8201836020820111156101c357600080fd5b803590602001918460018302840111640100000000831117156101e557600080fd5b91935091503561053c565b60408051918252519081900360200190f35b6102786004803603606081101561021857600080fd5b81019060208101813564010000000081111561023357600080fd5b82018360208201111561024557600080fd5b8035906020019184600183028401116401000000008311171561026757600080fd5b919350915080359060200135610589565b6040518080602001838152602001828103825284818151815260200191508051906020019080838360005b838110156102bb5781810151838201526020016102a3565b50505050905090810190601f1680156102e85780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b6102786004803603604081101561030d57600080fd5b81019060208101813564010000000081111561032857600080fd5b82018360208201111561033a57600080fd5b8035906020019184600183028401116401000000008311171561035c57600080fd5b9193509150356105df565b6103d76004803603604081101561037d57600080fd5b81019060208101813564010000000081111561039857600080fd5b8201836020820111156103aa57600080fd5b803590602001918460018302840111640100000000831117156103cc57600080fd5b919350915035610626565b6040805160ff94851681529290931660208301528183015290519081900360600190f35b61046b6004803603604081101561041157600080fd5b81019060208101813564010000000081111561042c57600080fd5b82018360208201111561043e57600080fd5b8035906020019184600183028401116401000000008311171561046057600080fd5b91935091503561067d565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835260208301919091528051918290030190f35b6000806104dd84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506106c392505050565b915091505b9250929050565b60008061052f8386868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506107319050565b915091505b935093915050565b60006105818285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506107a29050565b949350505050565b606060006105d2848488888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092949392505061080a9050565b9150915094509492505050565b6060600061052f8386868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506108f19050565b600080600061066e8487878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506109a29050565b92509250925093509350939050565b60008061052f8386868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610a239050565b6020810151815160f09190911c9060029081111561072c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180610ab86027913960400191505060405180910390fd5b915091565b8082016020015160f01c6002820182811161074857fe5b83518111156104e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610b496022913960400191505060405180910390fd5b60008160200183511015610801576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180610b6b603c913960400191505060405180910390fd5b50016020015190565b606060008267ffffffffffffffff8111801561082557600080fd5b506040519080825280601f01601f191660200182016040528015610850576020820181803683370190505b509150838501602001600060205b858110156108775790820151848201526020810161085e565b848601602001805193909201519085015252508282018381101561089757fe5b8451811115610534576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180610b286021913960400191505060405180910390fd5b60408051604280825260808201909252606091600091906020820181803683370190505091508284016020018051602084015260208101516040840152602281015160428401525060428301905082811161094857fe5b83518111156104e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610adf6023913960400191505060405180910390fd5b8082016020015160f881901c9060f01c60ff16600283018381116109c257fe5b8451811115610a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610b026026913960400191505060405180910390fd5b9250925092565b8082016020015160601c60148201828111610a3a57fe5b83518111156104e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610a956023913960400191505060405180910390fdfe4c696242797465732372656164416464726573733a204f55545f4f465f424f554e44534c696242797465732372656164466972737455696e7431363a204f55545f4f465f424f554e44534c696242797465732372656164427974657336363a204f55545f4f465f424f554e44534c69624279746573237265616455696e743855696e74383a204f55545f4f465f424f554e44534c69624279746573237265616442797465733a204f55545f4f465f424f554e44534c69624279746573237265616455696e7431363a204f55545f4f465f424f554e44534c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544a264697066735822122054a6be3b425882cd48e9f2c46abde58040574a18788c9960398a7ef276c310e764736f6c63430007060033" ;