UNPKG

@layerzerolabs/oft-alt-evm

Version:

LayerZero Labs reference EVM OmniChain Fungible Token (OFT) implementation

1 lines 46 kB
{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"decimals_","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506111838061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106100da575f3560e01c80633644e5151161008857806395d89b411161006357806395d89b41146101ca578063a9059cbb146101d2578063d505accf146101e5578063dd62ed3e146101f8575f80fd5b80633644e5151461016e57806370a08231146101765780637ecebe00146101ab575f80fd5b806318160ddd116100b857806318160ddd1461013457806323b872dd14610146578063313ce56714610159575f80fd5b806306fdde03146100de578063095ea7b3146100fc5780631624f6c61461011f575b5f80fd5b6100e661023d565b6040516100f39190610b85565b60405180910390f35b61010f61010a366004610c17565b6102cc565b60405190151581526020016100f3565b61013261012d366004610d23565b610345565b005b6003545b6040519081526020016100f3565b61010f610154366004610d92565b610443565b60025460405160ff90911681526020016100f3565b6101386105b2565b610138610184366004610dcb565b73ffffffffffffffffffffffffffffffffffffffff165f9081526004602052604090205490565b6101386101b9366004610dcb565b60086020525f908152604090205481565b6100e66105d7565b61010f6101e0366004610c17565b6105e6565b6101326101f3366004610de4565b610694565b610138610206366004610e49565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260056020908152604080832093909416825291909152205490565b60605f805461024b90610e7a565b80601f016020809104026020016040519081016040528092919081815260200182805461027790610e7a565b80156102c25780601f10610299576101008083540402835291602001916102c2565b820191905f5260205f20905b8154815290600101906020018083116102a557829003601f168201915b5050505050905090565b335f81815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103339086815260200190565b60405180910390a35060015b92915050565b60095460ff16156103b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f414c52454144595f494e495449414c495a45440000000000000000000000000060448201526064015b60405180910390fd5b5f6103c28482610f17565b5060016103cf8382610f17565b50600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff83161790556104056109d4565b6006556104106109ec565b6007555050600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526005602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146104d5576104a48184610a8d565b73ffffffffffffffffffffffffffffffffffffffff86165f9081526005602090815260408083203384529091529020555b73ffffffffffffffffffffffffffffffffffffffff85165f908152600460205260409020546105049084610a8d565b73ffffffffffffffffffffffffffffffffffffffff8087165f90815260046020526040808220939093559086168152205461053f9084610b09565b73ffffffffffffffffffffffffffffffffffffffff8086165f8181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061059f9087815260200190565b60405180910390a3506001949350505050565b5f6006546105be6109d4565b146105d0576105cb6109ec565b905090565b5060075490565b60606001805461024b90610e7a565b335f908152600460205260408120546105ff9083610a8d565b335f908152600460205260408082209290925573ffffffffffffffffffffffffffffffffffffffff8516815220546106379083610b09565b73ffffffffffffffffffffffffffffffffffffffff84165f818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103339086815260200190565b428410156106fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064016103ae565b5f60016107096105b2565b73ffffffffffffffffffffffffffffffffffffffff8a165f90815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061076383611060565b9091555060408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016108049291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa15801561087d573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906108f857508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61095e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f494e56414c49445f5349474e455200000000000000000000000000000000000060448201526064016103ae565b73ffffffffffffffffffffffffffffffffffffffff8181165f9081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b5f610b81806109e563ffffffff8216565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f604051610a1c9190611097565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6610a4d6109d4565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f81831015610af8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f770000000060448201526064016103ae565b610b028284611127565b9392505050565b5f80610b15838561113a565b905083811015610b02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f77000000000000000060448201526064016103ae565b4690565b5f602080835283518060208501525f5b81811015610bb157858101830151858201604001528201610b95565b505f6040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c12575f80fd5b919050565b5f8060408385031215610c28575f80fd5b610c3183610bef565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112610c7b575f80fd5b813567ffffffffffffffff80821115610c9657610c96610c3f565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610cdc57610cdc610c3f565b81604052838152866020858801011115610cf4575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff81168114610c12575f80fd5b5f805f60608486031215610d35575f80fd5b833567ffffffffffffffff80821115610d4c575f80fd5b610d5887838801610c6c565b94506020860135915080821115610d6d575f80fd5b50610d7a86828701610c6c565b925050610d8960408501610d13565b90509250925092565b5f805f60608486031215610da4575f80fd5b610dad84610bef565b9250610dbb60208501610bef565b9150604084013590509250925092565b5f60208284031215610ddb575f80fd5b610b0282610bef565b5f805f805f805f60e0888a031215610dfa575f80fd5b610e0388610bef565b9650610e1160208901610bef565b95506040880135945060608801359350610e2d60808901610d13565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215610e5a575f80fd5b610e6383610bef565b9150610e7160208401610bef565b90509250929050565b600181811c90821680610e8e57607f821691505b602082108103610ec5577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610f1257805f5260205f20601f840160051c81016020851015610ef05750805b601f840160051c820191505b81811015610f0f575f8155600101610efc565b50505b505050565b815167ffffffffffffffff811115610f3157610f31610c3f565b610f4581610f3f8454610e7a565b84610ecb565b602080601f831160018114610f97575f8415610f615750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561102b565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015610fe357888601518255948401946001909101908401610fc4565b508582101561101f57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361109057611090611033565b5060010190565b5f8083546110a481610e7a565b600182811680156110bc57600181146110ef5761111b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008416875282151583028701945061111b565b875f526020805f205f5b858110156111125781548a8201529084019082016110f9565b50505082870194505b50929695505050505050565b8181038181111561033f5761033f611033565b8082018082111561033f5761033f61103356fea264697066735822122068400e14a67daf5ae0d6b0152a9c4adf369297ccb692ae1e80746b6ed0670fb564736f6c63430008160033","sourceMap":"369:7950:110:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100da575f3560e01c80633644e5151161008857806395d89b411161006357806395d89b41146101ca578063a9059cbb146101d2578063d505accf146101e5578063dd62ed3e146101f8575f80fd5b80633644e5151461016e57806370a08231146101765780637ecebe00146101ab575f80fd5b806318160ddd116100b857806318160ddd1461013457806323b872dd14610146578063313ce56714610159575f80fd5b806306fdde03146100de578063095ea7b3146100fc5780631624f6c61461011f575b5f80fd5b6100e661023d565b6040516100f39190610b85565b60405180910390f35b61010f61010a366004610c17565b6102cc565b60405190151581526020016100f3565b61013261012d366004610d23565b610345565b005b6003545b6040519081526020016100f3565b61010f610154366004610d92565b610443565b60025460405160ff90911681526020016100f3565b6101386105b2565b610138610184366004610dcb565b73ffffffffffffffffffffffffffffffffffffffff165f9081526004602052604090205490565b6101386101b9366004610dcb565b60086020525f908152604090205481565b6100e66105d7565b61010f6101e0366004610c17565b6105e6565b6101326101f3366004610de4565b610694565b610138610206366004610e49565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260056020908152604080832093909416825291909152205490565b60605f805461024b90610e7a565b80601f016020809104026020016040519081016040528092919081815260200182805461027790610e7a565b80156102c25780601f10610299576101008083540402835291602001916102c2565b820191905f5260205f20905b8154815290600101906020018083116102a557829003601f168201915b5050505050905090565b335f81815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103339086815260200190565b60405180910390a35060015b92915050565b60095460ff16156103b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f414c52454144595f494e495449414c495a45440000000000000000000000000060448201526064015b60405180910390fd5b5f6103c28482610f17565b5060016103cf8382610f17565b50600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff83161790556104056109d4565b6006556104106109ec565b6007555050600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526005602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146104d5576104a48184610a8d565b73ffffffffffffffffffffffffffffffffffffffff86165f9081526005602090815260408083203384529091529020555b73ffffffffffffffffffffffffffffffffffffffff85165f908152600460205260409020546105049084610a8d565b73ffffffffffffffffffffffffffffffffffffffff8087165f90815260046020526040808220939093559086168152205461053f9084610b09565b73ffffffffffffffffffffffffffffffffffffffff8086165f8181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061059f9087815260200190565b60405180910390a3506001949350505050565b5f6006546105be6109d4565b146105d0576105cb6109ec565b905090565b5060075490565b60606001805461024b90610e7a565b335f908152600460205260408120546105ff9083610a8d565b335f908152600460205260408082209290925573ffffffffffffffffffffffffffffffffffffffff8516815220546106379083610b09565b73ffffffffffffffffffffffffffffffffffffffff84165f818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103339086815260200190565b428410156106fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064016103ae565b5f60016107096105b2565b73ffffffffffffffffffffffffffffffffffffffff8a165f90815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061076383611060565b9091555060408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016108049291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa15801561087d573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906108f857508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61095e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f494e56414c49445f5349474e455200000000000000000000000000000000000060448201526064016103ae565b73ffffffffffffffffffffffffffffffffffffffff8181165f9081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b5f610b81806109e563ffffffff8216565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f604051610a1c9190611097565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6610a4d6109d4565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f81831015610af8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f770000000060448201526064016103ae565b610b028284611127565b9392505050565b5f80610b15838561113a565b905083811015610b02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f77000000000000000060448201526064016103ae565b4690565b5f602080835283518060208501525f5b81811015610bb157858101830151858201604001528201610b95565b505f6040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c12575f80fd5b919050565b5f8060408385031215610c28575f80fd5b610c3183610bef565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112610c7b575f80fd5b813567ffffffffffffffff80821115610c9657610c96610c3f565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610cdc57610cdc610c3f565b81604052838152866020858801011115610cf4575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff81168114610c12575f80fd5b5f805f60608486031215610d35575f80fd5b833567ffffffffffffffff80821115610d4c575f80fd5b610d5887838801610c6c565b94506020860135915080821115610d6d575f80fd5b50610d7a86828701610c6c565b925050610d8960408501610d13565b90509250925092565b5f805f60608486031215610da4575f80fd5b610dad84610bef565b9250610dbb60208501610bef565b9150604084013590509250925092565b5f60208284031215610ddb575f80fd5b610b0282610bef565b5f805f805f805f60e0888a031215610dfa575f80fd5b610e0388610bef565b9650610e1160208901610bef565b95506040880135945060608801359350610e2d60808901610d13565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215610e5a575f80fd5b610e6383610bef565b9150610e7160208401610bef565b90509250929050565b600181811c90821680610e8e57607f821691505b602082108103610ec5577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f821115610f1257805f5260205f20601f840160051c81016020851015610ef05750805b601f840160051c820191505b81811015610f0f575f8155600101610efc565b50505b505050565b815167ffffffffffffffff811115610f3157610f31610c3f565b610f4581610f3f8454610e7a565b84610ecb565b602080601f831160018114610f97575f8415610f615750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561102b565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015610fe357888601518255948401946001909101908401610fc4565b508582101561101f57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361109057611090611033565b5060010190565b5f8083546110a481610e7a565b600182811680156110bc57600181146110ef5761111b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008416875282151583028701945061111b565b875f526020805f205f5b858110156111125781548a8201529084019082016110f9565b50505082870194505b50929695505050505050565b8181038181111561033f5761033f611033565b8082018082111561033f5761033f61103356fea264697066735822122068400e14a67daf5ae0d6b0152a9c4adf369297ccb692ae1e80746b6ed0670fb564736f6c63430008160033","sourceMap":"369:7950:110:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;677:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3057:221;;;;;;:::i;:::-;;:::i;:::-;;;1251:14:141;;1244:22;1226:41;;1214:2;1199:18;3057:221:110;1086:187:141;2504:365:110;;;;;;:::i;:::-;;:::i;:::-;;1322:100;1403:12;;1322:100;;;3175:25:141;;;3163:2;3148:18;1322:100:110;3029:177:141;3578:472:110;;;;;;:::i;:::-;;:::i;877:92::-;953:9;;877:92;;953:9;;;;3686:36:141;;3674:2;3659:18;877:92:110;3544:184:141;5427:178:110;;;:::i;1428:116::-;;;;;;:::i;:::-;1520:17;;1494:7;1520:17;;;:10;:17;;;;;;;1428:116;1970:41;;;;;;:::i;:::-;;;;;;;;;;;;;;775:96;;;:::i;3284:288::-;;;;;;:::i;:::-;;:::i;4239:1182::-;;;;;;:::i;:::-;;:::i;1550:142::-;;;;;;:::i;:::-;1659:17;;;;1633:7;1659:17;;;:10;:17;;;;;;;;:26;;;;;;;;;;;;;1550:142;677:92;725:13;757:5;750:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;677:92;:::o;3057:221::-;3167:10;3140:4;3156:22;;;:10;:22;;;;;;;;;:31;;;;;;;;;;:40;;;3212:37;3140:4;;3156:31;;3212:37;;;;3190:6;3175:25:141;;3163:2;3148:18;;3029:177;3212:37:110;;;;;;;;-1:-1:-1;3267:4:110;3057:221;;;;;:::o;2504:365::-;2611:11;;;;2610:12;2602:44;;;;;;;5626:2:141;2602:44:110;;;5608:21:141;5665:2;5645:18;;;5638:30;5704:21;5684:18;;;5677:49;5743:18;;2602:44:110;;;;;;;;;2657:5;:13;2665:5;2657;:13;:::i;:::-;-1:-1:-1;2680:7:110;:17;2690:7;2680;:17;:::i;:::-;-1:-1:-1;2707:9:110;:21;;;;;;;;;;2758:14;:12;:14::i;:::-;2739:16;:33;2809:24;:22;:24::i;:::-;2782;:51;-1:-1:-1;;2844:11:110;:18;;;;2858:4;2844:18;;;-1:-1:-1;2504:365:110:o;3578:472::-;3709:16;;;3675:4;3709:16;;;:10;:16;;;;;;;;3726:10;3709:28;;;;;;;;3799:11;3788:22;;3784:80;;3843:21;3848:7;3857:6;3843:4;:21::i;:::-;3812:16;;;;;;;:10;:16;;;;;;;;3829:10;3812:28;;;;;;;:52;3784:80;3899:16;;;;;;;:10;:16;;;;;;3894:30;;3917:6;3894:4;:30::i;:::-;3875:16;;;;;;;;:10;:16;;;;;;:49;;;;3956:14;;;;;;;3951:28;;3972:6;3951:4;:28::i;:::-;3934:14;;;;;;;;:10;:14;;;;;;;:45;;;;3995:26;;;;;;;;;;4014:6;3175:25:141;;3163:2;3148:18;;3029:177;3995:26:110;;;;;;;;-1:-1:-1;4039:4:110;;3578:472;-1:-1:-1;;;;3578:472:110:o;5427:178::-;5484:7;5528:16;;5510:14;:12;:14::i;:::-;:34;:88;;5574:24;:22;:24::i;:::-;5503:95;;5427:178;:::o;5510:88::-;-1:-1:-1;5547:24:110;;;5427:178::o;775:96::-;825:13;857:7;850:14;;;;;:::i;3284:288::-;3420:10;3363:4;3409:22;;;:10;:22;;;;;;3404:36;;3433:6;3404:4;:36::i;:::-;3390:10;3379:22;;;;:10;:22;;;;;;:61;;;;:22;3472:14;;;;;;3467:28;;3488:6;3467:4;:28::i;:::-;3450:14;;;;;;;:10;:14;;;;;;;:45;;;;3511:32;;3520:10;;3511:32;;;;3536:6;3175:25:141;;3163:2;3148:18;;3029:177;4239:1182:110;4416:15;4404:8;:27;;4396:63;;;;;;;8323:2:141;4396:63:110;;;8305:21:141;8362:2;8342:18;;;8335:30;8401:25;8381:18;;;8374:53;8444:18;;4396:63:110;8121:347:141;4396:63:110;4470:24;4497:717;4617:18;:16;:18::i;:::-;5026:13;;;;;;;:6;:13;;;;;:15;;4732:157;;4919:5;;4954:7;;4991:5;;5026:15;;:13;:15;;;:::i;:::-;;;;-1:-1:-1;4692:413:110;;;;;;9149:25:141;;;;9193:42;9271:15;;;9251:18;;;9244:43;9323:15;;;;9303:18;;;9296:43;9355:18;;;9348:34;9398:19;;;9391:35;9442:19;;;9435:35;;;9121:19;;4692:413:110;;;;;;;;;;;;4657:470;;;;;;4547:598;;;;;;;;9751:66:141;9739:79;;9843:1;9834:11;;9827:27;;;;9879:2;9870:12;;9863:28;9916:2;9907:12;;9481:444;4547:598:110;;;;;;;;;;;;;;4520:639;;4547:598;4520:639;;;;4497:717;;;;;;;;;10157:25:141;10230:4;10218:17;;10198:18;;;10191:45;10252:18;;;10245:34;;;10295:18;;;10288:34;;;10129:19;;4497:717:110;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4497:717:110;;;;;;-1:-1:-1;;5233:30:110;;;;;;;:59;;;5287:5;5267:25;;:16;:25;;;5233:59;5225:86;;;;;;;10535:2:141;5225:86:110;;;10517:21:141;10574:2;10554:18;;;10547:30;10613:16;10593:18;;;10586:44;10647:18;;5225:86:110;10333:338:141;5225:86:110;5322:28;;;;;;;;:10;:28;;;;;;;;:37;;;;;;;;;;;;;:45;;;5383:31;3175:25:141;;;5322:37:110;;5383:31;;;;;3148:18:141;5383:31:110;;;;;;;4386:1035;4239:1182;;;;;;;:::o;8017:300::-;8063:15;8140:12;;8297:13;;;;:::i;:::-;8287:23;;8080:237;;8017:300;:::o;5611:404::-;5676:7;5753:95;5882:5;5866:23;;;;;;:::i;:::-;;;;;;;;5907:14;5939;:12;:14::i;:::-;5725:273;;;;;;11843:25:141;;;;11884:18;;11877:34;;;;11927:18;;;11920:34;11970:18;;;11963:34;5979:4:110;12013:19:141;;;12006:84;11815:19;;5725:273:110;;;;;;;;;;;;5702:306;;;;;;5695:313;;5611:404;:::o;7038:154::-;7097:7;7129:1;7124;:6;;7116:47;;;;;;;12303:2:141;7116:47:110;;;12285:21:141;12342:2;12322:18;;;12315:30;12381;12361:18;;;12354:58;12429:18;;7116:47:110;12101:352:141;7116:47:110;7180:5;7184:1;7180;:5;:::i;:::-;7173:12;7038:154;-1:-1:-1;;;7038:154:110:o;6859:173::-;6918:7;;6949:5;6953:1;6949;:5;:::i;:::-;6937:17;;6977:1;6972;:6;;6964:43;;;;;;;12923:2:141;6964:43:110;;;12905:21:141;12962:2;12942:18;;;12935:30;13001:26;12981:18;;;12974:54;13045:18;;6964:43:110;12721:348:141;7735:276:110;7918:9;;7735:276::o;14:607:141:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;612:2;542:66;537:2;529:6;525:15;521:88;510:9;506:104;502:113;494:121;;;;14:607;;;;:::o;626:196::-;694:20;;754:42;743:54;;733:65;;723:93;;812:1;809;802:12;723:93;626:196;;;:::o;827:254::-;895:6;903;956:2;944:9;935:7;931:23;927:32;924:52;;;972:1;969;962:12;924:52;995:29;1014:9;995:29;:::i;:::-;985:39;1071:2;1056:18;;;;1043:32;;-1:-1:-1;;;827:254:141:o;1278:184::-;1330:77;1327:1;1320:88;1427:4;1424:1;1417:15;1451:4;1448:1;1441:15;1467:778;1510:5;1563:3;1556:4;1548:6;1544:17;1540:27;1530:55;;1581:1;1578;1571:12;1530:55;1617:6;1604:20;1643:18;1680:2;1676;1673:10;1670:36;;;1686:18;;:::i;:::-;1820:2;1814:9;1882:4;1874:13;;1725:66;1870:22;;;1894:2;1866:31;1862:40;1850:53;;;1918:18;;;1938:22;;;1915:46;1912:72;;;1964:18;;:::i;:::-;2004:10;2000:2;1993:22;2039:2;2031:6;2024:18;2085:3;2078:4;2073:2;2065:6;2061:15;2057:26;2054:35;2051:55;;;2102:1;2099;2092:12;2051:55;2166:2;2159:4;2151:6;2147:17;2140:4;2132:6;2128:17;2115:54;2213:1;2206:4;2201:2;2193:6;2189:15;2185:26;2178:37;2233:6;2224:15;;;;;;1467:778;;;;:::o;2250:156::-;2316:20;;2376:4;2365:16;;2355:27;;2345:55;;2396:1;2393;2386:12;2411:613;2506:6;2514;2522;2575:2;2563:9;2554:7;2550:23;2546:32;2543:52;;;2591:1;2588;2581:12;2543:52;2631:9;2618:23;2660:18;2701:2;2693:6;2690:14;2687:34;;;2717:1;2714;2707:12;2687:34;2740:50;2782:7;2773:6;2762:9;2758:22;2740:50;:::i;:::-;2730:60;;2843:2;2832:9;2828:18;2815:32;2799:48;;2872:2;2862:8;2859:16;2856:36;;;2888:1;2885;2878:12;2856:36;;2911:52;2955:7;2944:8;2933:9;2929:24;2911:52;:::i;:::-;2901:62;;;2982:36;3014:2;3003:9;2999:18;2982:36;:::i;:::-;2972:46;;2411:613;;;;;:::o;3211:328::-;3288:6;3296;3304;3357:2;3345:9;3336:7;3332:23;3328:32;3325:52;;;3373:1;3370;3363:12;3325:52;3396:29;3415:9;3396:29;:::i;:::-;3386:39;;3444:38;3478:2;3467:9;3463:18;3444:38;:::i;:::-;3434:48;;3529:2;3518:9;3514:18;3501:32;3491:42;;3211:328;;;;;:::o;3915:186::-;3974:6;4027:2;4015:9;4006:7;4002:23;3998:32;3995:52;;;4043:1;4040;4033:12;3995:52;4066:29;4085:9;4066:29;:::i;4106:606::-;4217:6;4225;4233;4241;4249;4257;4265;4318:3;4306:9;4297:7;4293:23;4289:33;4286:53;;;4335:1;4332;4325:12;4286:53;4358:29;4377:9;4358:29;:::i;:::-;4348:39;;4406:38;4440:2;4429:9;4425:18;4406:38;:::i;:::-;4396:48;;4491:2;4480:9;4476:18;4463:32;4453:42;;4542:2;4531:9;4527:18;4514:32;4504:42;;4565:37;4597:3;4586:9;4582:19;4565:37;:::i;:::-;4555:47;;4649:3;4638:9;4634:19;4621:33;4611:43;;4701:3;4690:9;4686:19;4673:33;4663:43;;4106:606;;;;;;;;;;:::o;4717:260::-;4785:6;4793;4846:2;4834:9;4825:7;4821:23;4817:32;4814:52;;;4862:1;4859;4852:12;4814:52;4885:29;4904:9;4885:29;:::i;:::-;4875:39;;4933:38;4967:2;4956:9;4952:18;4933:38;:::i;:::-;4923:48;;4717:260;;;;;:::o;4982:437::-;5061:1;5057:12;;;;5104;;;5125:61;;5179:4;5171:6;5167:17;5157:27;;5125:61;5232:2;5224:6;5221:14;5201:18;5198:38;5195:218;;5269:77;5266:1;5259:88;5370:4;5367:1;5360:15;5398:4;5395:1;5388:15;5195:218;;4982:437;;;:::o;5898:518::-;6000:2;5995:3;5992:11;5989:421;;;6036:5;6033:1;6026:16;6080:4;6077:1;6067:18;6150:2;6138:10;6134:19;6131:1;6127:27;6121:4;6117:38;6186:4;6174:10;6171:20;6168:47;;;-1:-1:-1;6209:4:141;6168:47;6264:2;6259:3;6255:12;6252:1;6248:20;6242:4;6238:31;6228:41;;6319:81;6337:2;6330:5;6327:13;6319:81;;;6396:1;6382:16;;6363:1;6352:13;6319:81;;;6323:3;;5989:421;5898:518;;;:::o;6652:1464::-;6778:3;6772:10;6805:18;6797:6;6794:30;6791:56;;;6827:18;;:::i;:::-;6856:97;6946:6;6906:38;6938:4;6932:11;6906:38;:::i;:::-;6900:4;6856:97;:::i;:::-;7008:4;;7065:2;7054:14;;7082:1;7077:782;;;;7903:1;7920:6;7917:89;;;-1:-1:-1;7972:19:141;;;7966:26;7917:89;6558:66;6549:1;6545:11;;;6541:84;6537:89;6527:100;6633:1;6629:11;;;6524:117;8019:81;;7047:1063;;7077:782;5845:1;5838:14;;;5882:4;5869:18;;7125:66;7113:79;;;7290:236;7304:7;7301:1;7298:14;7290:236;;;7393:19;;;7387:26;7372:42;;7485:27;;;;7453:1;7441:14;;;;7320:19;;7290:236;;;7294:3;7554:6;7545:7;7542:19;7539:261;;;7615:19;;;7609:26;7716:66;7698:1;7694:14;;;7710:3;7690:24;7686:97;7682:102;7667:118;7652:134;;7539:261;;;7846:1;7837:6;7834:1;7830:14;7826:22;7820:4;7813:36;7047:1063;;;;;6652:1464;;:::o;8473:184::-;8525:77;8522:1;8515:88;8622:4;8619:1;8612:15;8646:4;8643:1;8636:15;8662:195;8701:3;8732:66;8725:5;8722:77;8719:103;;8802:18;;:::i;:::-;-1:-1:-1;8849:1:141;8838:13;;8662:195::o;10676:903::-;10806:3;10835:1;10868:6;10862:13;10898:36;10924:9;10898:36;:::i;:::-;10953:1;10970:17;;;10996:191;;;;11201:1;11196:358;;;;10963:591;;10996:191;11044:66;11033:9;11029:82;11024:3;11017:95;11167:6;11160:14;11153:22;11145:6;11141:35;11136:3;11132:45;11125:52;;10996:191;;11196:358;11227:6;11224:1;11217:17;11257:4;11302;11299:1;11289:18;11329:1;11343:165;11357:6;11354:1;11351:13;11343:165;;;11435:14;;11422:11;;;11415:35;11478:16;;;;11372:10;;11343:165;;;11347:3;;;11537:6;11532:3;11528:16;11521:23;;10963:591;-1:-1:-1;11570:3:141;;10676:903;-1:-1:-1;;;;;;10676:903:141:o;12458:128::-;12525:9;;;12546:11;;;12543:37;;;12560:18;;:::i;12591:125::-;12656:9;;;12677:10;;;12674:36;;;12690:18;;:::i","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","initialize(string,string,uint8)":"1624f6c6","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC20.sol\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set, where `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\"},\"initialize(string,string,uint8)\":{\"details\":\"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once.\"}},\"stateVariables\":{\"initialized\":{\"details\":\"A bool to track whether the contract has been initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`\"},\"approve(address,uint256)\":{\"notice\":\"Sets `amount` as the allowance of `spender` over the caller's tokens.\"},\"decimals()\":{\"notice\":\"Returns the decimals places of the token.\"},\"name()\":{\"notice\":\"Returns the name of the token.\"},\"symbol()\":{\"notice\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"notice\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"notice\":\"Moves `amount` tokens from the caller's account to `to`.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance.\"}},\"notice\":\"This is a mock contract of the ERC20 standard for testing purposes only, it SHOULD NOT be used in production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/mocks/MockERC20.sol\":\"MockERC20\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/\"]},\"sources\":{\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729"},"initialize(string,string,uint8)":{"details":"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once."}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`"},"approve(address,uint256)":{"notice":"Sets `amount` as the allowance of `spender` over the caller's tokens."},"decimals()":{"notice":"Returns the decimals places of the token."},"name()":{"notice":"Returns the name of the token."},"symbol()":{"notice":"Returns the symbol of the token."},"totalSupply()":{"notice":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"notice":"Moves `amount` tokens from the caller's account to `to`."},"transferFrom(address,address,uint256)":{"notice":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/mocks/MockERC20.sol":"MockERC20"},"evmVersion":"shanghai","libraries":{}},"sources":{"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"}},"version":1},"id":110}