From 779147b6e13c72e8171ad2ab9032bed3bc2a4366 Mon Sep 17 00:00:00 2001 From: Luke Ma <867273263@qq.com> Date: Sat, 15 Jun 2024 07:56:00 +0800 Subject: [PATCH] feat: Add bytesToBool function (#152) --- contracts/BytesHelperLib.sol | 13 ++++ typechain-types/contracts/BytesHelperLib.ts | 55 +++++++++++++++ typechain-types/contracts/index.ts | 1 + .../contracts/BytesHelperLib__factory.ts | 68 +++++++++++++++++++ .../factories/contracts/TestZRC20__factory.ts | 2 +- typechain-types/factories/contracts/index.ts | 1 + .../contracts/shared/MockZRC20__factory.ts | 2 +- typechain-types/hardhat.d.ts | 9 +++ typechain-types/index.ts | 2 + 9 files changed, 151 insertions(+), 2 deletions(-) create mode 100644 typechain-types/contracts/BytesHelperLib.ts create mode 100644 typechain-types/factories/contracts/BytesHelperLib__factory.ts diff --git a/contracts/BytesHelperLib.sol b/contracts/BytesHelperLib.sol index 6e64e71f..ca6ec9fc 100644 --- a/contracts/BytesHelperLib.sol +++ b/contracts/BytesHelperLib.sol @@ -2,6 +2,8 @@ pragma solidity =0.8.7; library BytesHelperLib { + error OffsetOutOfBounds(); + function bytesToAddress( bytes calldata data, uint256 offset @@ -48,4 +50,15 @@ library BytesHelperLib { return bech32Bytes; } + + function bytesToBool(bytes calldata data, uint256 offset) + internal + pure + returns (bool) + { + if (offset >= data.length) { + revert OffsetOutOfBounds(); + } + return uint8(data[offset]) != 0; + } } diff --git a/typechain-types/contracts/BytesHelperLib.ts b/typechain-types/contracts/BytesHelperLib.ts new file mode 100644 index 00000000..296a3da2 --- /dev/null +++ b/typechain-types/contracts/BytesHelperLib.ts @@ -0,0 +1,55 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { BaseContract, Signer, utils } from "ethers"; + +import type { Listener, Provider } from "@ethersproject/providers"; +import type { + TypedEventFilter, + TypedEvent, + TypedListener, + OnEvent, +} from "../common"; + +export interface BytesHelperLibInterface extends utils.Interface { + functions: {}; + + events: {}; +} + +export interface BytesHelperLib extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: BytesHelperLibInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>; + + listeners( + eventFilter?: TypedEventFilter + ): Array>; + listeners(eventName?: string): Array; + removeAllListeners( + eventFilter: TypedEventFilter + ): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: {}; + + callStatic: {}; + + filters: {}; + + estimateGas: {}; + + populateTransaction: {}; +} diff --git a/typechain-types/contracts/index.ts b/typechain-types/contracts/index.ts index 279b3724..acf59e2f 100644 --- a/typechain-types/contracts/index.ts +++ b/typechain-types/contracts/index.ts @@ -7,6 +7,7 @@ import type * as zetaConnectorMockSol from "./ZetaConnectorMock.sol"; export type { zetaConnectorMockSol }; import type * as shared from "./shared"; export type { shared }; +export type { BytesHelperLib } from "./BytesHelperLib"; export type { OnlySystem } from "./OnlySystem"; export type { SwapHelperLib } from "./SwapHelperLib"; export type { TestSystemContract } from "./TestSystemContract"; diff --git a/typechain-types/factories/contracts/BytesHelperLib__factory.ts b/typechain-types/factories/contracts/BytesHelperLib__factory.ts new file mode 100644 index 00000000..5c356a9d --- /dev/null +++ b/typechain-types/factories/contracts/BytesHelperLib__factory.ts @@ -0,0 +1,68 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import type { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { PromiseOrValue } from "../../common"; +import type { + BytesHelperLib, + BytesHelperLibInterface, +} from "../../contracts/BytesHelperLib"; + +const _abi = [ + { + inputs: [], + name: "OffsetOutOfBounds", + type: "error", + }, +] as const; + +const _bytecode = + "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220db9c0f1b135916f15772ca92fae45f42347adcdba0acca9f1f72dea8794c690664736f6c63430008070033"; + +type BytesHelperLibConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: BytesHelperLibConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class BytesHelperLib__factory extends ContractFactory { + constructor(...args: BytesHelperLibConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override deploy( + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + override getDeployTransaction( + overrides?: Overrides & { from?: PromiseOrValue } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + override attach(address: string): BytesHelperLib { + return super.attach(address) as BytesHelperLib; + } + override connect(signer: Signer): BytesHelperLib__factory { + return super.connect(signer) as BytesHelperLib__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): BytesHelperLibInterface { + return new utils.Interface(_abi) as BytesHelperLibInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): BytesHelperLib { + return new Contract(address, _abi, signerOrProvider) as BytesHelperLib; + } +} diff --git a/typechain-types/factories/contracts/TestZRC20__factory.ts b/typechain-types/factories/contracts/TestZRC20__factory.ts index 4833ca77..8b642a3f 100644 --- a/typechain-types/factories/contracts/TestZRC20__factory.ts +++ b/typechain-types/factories/contracts/TestZRC20__factory.ts @@ -403,7 +403,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60806040523480156200001157600080fd5b5060405162001f6838038062001f6883398181016040528101906200003791906200037b565b818181600390805190602001906200005192919062000236565b5080600490805190602001906200006a92919062000236565b505050620000ac3362000082620000b560201b60201c565b60ff16600a620000939190620005b4565b85620000a09190620006f1565b620000be60201b60201c565b50505062000900565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000131576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000128906200044d565b60405180910390fd5b62000145600083836200022c60201b60201c565b8060026000828254620001599190620004fc565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200020c91906200046f565b60405180910390a362000228600083836200023160201b60201c565b5050565b505050565b505050565b828054620002449062000792565b90600052602060002090601f016020900481019282620002685760008555620002b4565b82601f106200028357805160ff1916838001178555620002b4565b82800160010185558215620002b4579182015b82811115620002b357825182559160200191906001019062000296565b5b509050620002c39190620002c7565b5090565b5b80821115620002e2576000816000905550600101620002c8565b5090565b6000620002fd620002f784620004b5565b6200048c565b9050828152602081018484840111156200031c576200031b62000890565b5b620003298482856200075c565b509392505050565b600082601f8301126200034957620003486200088b565b5b81516200035b848260208601620002e6565b91505092915050565b6000815190506200037581620008e6565b92915050565b6000806000606084860312156200039757620003966200089a565b5b6000620003a78682870162000364565b935050602084015167ffffffffffffffff811115620003cb57620003ca62000895565b5b620003d98682870162000331565b925050604084015167ffffffffffffffff811115620003fd57620003fc62000895565b5b6200040b8682870162000331565b9150509250925092565b600062000424601f83620004eb565b91506200043182620008bd565b602082019050919050565b620004478162000752565b82525050565b60006020820190508181036000830152620004688162000415565b9050919050565b60006020820190506200048660008301846200043c565b92915050565b600062000498620004ab565b9050620004a68282620007c8565b919050565b6000604051905090565b600067ffffffffffffffff821115620004d357620004d26200085c565b5b620004de826200089f565b9050602081019050919050565b600082825260208201905092915050565b6000620005098262000752565b9150620005168362000752565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200054e576200054d620007fe565b5b828201905092915050565b6000808291508390505b6001851115620005ab57808604811115620005835762000582620007fe565b5b6001851615620005935780820291505b8081029050620005a385620008b0565b945062000563565b94509492505050565b6000620005c18262000752565b9150620005ce8362000752565b9250620005fd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000605565b905092915050565b600082620006175760019050620006ea565b81620006275760009050620006ea565b81600181146200064057600281146200064b5762000681565b6001915050620006ea565b60ff84111562000660576200065f620007fe565b5b8360020a9150848211156200067a5762000679620007fe565b5b50620006ea565b5060208310610133831016604e8410600b8410161715620006bb5782820a905083811115620006b557620006b4620007fe565b5b620006ea565b620006ca848484600162000559565b92509050818404811115620006e457620006e3620007fe565b5b81810290505b9392505050565b6000620006fe8262000752565b91506200070b8362000752565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620007475762000746620007fe565b5b828202905092915050565b6000819050919050565b60005b838110156200077c5780820151818401526020810190506200075f565b838111156200078c576000848401525b50505050565b60006002820490506001821680620007ab57607f821691505b60208210811415620007c257620007c16200082d565b5b50919050565b620007d3826200089f565b810181811067ffffffffffffffff82111715620007f557620007f46200085c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b620008f18162000752565b8114620008fd57600080fd5b50565b61165880620009106000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806347e7ef2411610097578063a9059cbb11610066578063a9059cbb146102c2578063c7012626146102f2578063d9eeebed14610322578063dd62ed3e14610341576100f5565b806347e7ef241461021457806370a082311461024457806395d89b4114610274578063a457c2d714610292576100f5565b806323b872dd116100d357806323b872dd146101665780632c27d3ab14610196578063313ce567146101c657806339509351146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b610102610371565b60405161010f91906110c0565b60405180910390f35b610132600480360381019061012d9190610de3565b610403565b60405161013f91906110a5565b60405180910390f35b610150610426565b60405161015d91906111c2565b60405180910390f35b610180600480360381019061017b9190610d90565b610430565b60405161018d91906110a5565b60405180910390f35b6101b060048036038101906101ab9190610e83565b61045f565b6040516101bd9190611061565b60405180910390f35b6101ce6104d3565b6040516101db91906111dd565b60405180910390f35b6101fe60048036038101906101f99190610de3565b6104dc565b60405161020b91906110a5565b60405180910390f35b61022e60048036038101906102299190610de3565b610513565b60405161023b91906110a5565b60405180910390f35b61025e60048036038101906102599190610d23565b61051f565b60405161026b91906111c2565b60405180910390f35b61027c610567565b60405161028991906110c0565b60405180910390f35b6102ac60048036038101906102a79190610de3565b6105f9565b6040516102b991906110a5565b60405180910390f35b6102dc60048036038101906102d79190610de3565b610670565b6040516102e991906110a5565b60405180910390f35b61030c60048036038101906103079190610e23565b610693565b60405161031991906110a5565b60405180910390f35b61032a6106b8565b60405161033892919061107c565b60405180910390f35b61035b60048036038101906103569190610d50565b6106c6565b60405161036891906111c2565b60405180910390f35b6060600380546103809061132d565b80601f01602080910402602001604051908101604052809291908181526020018280546103ac9061132d565b80156103f95780601f106103ce576101008083540402835291602001916103f9565b820191906000526020600020905b8154815290600101906020018083116103dc57829003601f168201915b5050505050905090565b60008061040e61074d565b905061041b818585610755565b600191505092915050565b6000600254905090565b60008061043b61074d565b9050610448858285610920565b6104538585856109ac565b60019150509392505050565b600080858585908587610472919061124f565b9261047f93929190611214565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905082810151915050949350505050565b60006012905090565b6000806104e761074d565b90506105088185856104f985896106c6565b610503919061124f565b610755565b600191505092915050565b60006001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546105769061132d565b80601f01602080910402602001604051908101604052809291908181526020018280546105a29061132d565b80156105ef5780601f106105c4576101008083540402835291602001916105ef565b820191906000526020600020905b8154815290600101906020018083116105d257829003601f168201915b5050505050905090565b60008061060461074d565b9050600061061282866106c6565b905083811015610657576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064e906111a2565b60405180910390fd5b6106648286868403610755565b60019250505092915050565b60008061067b61074d565b90506106888185856109ac565b600191505092915050565b6000806106a28585600c610c24565b90506106ae8184610670565b9150509392505050565b600080306000915091509091565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bc90611182565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90611102565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161091391906111c2565b60405180910390a3505050565b600061092c84846106c6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109a65781811015610998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098f90611122565b60405180910390fd5b6109a58484848403610755565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1390611162565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a83906110e2565b60405180910390fd5b610a97838383610c99565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1490611142565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c0b91906111c2565b60405180910390a3610c1e848484610c9e565b50505050565b60008084848490601486610c38919061124f565b92610c4593929190611214565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060148101519150509392505050565b505050565b505050565b600081359050610cb2816115f4565b92915050565b60008083601f840112610cce57610ccd6113c2565b5b8235905067ffffffffffffffff811115610ceb57610cea6113bd565b5b602083019150836001820283011115610d0757610d066113d1565b5b9250929050565b600081359050610d1d8161160b565b92915050565b600060208284031215610d3957610d386113db565b5b6000610d4784828501610ca3565b91505092915050565b60008060408385031215610d6757610d666113db565b5b6000610d7585828601610ca3565b9250506020610d8685828601610ca3565b9150509250929050565b600080600060608486031215610da957610da86113db565b5b6000610db786828701610ca3565b9350506020610dc886828701610ca3565b9250506040610dd986828701610d0e565b9150509250925092565b60008060408385031215610dfa57610df96113db565b5b6000610e0885828601610ca3565b9250506020610e1985828601610d0e565b9150509250929050565b600080600060408486031215610e3c57610e3b6113db565b5b600084013567ffffffffffffffff811115610e5a57610e596113d6565b5b610e6686828701610cb8565b93509350506020610e7986828701610d0e565b9150509250925092565b60008060008060608587031215610e9d57610e9c6113db565b5b600085013567ffffffffffffffff811115610ebb57610eba6113d6565b5b610ec787828801610cb8565b94509450506020610eda87828801610d0e565b9250506040610eeb87828801610d0e565b91505092959194509250565b610f00816112a5565b82525050565b610f0f816112b7565b82525050565b6000610f20826111f8565b610f2a8185611203565b9350610f3a8185602086016112fa565b610f43816113e0565b840191505092915050565b6000610f5b602383611203565b9150610f66826113f1565b604082019050919050565b6000610f7e602283611203565b9150610f8982611440565b604082019050919050565b6000610fa1601d83611203565b9150610fac8261148f565b602082019050919050565b6000610fc4602683611203565b9150610fcf826114b8565b604082019050919050565b6000610fe7602583611203565b9150610ff282611507565b604082019050919050565b600061100a602483611203565b915061101582611556565b604082019050919050565b600061102d602583611203565b9150611038826115a5565b604082019050919050565b61104c816112e3565b82525050565b61105b816112ed565b82525050565b60006020820190506110766000830184610ef7565b92915050565b60006040820190506110916000830185610ef7565b61109e6020830184611043565b9392505050565b60006020820190506110ba6000830184610f06565b92915050565b600060208201905081810360008301526110da8184610f15565b905092915050565b600060208201905081810360008301526110fb81610f4e565b9050919050565b6000602082019050818103600083015261111b81610f71565b9050919050565b6000602082019050818103600083015261113b81610f94565b9050919050565b6000602082019050818103600083015261115b81610fb7565b9050919050565b6000602082019050818103600083015261117b81610fda565b9050919050565b6000602082019050818103600083015261119b81610ffd565b9050919050565b600060208201905081810360008301526111bb81611020565b9050919050565b60006020820190506111d76000830184611043565b92915050565b60006020820190506111f26000830184611052565b92915050565b600081519050919050565b600082825260208201905092915050565b60008085851115611228576112276113cc565b5b83861115611239576112386113c7565b5b6001850283019150848603905094509492505050565b600061125a826112e3565b9150611265836112e3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561129a5761129961135f565b5b828201905092915050565b60006112b0826112c3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156113185780820151818401526020810190506112fd565b83811115611327576000848401525b50505050565b6000600282049050600182168061134557607f821691505b602082108114156113595761135861138e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6115fd816112a5565b811461160857600080fd5b50565b611614816112e3565b811461161f57600080fd5b5056fea26469706673582212207a4a3aa8b5e605ed59bdb5481d000dbf9833ad871b22ed613896358908a00f7764736f6c63430008070033"; + "0x60806040523480156200001157600080fd5b5060405162001f6838038062001f6883398181016040528101906200003791906200037b565b818181600390805190602001906200005192919062000236565b5080600490805190602001906200006a92919062000236565b505050620000ac3362000082620000b560201b60201c565b60ff16600a620000939190620005b4565b85620000a09190620006f1565b620000be60201b60201c565b50505062000900565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000131576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000128906200044d565b60405180910390fd5b62000145600083836200022c60201b60201c565b8060026000828254620001599190620004fc565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200020c91906200046f565b60405180910390a362000228600083836200023160201b60201c565b5050565b505050565b505050565b828054620002449062000792565b90600052602060002090601f016020900481019282620002685760008555620002b4565b82601f106200028357805160ff1916838001178555620002b4565b82800160010185558215620002b4579182015b82811115620002b357825182559160200191906001019062000296565b5b509050620002c39190620002c7565b5090565b5b80821115620002e2576000816000905550600101620002c8565b5090565b6000620002fd620002f784620004b5565b6200048c565b9050828152602081018484840111156200031c576200031b62000890565b5b620003298482856200075c565b509392505050565b600082601f8301126200034957620003486200088b565b5b81516200035b848260208601620002e6565b91505092915050565b6000815190506200037581620008e6565b92915050565b6000806000606084860312156200039757620003966200089a565b5b6000620003a78682870162000364565b935050602084015167ffffffffffffffff811115620003cb57620003ca62000895565b5b620003d98682870162000331565b925050604084015167ffffffffffffffff811115620003fd57620003fc62000895565b5b6200040b8682870162000331565b9150509250925092565b600062000424601f83620004eb565b91506200043182620008bd565b602082019050919050565b620004478162000752565b82525050565b60006020820190508181036000830152620004688162000415565b9050919050565b60006020820190506200048660008301846200043c565b92915050565b600062000498620004ab565b9050620004a68282620007c8565b919050565b6000604051905090565b600067ffffffffffffffff821115620004d357620004d26200085c565b5b620004de826200089f565b9050602081019050919050565b600082825260208201905092915050565b6000620005098262000752565b9150620005168362000752565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200054e576200054d620007fe565b5b828201905092915050565b6000808291508390505b6001851115620005ab57808604811115620005835762000582620007fe565b5b6001851615620005935780820291505b8081029050620005a385620008b0565b945062000563565b94509492505050565b6000620005c18262000752565b9150620005ce8362000752565b9250620005fd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000605565b905092915050565b600082620006175760019050620006ea565b81620006275760009050620006ea565b81600181146200064057600281146200064b5762000681565b6001915050620006ea565b60ff84111562000660576200065f620007fe565b5b8360020a9150848211156200067a5762000679620007fe565b5b50620006ea565b5060208310610133831016604e8410600b8410161715620006bb5782820a905083811115620006b557620006b4620007fe565b5b620006ea565b620006ca848484600162000559565b92509050818404811115620006e457620006e3620007fe565b5b81810290505b9392505050565b6000620006fe8262000752565b91506200070b8362000752565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620007475762000746620007fe565b5b828202905092915050565b6000819050919050565b60005b838110156200077c5780820151818401526020810190506200075f565b838111156200078c576000848401525b50505050565b60006002820490506001821680620007ab57607f821691505b60208210811415620007c257620007c16200082d565b5b50919050565b620007d3826200089f565b810181811067ffffffffffffffff82111715620007f557620007f46200085c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b620008f18162000752565b8114620008fd57600080fd5b50565b61165880620009106000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806347e7ef2411610097578063a9059cbb11610066578063a9059cbb146102c2578063c7012626146102f2578063d9eeebed14610322578063dd62ed3e14610341576100f5565b806347e7ef241461021457806370a082311461024457806395d89b4114610274578063a457c2d714610292576100f5565b806323b872dd116100d357806323b872dd146101665780632c27d3ab14610196578063313ce567146101c657806339509351146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b610102610371565b60405161010f91906110c0565b60405180910390f35b610132600480360381019061012d9190610de3565b610403565b60405161013f91906110a5565b60405180910390f35b610150610426565b60405161015d91906111c2565b60405180910390f35b610180600480360381019061017b9190610d90565b610430565b60405161018d91906110a5565b60405180910390f35b6101b060048036038101906101ab9190610e83565b61045f565b6040516101bd9190611061565b60405180910390f35b6101ce6104d3565b6040516101db91906111dd565b60405180910390f35b6101fe60048036038101906101f99190610de3565b6104dc565b60405161020b91906110a5565b60405180910390f35b61022e60048036038101906102299190610de3565b610513565b60405161023b91906110a5565b60405180910390f35b61025e60048036038101906102599190610d23565b61051f565b60405161026b91906111c2565b60405180910390f35b61027c610567565b60405161028991906110c0565b60405180910390f35b6102ac60048036038101906102a79190610de3565b6105f9565b6040516102b991906110a5565b60405180910390f35b6102dc60048036038101906102d79190610de3565b610670565b6040516102e991906110a5565b60405180910390f35b61030c60048036038101906103079190610e23565b610693565b60405161031991906110a5565b60405180910390f35b61032a6106b8565b60405161033892919061107c565b60405180910390f35b61035b60048036038101906103569190610d50565b6106c6565b60405161036891906111c2565b60405180910390f35b6060600380546103809061132d565b80601f01602080910402602001604051908101604052809291908181526020018280546103ac9061132d565b80156103f95780601f106103ce576101008083540402835291602001916103f9565b820191906000526020600020905b8154815290600101906020018083116103dc57829003601f168201915b5050505050905090565b60008061040e61074d565b905061041b818585610755565b600191505092915050565b6000600254905090565b60008061043b61074d565b9050610448858285610920565b6104538585856109ac565b60019150509392505050565b600080858585908587610472919061124f565b9261047f93929190611214565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905082810151915050949350505050565b60006012905090565b6000806104e761074d565b90506105088185856104f985896106c6565b610503919061124f565b610755565b600191505092915050565b60006001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546105769061132d565b80601f01602080910402602001604051908101604052809291908181526020018280546105a29061132d565b80156105ef5780601f106105c4576101008083540402835291602001916105ef565b820191906000526020600020905b8154815290600101906020018083116105d257829003601f168201915b5050505050905090565b60008061060461074d565b9050600061061282866106c6565b905083811015610657576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064e906111a2565b60405180910390fd5b6106648286868403610755565b60019250505092915050565b60008061067b61074d565b90506106888185856109ac565b600191505092915050565b6000806106a28585600c610c24565b90506106ae8184610670565b9150509392505050565b600080306000915091509091565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bc90611182565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90611102565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161091391906111c2565b60405180910390a3505050565b600061092c84846106c6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109a65781811015610998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098f90611122565b60405180910390fd5b6109a58484848403610755565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1390611162565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a83906110e2565b60405180910390fd5b610a97838383610c99565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1490611142565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c0b91906111c2565b60405180910390a3610c1e848484610c9e565b50505050565b60008084848490601486610c38919061124f565b92610c4593929190611214565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060148101519150509392505050565b505050565b505050565b600081359050610cb2816115f4565b92915050565b60008083601f840112610cce57610ccd6113c2565b5b8235905067ffffffffffffffff811115610ceb57610cea6113bd565b5b602083019150836001820283011115610d0757610d066113d1565b5b9250929050565b600081359050610d1d8161160b565b92915050565b600060208284031215610d3957610d386113db565b5b6000610d4784828501610ca3565b91505092915050565b60008060408385031215610d6757610d666113db565b5b6000610d7585828601610ca3565b9250506020610d8685828601610ca3565b9150509250929050565b600080600060608486031215610da957610da86113db565b5b6000610db786828701610ca3565b9350506020610dc886828701610ca3565b9250506040610dd986828701610d0e565b9150509250925092565b60008060408385031215610dfa57610df96113db565b5b6000610e0885828601610ca3565b9250506020610e1985828601610d0e565b9150509250929050565b600080600060408486031215610e3c57610e3b6113db565b5b600084013567ffffffffffffffff811115610e5a57610e596113d6565b5b610e6686828701610cb8565b93509350506020610e7986828701610d0e565b9150509250925092565b60008060008060608587031215610e9d57610e9c6113db565b5b600085013567ffffffffffffffff811115610ebb57610eba6113d6565b5b610ec787828801610cb8565b94509450506020610eda87828801610d0e565b9250506040610eeb87828801610d0e565b91505092959194509250565b610f00816112a5565b82525050565b610f0f816112b7565b82525050565b6000610f20826111f8565b610f2a8185611203565b9350610f3a8185602086016112fa565b610f43816113e0565b840191505092915050565b6000610f5b602383611203565b9150610f66826113f1565b604082019050919050565b6000610f7e602283611203565b9150610f8982611440565b604082019050919050565b6000610fa1601d83611203565b9150610fac8261148f565b602082019050919050565b6000610fc4602683611203565b9150610fcf826114b8565b604082019050919050565b6000610fe7602583611203565b9150610ff282611507565b604082019050919050565b600061100a602483611203565b915061101582611556565b604082019050919050565b600061102d602583611203565b9150611038826115a5565b604082019050919050565b61104c816112e3565b82525050565b61105b816112ed565b82525050565b60006020820190506110766000830184610ef7565b92915050565b60006040820190506110916000830185610ef7565b61109e6020830184611043565b9392505050565b60006020820190506110ba6000830184610f06565b92915050565b600060208201905081810360008301526110da8184610f15565b905092915050565b600060208201905081810360008301526110fb81610f4e565b9050919050565b6000602082019050818103600083015261111b81610f71565b9050919050565b6000602082019050818103600083015261113b81610f94565b9050919050565b6000602082019050818103600083015261115b81610fb7565b9050919050565b6000602082019050818103600083015261117b81610fda565b9050919050565b6000602082019050818103600083015261119b81610ffd565b9050919050565b600060208201905081810360008301526111bb81611020565b9050919050565b60006020820190506111d76000830184611043565b92915050565b60006020820190506111f26000830184611052565b92915050565b600081519050919050565b600082825260208201905092915050565b60008085851115611228576112276113cc565b5b83861115611239576112386113c7565b5b6001850283019150848603905094509492505050565b600061125a826112e3565b9150611265836112e3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561129a5761129961135f565b5b828201905092915050565b60006112b0826112c3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156113185780820151818401526020810190506112fd565b83811115611327576000848401525b50505050565b6000600282049050600182168061134557607f821691505b602082108114156113595761135861138e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6115fd816112a5565b811461160857600080fd5b50565b611614816112e3565b811461161f57600080fd5b5056fea2646970667358221220a0d27e0d4182ceeb4277fe6461e9f2e755fd3888df5f433041010e5ca74d9c2464736f6c63430008070033"; type TestZRC20ConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/index.ts b/typechain-types/factories/contracts/index.ts index 0725b7a0..a1c37704 100644 --- a/typechain-types/factories/contracts/index.ts +++ b/typechain-types/factories/contracts/index.ts @@ -4,6 +4,7 @@ export * as ethZetaMockSol from "./EthZetaMock.sol"; export * as zetaConnectorMockSol from "./ZetaConnectorMock.sol"; export * as shared from "./shared"; +export { BytesHelperLib__factory } from "./BytesHelperLib__factory"; export { OnlySystem__factory } from "./OnlySystem__factory"; export { SwapHelperLib__factory } from "./SwapHelperLib__factory"; export { TestSystemContract__factory } from "./TestSystemContract__factory"; diff --git a/typechain-types/factories/contracts/shared/MockZRC20__factory.ts b/typechain-types/factories/contracts/shared/MockZRC20__factory.ts index 326d0763..026787db 100644 --- a/typechain-types/factories/contracts/shared/MockZRC20__factory.ts +++ b/typechain-types/factories/contracts/shared/MockZRC20__factory.ts @@ -495,7 +495,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60806040523480156200001157600080fd5b5060405162002248380380620022488339818101604052810190620000379190620003bc565b818181600390805190602001906200005192919062000277565b5080600490805190602001906200006a92919062000277565b505050620000ac3362000082620000f660201b60201c565b60ff16600a620000939190620005f5565b85620000a0919062000732565b620000ff60201b60201c565b30600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505062000941565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000172576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000169906200048e565b60405180910390fd5b62000186600083836200026d60201b60201c565b80600260008282546200019a91906200053d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200024d9190620004b0565b60405180910390a362000269600083836200027260201b60201c565b5050565b505050565b505050565b8280546200028590620007d3565b90600052602060002090601f016020900481019282620002a95760008555620002f5565b82601f10620002c457805160ff1916838001178555620002f5565b82800160010185558215620002f5579182015b82811115620002f4578251825591602001919060010190620002d7565b5b50905062000304919062000308565b5090565b5b808211156200032357600081600090555060010162000309565b5090565b60006200033e6200033884620004f6565b620004cd565b9050828152602081018484840111156200035d576200035c620008d1565b5b6200036a8482856200079d565b509392505050565b600082601f8301126200038a5762000389620008cc565b5b81516200039c84826020860162000327565b91505092915050565b600081519050620003b68162000927565b92915050565b600080600060608486031215620003d857620003d7620008db565b5b6000620003e886828701620003a5565b935050602084015167ffffffffffffffff8111156200040c576200040b620008d6565b5b6200041a8682870162000372565b925050604084015167ffffffffffffffff8111156200043e576200043d620008d6565b5b6200044c8682870162000372565b9150509250925092565b600062000465601f836200052c565b91506200047282620008fe565b602082019050919050565b620004888162000793565b82525050565b60006020820190508181036000830152620004a98162000456565b9050919050565b6000602082019050620004c760008301846200047d565b92915050565b6000620004d9620004ec565b9050620004e7828262000809565b919050565b6000604051905090565b600067ffffffffffffffff8211156200051457620005136200089d565b5b6200051f82620008e0565b9050602081019050919050565b600082825260208201905092915050565b60006200054a8262000793565b9150620005578362000793565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200058f576200058e6200083f565b5b828201905092915050565b6000808291508390505b6001851115620005ec57808604811115620005c457620005c36200083f565b5b6001851615620005d45780820291505b8081029050620005e485620008f1565b9450620005a4565b94509492505050565b6000620006028262000793565b91506200060f8362000793565b92506200063e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000646565b905092915050565b6000826200065857600190506200072b565b816200066857600090506200072b565b81600181146200068157600281146200068c57620006c2565b60019150506200072b565b60ff841115620006a157620006a06200083f565b5b8360020a915084821115620006bb57620006ba6200083f565b5b506200072b565b5060208310610133831016604e8410600b8410161715620006fc5782820a905083811115620006f657620006f56200083f565b5b6200072b565b6200070b84848460016200059a565b925090508184048111156200072557620007246200083f565b5b81810290505b9392505050565b60006200073f8262000793565b91506200074c8362000793565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200078857620007876200083f565b5b828202905092915050565b6000819050919050565b60005b83811015620007bd578082015181840152602081019050620007a0565b83811115620007cd576000848401525b50505050565b60006002820490506001821680620007ec57607f821691505b602082108114156200080357620008026200086e565b5b50919050565b6200081482620008e0565b810181811067ffffffffffffffff821117156200083657620008356200089d565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b620009328162000793565b81146200093e57600080fd5b50565b6118f780620009516000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063658612e9116100ad578063a9059cbb11610071578063a9059cbb14610344578063c701262614610374578063d9eeebed146103a4578063dd62ed3e146103c3578063f7d8f616146103f357610121565b8063658612e91461028c578063678edca3146102aa57806370a08231146102c657806395d89b41146102f6578063a457c2d71461031457610121565b80632c27d3ab116100f45780632c27d3ab146101c2578063313ce567146101f257806339509351146102105780633e8a4ee11461024057806347e7ef241461025c57610121565b806306fdde0314610126578063095ea7b31461014457806318160ddd1461017457806323b872dd14610192575b600080fd5b61012e610411565b60405161013b919061132d565b60405180910390f35b61015e60048036038101906101599190610f99565b6104a3565b60405161016b91906112c4565b60405180910390f35b61017c6104c6565b604051610189919061142f565b60405180910390f35b6101ac60048036038101906101a79190610f46565b6104d0565b6040516101b991906112c4565b60405180910390f35b6101dc60048036038101906101d79190611039565b6104ff565b6040516101e99190611280565b60405180910390f35b6101fa610573565b604051610207919061144a565b60405180910390f35b61022a60048036038101906102259190610f99565b61057c565b60405161023791906112c4565b60405180910390f35b61025a60048036038101906102559190610ed9565b6105b3565b005b61027660048036038101906102719190610f99565b6105f7565b60405161028391906112c4565b60405180910390f35b610294610603565b6040516102a1919061142f565b60405180910390f35b6102c460048036038101906102bf91906110ad565b610609565b005b6102e060048036038101906102db9190610ed9565b610613565b6040516102ed919061142f565b60405180910390f35b6102fe61065b565b60405161030b919061132d565b60405180910390f35b61032e60048036038101906103299190610f99565b6106ed565b60405161033b91906112c4565b60405180910390f35b61035e60048036038101906103599190610f99565b610764565b60405161036b91906112c4565b60405180910390f35b61038e60048036038101906103899190610fd9565b610787565b60405161039b91906112c4565b60405180910390f35b6103ac610825565b6040516103ba92919061129b565b60405180910390f35b6103dd60048036038101906103d89190610f06565b610856565b6040516103ea919061142f565b60405180910390f35b6103fb6108dd565b6040516104089190611280565b60405180910390f35b606060038054610420906115cc565b80601f016020809104026020016040519081016040528092919081815260200182805461044c906115cc565b80156104995780601f1061046e57610100808354040283529160200191610499565b820191906000526020600020905b81548152906001019060200180831161047c57829003601f168201915b5050505050905090565b6000806104ae610903565b90506104bb81858561090b565b600191505092915050565b6000600254905090565b6000806104db610903565b90506104e8858285610ad6565b6104f3858585610b62565b60019150509392505050565b60008085858590858761051291906114cd565b9261051f93929190611492565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905082810151915050949350505050565b60006012905090565b600080610587610903565b90506105a88185856105998589610856565b6105a391906114cd565b61090b565b600191505092915050565b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006001905092915050565b60065481565b8060068190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461066a906115cc565b80601f0160208091040260200160405190810160405280929190818152602001828054610696906115cc565b80156106e35780601f106106b8576101008083540402835291602001916106e3565b820191906000526020600020905b8154815290600101906020018083116106c657829003601f168201915b5050505050905090565b6000806106f8610903565b905060006107068286610856565b90508381101561074b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107429061140f565b60405180910390fd5b610758828686840361090b565b60019250505092915050565b60008061076f610903565b905061077c818585610b62565b600191505092915050565b60008060208585905010156107a9576107a285856000610dda565b90506107b8565b6107b58585600c610dda565b90505b3373ffffffffffffffffffffffffffffffffffffffff167f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d95586868660065460006040516108099594939291906112df565b60405180910390a261081b8184610764565b9150509392505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600654915091509091565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561097b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610972906113ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e29061136f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ac9919061142f565b60405180910390a3505050565b6000610ae28484610856565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b5c5781811015610b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b459061138f565b60405180910390fd5b610b5b848484840361090b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc9906113cf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c399061134f565b60405180910390fd5b610c4d838383610e4f565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cca906113af565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dc1919061142f565b60405180910390a3610dd4848484610e54565b50505050565b60008084848490601486610dee91906114cd565b92610dfb93929190611492565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060148101519150509392505050565b505050565b505050565b600081359050610e6881611893565b92915050565b60008083601f840112610e8457610e83611661565b5b8235905067ffffffffffffffff811115610ea157610ea061165c565b5b602083019150836001820283011115610ebd57610ebc611670565b5b9250929050565b600081359050610ed3816118aa565b92915050565b600060208284031215610eef57610eee61167a565b5b6000610efd84828501610e59565b91505092915050565b60008060408385031215610f1d57610f1c61167a565b5b6000610f2b85828601610e59565b9250506020610f3c85828601610e59565b9150509250929050565b600080600060608486031215610f5f57610f5e61167a565b5b6000610f6d86828701610e59565b9350506020610f7e86828701610e59565b9250506040610f8f86828701610ec4565b9150509250925092565b60008060408385031215610fb057610faf61167a565b5b6000610fbe85828601610e59565b9250506020610fcf85828601610ec4565b9150509250929050565b600080600060408486031215610ff257610ff161167a565b5b600084013567ffffffffffffffff8111156110105761100f611675565b5b61101c86828701610e6e565b9350935050602061102f86828701610ec4565b9150509250925092565b600080600080606085870312156110535761105261167a565b5b600085013567ffffffffffffffff81111561107157611070611675565b5b61107d87828801610e6e565b9450945050602061109087828801610ec4565b92505060406110a187828801610ec4565b91505092959194509250565b6000602082840312156110c3576110c261167a565b5b60006110d184828501610ec4565b91505092915050565b6110e381611523565b82525050565b6110f281611535565b82525050565b60006111048385611470565b935061111183858461158a565b61111a8361167f565b840190509392505050565b61112e81611578565b82525050565b600061113f82611465565b6111498185611481565b9350611159818560208601611599565b6111628161167f565b840191505092915050565b600061117a602383611481565b915061118582611690565b604082019050919050565b600061119d602283611481565b91506111a8826116df565b604082019050919050565b60006111c0601d83611481565b91506111cb8261172e565b602082019050919050565b60006111e3602683611481565b91506111ee82611757565b604082019050919050565b6000611206602583611481565b9150611211826117a6565b604082019050919050565b6000611229602483611481565b9150611234826117f5565b604082019050919050565b600061124c602583611481565b915061125782611844565b604082019050919050565b61126b81611561565b82525050565b61127a8161156b565b82525050565b600060208201905061129560008301846110da565b92915050565b60006040820190506112b060008301856110da565b6112bd6020830184611262565b9392505050565b60006020820190506112d960008301846110e9565b92915050565b600060808201905081810360008301526112fa8187896110f8565b90506113096020830186611262565b6113166040830185611262565b6113236060830184611125565b9695505050505050565b600060208201905081810360008301526113478184611134565b905092915050565b600060208201905081810360008301526113688161116d565b9050919050565b6000602082019050818103600083015261138881611190565b9050919050565b600060208201905081810360008301526113a8816111b3565b9050919050565b600060208201905081810360008301526113c8816111d6565b9050919050565b600060208201905081810360008301526113e8816111f9565b9050919050565b600060208201905081810360008301526114088161121c565b9050919050565b600060208201905081810360008301526114288161123f565b9050919050565b60006020820190506114446000830184611262565b92915050565b600060208201905061145f6000830184611271565b92915050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600080858511156114a6576114a561166b565b5b838611156114b7576114b6611666565b5b6001850283019150848603905094509492505050565b60006114d882611561565b91506114e383611561565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611518576115176115fe565b5b828201905092915050565b600061152e82611541565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061158382611561565b9050919050565b82818337600083830152505050565b60005b838110156115b757808201518184015260208101905061159c565b838111156115c6576000848401525b50505050565b600060028204905060018216806115e457607f821691505b602082108114156115f8576115f761162d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61189c81611523565b81146118a757600080fd5b50565b6118b381611561565b81146118be57600080fd5b5056fea2646970667358221220b107e48b8ffbaf954ce9efa3113e9a56d401f9cfcf6393264f615a1b0807f1d564736f6c63430008070033"; + "0x60806040523480156200001157600080fd5b5060405162002248380380620022488339818101604052810190620000379190620003bc565b818181600390805190602001906200005192919062000277565b5080600490805190602001906200006a92919062000277565b505050620000ac3362000082620000f660201b60201c565b60ff16600a620000939190620005f5565b85620000a0919062000732565b620000ff60201b60201c565b30600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505062000941565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000172576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000169906200048e565b60405180910390fd5b62000186600083836200026d60201b60201c565b80600260008282546200019a91906200053d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200024d9190620004b0565b60405180910390a362000269600083836200027260201b60201c565b5050565b505050565b505050565b8280546200028590620007d3565b90600052602060002090601f016020900481019282620002a95760008555620002f5565b82601f10620002c457805160ff1916838001178555620002f5565b82800160010185558215620002f5579182015b82811115620002f4578251825591602001919060010190620002d7565b5b50905062000304919062000308565b5090565b5b808211156200032357600081600090555060010162000309565b5090565b60006200033e6200033884620004f6565b620004cd565b9050828152602081018484840111156200035d576200035c620008d1565b5b6200036a8482856200079d565b509392505050565b600082601f8301126200038a5762000389620008cc565b5b81516200039c84826020860162000327565b91505092915050565b600081519050620003b68162000927565b92915050565b600080600060608486031215620003d857620003d7620008db565b5b6000620003e886828701620003a5565b935050602084015167ffffffffffffffff8111156200040c576200040b620008d6565b5b6200041a8682870162000372565b925050604084015167ffffffffffffffff8111156200043e576200043d620008d6565b5b6200044c8682870162000372565b9150509250925092565b600062000465601f836200052c565b91506200047282620008fe565b602082019050919050565b620004888162000793565b82525050565b60006020820190508181036000830152620004a98162000456565b9050919050565b6000602082019050620004c760008301846200047d565b92915050565b6000620004d9620004ec565b9050620004e7828262000809565b919050565b6000604051905090565b600067ffffffffffffffff8211156200051457620005136200089d565b5b6200051f82620008e0565b9050602081019050919050565b600082825260208201905092915050565b60006200054a8262000793565b9150620005578362000793565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200058f576200058e6200083f565b5b828201905092915050565b6000808291508390505b6001851115620005ec57808604811115620005c457620005c36200083f565b5b6001851615620005d45780820291505b8081029050620005e485620008f1565b9450620005a4565b94509492505050565b6000620006028262000793565b91506200060f8362000793565b92506200063e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000646565b905092915050565b6000826200065857600190506200072b565b816200066857600090506200072b565b81600181146200068157600281146200068c57620006c2565b60019150506200072b565b60ff841115620006a157620006a06200083f565b5b8360020a915084821115620006bb57620006ba6200083f565b5b506200072b565b5060208310610133831016604e8410600b8410161715620006fc5782820a905083811115620006f657620006f56200083f565b5b6200072b565b6200070b84848460016200059a565b925090508184048111156200072557620007246200083f565b5b81810290505b9392505050565b60006200073f8262000793565b91506200074c8362000793565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200078857620007876200083f565b5b828202905092915050565b6000819050919050565b60005b83811015620007bd578082015181840152602081019050620007a0565b83811115620007cd576000848401525b50505050565b60006002820490506001821680620007ec57607f821691505b602082108114156200080357620008026200086e565b5b50919050565b6200081482620008e0565b810181811067ffffffffffffffff821117156200083657620008356200089d565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b620009328162000793565b81146200093e57600080fd5b50565b6118f780620009516000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063658612e9116100ad578063a9059cbb11610071578063a9059cbb14610344578063c701262614610374578063d9eeebed146103a4578063dd62ed3e146103c3578063f7d8f616146103f357610121565b8063658612e91461028c578063678edca3146102aa57806370a08231146102c657806395d89b41146102f6578063a457c2d71461031457610121565b80632c27d3ab116100f45780632c27d3ab146101c2578063313ce567146101f257806339509351146102105780633e8a4ee11461024057806347e7ef241461025c57610121565b806306fdde0314610126578063095ea7b31461014457806318160ddd1461017457806323b872dd14610192575b600080fd5b61012e610411565b60405161013b919061132d565b60405180910390f35b61015e60048036038101906101599190610f99565b6104a3565b60405161016b91906112c4565b60405180910390f35b61017c6104c6565b604051610189919061142f565b60405180910390f35b6101ac60048036038101906101a79190610f46565b6104d0565b6040516101b991906112c4565b60405180910390f35b6101dc60048036038101906101d79190611039565b6104ff565b6040516101e99190611280565b60405180910390f35b6101fa610573565b604051610207919061144a565b60405180910390f35b61022a60048036038101906102259190610f99565b61057c565b60405161023791906112c4565b60405180910390f35b61025a60048036038101906102559190610ed9565b6105b3565b005b61027660048036038101906102719190610f99565b6105f7565b60405161028391906112c4565b60405180910390f35b610294610603565b6040516102a1919061142f565b60405180910390f35b6102c460048036038101906102bf91906110ad565b610609565b005b6102e060048036038101906102db9190610ed9565b610613565b6040516102ed919061142f565b60405180910390f35b6102fe61065b565b60405161030b919061132d565b60405180910390f35b61032e60048036038101906103299190610f99565b6106ed565b60405161033b91906112c4565b60405180910390f35b61035e60048036038101906103599190610f99565b610764565b60405161036b91906112c4565b60405180910390f35b61038e60048036038101906103899190610fd9565b610787565b60405161039b91906112c4565b60405180910390f35b6103ac610825565b6040516103ba92919061129b565b60405180910390f35b6103dd60048036038101906103d89190610f06565b610856565b6040516103ea919061142f565b60405180910390f35b6103fb6108dd565b6040516104089190611280565b60405180910390f35b606060038054610420906115cc565b80601f016020809104026020016040519081016040528092919081815260200182805461044c906115cc565b80156104995780601f1061046e57610100808354040283529160200191610499565b820191906000526020600020905b81548152906001019060200180831161047c57829003601f168201915b5050505050905090565b6000806104ae610903565b90506104bb81858561090b565b600191505092915050565b6000600254905090565b6000806104db610903565b90506104e8858285610ad6565b6104f3858585610b62565b60019150509392505050565b60008085858590858761051291906114cd565b9261051f93929190611492565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905082810151915050949350505050565b60006012905090565b600080610587610903565b90506105a88185856105998589610856565b6105a391906114cd565b61090b565b600191505092915050565b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006001905092915050565b60065481565b8060068190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461066a906115cc565b80601f0160208091040260200160405190810160405280929190818152602001828054610696906115cc565b80156106e35780601f106106b8576101008083540402835291602001916106e3565b820191906000526020600020905b8154815290600101906020018083116106c657829003601f168201915b5050505050905090565b6000806106f8610903565b905060006107068286610856565b90508381101561074b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107429061140f565b60405180910390fd5b610758828686840361090b565b60019250505092915050565b60008061076f610903565b905061077c818585610b62565b600191505092915050565b60008060208585905010156107a9576107a285856000610dda565b90506107b8565b6107b58585600c610dda565b90505b3373ffffffffffffffffffffffffffffffffffffffff167f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d95586868660065460006040516108099594939291906112df565b60405180910390a261081b8184610764565b9150509392505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600654915091509091565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561097b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610972906113ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e29061136f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ac9919061142f565b60405180910390a3505050565b6000610ae28484610856565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b5c5781811015610b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b459061138f565b60405180910390fd5b610b5b848484840361090b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc9906113cf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c399061134f565b60405180910390fd5b610c4d838383610e4f565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cca906113af565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dc1919061142f565b60405180910390a3610dd4848484610e54565b50505050565b60008084848490601486610dee91906114cd565b92610dfb93929190611492565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060148101519150509392505050565b505050565b505050565b600081359050610e6881611893565b92915050565b60008083601f840112610e8457610e83611661565b5b8235905067ffffffffffffffff811115610ea157610ea061165c565b5b602083019150836001820283011115610ebd57610ebc611670565b5b9250929050565b600081359050610ed3816118aa565b92915050565b600060208284031215610eef57610eee61167a565b5b6000610efd84828501610e59565b91505092915050565b60008060408385031215610f1d57610f1c61167a565b5b6000610f2b85828601610e59565b9250506020610f3c85828601610e59565b9150509250929050565b600080600060608486031215610f5f57610f5e61167a565b5b6000610f6d86828701610e59565b9350506020610f7e86828701610e59565b9250506040610f8f86828701610ec4565b9150509250925092565b60008060408385031215610fb057610faf61167a565b5b6000610fbe85828601610e59565b9250506020610fcf85828601610ec4565b9150509250929050565b600080600060408486031215610ff257610ff161167a565b5b600084013567ffffffffffffffff8111156110105761100f611675565b5b61101c86828701610e6e565b9350935050602061102f86828701610ec4565b9150509250925092565b600080600080606085870312156110535761105261167a565b5b600085013567ffffffffffffffff81111561107157611070611675565b5b61107d87828801610e6e565b9450945050602061109087828801610ec4565b92505060406110a187828801610ec4565b91505092959194509250565b6000602082840312156110c3576110c261167a565b5b60006110d184828501610ec4565b91505092915050565b6110e381611523565b82525050565b6110f281611535565b82525050565b60006111048385611470565b935061111183858461158a565b61111a8361167f565b840190509392505050565b61112e81611578565b82525050565b600061113f82611465565b6111498185611481565b9350611159818560208601611599565b6111628161167f565b840191505092915050565b600061117a602383611481565b915061118582611690565b604082019050919050565b600061119d602283611481565b91506111a8826116df565b604082019050919050565b60006111c0601d83611481565b91506111cb8261172e565b602082019050919050565b60006111e3602683611481565b91506111ee82611757565b604082019050919050565b6000611206602583611481565b9150611211826117a6565b604082019050919050565b6000611229602483611481565b9150611234826117f5565b604082019050919050565b600061124c602583611481565b915061125782611844565b604082019050919050565b61126b81611561565b82525050565b61127a8161156b565b82525050565b600060208201905061129560008301846110da565b92915050565b60006040820190506112b060008301856110da565b6112bd6020830184611262565b9392505050565b60006020820190506112d960008301846110e9565b92915050565b600060808201905081810360008301526112fa8187896110f8565b90506113096020830186611262565b6113166040830185611262565b6113236060830184611125565b9695505050505050565b600060208201905081810360008301526113478184611134565b905092915050565b600060208201905081810360008301526113688161116d565b9050919050565b6000602082019050818103600083015261138881611190565b9050919050565b600060208201905081810360008301526113a8816111b3565b9050919050565b600060208201905081810360008301526113c8816111d6565b9050919050565b600060208201905081810360008301526113e8816111f9565b9050919050565b600060208201905081810360008301526114088161121c565b9050919050565b600060208201905081810360008301526114288161123f565b9050919050565b60006020820190506114446000830184611262565b92915050565b600060208201905061145f6000830184611271565b92915050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600080858511156114a6576114a561166b565b5b838611156114b7576114b6611666565b5b6001850283019150848603905094509492505050565b60006114d882611561565b91506114e383611561565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611518576115176115fe565b5b828201905092915050565b600061152e82611541565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061158382611561565b9050919050565b82818337600083830152505050565b60005b838110156115b757808201518184015260208101905061159c565b838111156115c6576000848401525b50505050565b600060028204905060018216806115e457607f821691505b602082108114156115f8576115f761162d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61189c81611523565b81146118a757600080fd5b50565b6118b381611561565b81146118be57600080fd5b5056fea2646970667358221220ff86e5e6a4a4fb66ba7dcf0d66a03f5000b514a26aeae55a183da3e524913cc564736f6c63430008070033"; type MockZRC20ConstructorParams = | [signer?: Signer] diff --git a/typechain-types/hardhat.d.ts b/typechain-types/hardhat.d.ts index ef3133fa..b35a9552 100644 --- a/typechain-types/hardhat.d.ts +++ b/typechain-types/hardhat.d.ts @@ -108,6 +108,10 @@ declare module "hardhat/types/runtime" { name: "SystemContractErrors", signerOrOptions?: ethers.Signer | FactoryOptions ): Promise; + getContractFactory( + name: "BytesHelperLib", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; getContractFactory( name: "ZetaEthMock", signerOrOptions?: ethers.Signer | FactoryOptions @@ -289,6 +293,11 @@ declare module "hardhat/types/runtime" { address: string, signer?: ethers.Signer ): Promise; + getContractAt( + name: "BytesHelperLib", + address: string, + signer?: ethers.Signer + ): Promise; getContractAt( name: "ZetaEthMock", address: string, diff --git a/typechain-types/index.ts b/typechain-types/index.ts index 19ec0989..08dfa371 100644 --- a/typechain-types/index.ts +++ b/typechain-types/index.ts @@ -54,6 +54,8 @@ export type { SystemContract } from "./@zetachain/protocol-contracts/contracts/z export { SystemContract__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContract__factory"; export type { SystemContractErrors } from "./@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors"; export { SystemContractErrors__factory } from "./factories/@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol/SystemContractErrors__factory"; +export type { BytesHelperLib } from "./contracts/BytesHelperLib"; +export { BytesHelperLib__factory } from "./factories/contracts/BytesHelperLib__factory"; export type { ZetaEthMock } from "./contracts/EthZetaMock.sol/ZetaEthMock"; export { ZetaEthMock__factory } from "./factories/contracts/EthZetaMock.sol/ZetaEthMock__factory"; export type { OnlySystem } from "./contracts/OnlySystem";