1.1k txs
2k calls
constructor
constructor(address _owner, address _fusdToken, address _usdcToken, address _developmentWallet)
functions
calculateFUSDAmount
viewfunction calculateFUSDAmount(uint256 usdcAmount) view returns (uint256)
calculateUSDCAmount
viewfunction calculateUSDCAmount(uint256 fusdAmount) view returns (uint256)
DEVELOPMENT_TAX
viewfunction DEVELOPMENT_TAX() view returns (uint256)
developmentWallet
viewfunction developmentWallet() view returns (address)
fusdToken
viewfunction fusdToken() view returns (address)
getCurrentPrice
viewfunction getCurrentPrice() view returns (uint256)
getExchangeStats
viewfunction getExchangeStats() view returns (uint256 price, uint256 usdcLiquidity, uint256 fusdLiquidity, bool trading, bool withdrawal)
getLiquidityProviders
viewfunction getLiquidityProviders() view returns (address[])
getUserTrades
viewfunction getUserTrades(address user, uint256 startIndex, uint256 count) view returns (tuple[])
isAddressLiquidityProvider
viewfunction isAddressLiquidityProvider(address provider) view returns (bool)
isLiquidityProvider
viewfunction isLiquidityProvider(address) view returns (bool)
LIQUIDITY_TAX
viewfunction LIQUIDITY_TAX() view returns (uint256)
liquidityProviders
viewfunction liquidityProviders(uint256) view returns (address)
owner
viewfunction owner() view returns (address)
PRECISION
viewfunction PRECISION() view returns (uint256)
TAX_PERCENTAGE
viewfunction TAX_PERCENTAGE() view returns (uint256)
totalLiquidityUSDC
viewfunction totalLiquidityUSDC() view returns (uint256)
tradingEnabled
viewfunction tradingEnabled() view returns (bool)
usdcToken
viewfunction usdcToken() view returns (address)
userTradeCount
viewfunction userTradeCount(address) view returns (uint256)
userTrades
viewfunction userTrades(address, uint256) view returns (uint256 usdcAmount, uint256 fusdAmount, uint256 developmentTax, uint256 liquidityTax, uint256 timestamp, uint256 priceBefore, uint256 priceAfter)
withdrawalEnabled
viewfunction withdrawalEnabled() view returns (bool)
addLiquidity
nonpayablefunction addLiquidity(uint256 usdcAmount)
addLiquidityProvider
nonpayablefunction addLiquidityProvider(address provider)
buyFUSD
nonpayablefunction buyFUSD(uint256 usdcAmount)
emergencyWithdraw
nonpayablefunction emergencyWithdraw(address token, uint256 amount)
removeLiquidity
nonpayablefunction removeLiquidity(uint256 usdcAmount)
removeLiquidityProvider
nonpayablefunction removeLiquidityProvider(address provider)
renounceOwnership
nonpayablefunction renounceOwnership()
sellFUSD
nonpayablefunction sellFUSD(uint256 fusdAmount)
setDevelopmentWallet
nonpayablefunction setDevelopmentWallet(address newWallet)
setTradingEnabled
nonpayablefunction setTradingEnabled(bool enabled)
setWithdrawalEnabled
nonpayablefunction setWithdrawalEnabled(bool enabled)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
DevelopmentWalletUpdated
event DevelopmentWalletUpdated(address indexed oldWallet, address indexed newWallet)
LiquidityAdded
event LiquidityAdded(uint256 usdcAmount)
LiquidityProviderAdded
event LiquidityProviderAdded(address indexed provider)
LiquidityProviderRemoved
event LiquidityProviderRemoved(address indexed provider)
LiquidityRemoved
event LiquidityRemoved(uint256 usdcAmount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PriceUpdated
event PriceUpdated(uint256 oldPrice, uint256 newPrice, string reason)
TradeExecuted
event TradeExecuted(address indexed user, bool isBuy, uint256 usdcAmount, uint256 fusdAmount, uint256 developmentTax, uint256 liquidityTax, uint256 priceBefore, uint256 priceAfter, uint256 timestamp)
TradingStatusUpdated
event TradingStatusUpdated(bool enabled)
WithdrawalStatusUpdated
event WithdrawalStatusUpdated(bool enabled)
errors
INSUFFICIENT_BALANCE
error INSUFFICIENT_BALANCE()
INSUFFICIENT_LIQUIDITY
error INSUFFICIENT_LIQUIDITY()
INVALID_AMOUNT
error INVALID_AMOUNT()
INVALID_PRICE
error INVALID_PRICE()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
TRADING_DISABLED
error TRADING_DISABLED()
WITHDRAWAL_DISABLED
error WITHDRAWAL_DISABLED()
creation bytecode
0x6080346200023c57601f62001eeb38819003918201601f1916830191906001600160401b03831184841017620002415781608092859260409586528339810103126200023c57620000508262000257565b6200005e6020840162000257565b906200007a60606200007285870162000257565b950162000257565b906001600160a01b03908116801562000224576000549560018060a01b031991808389161760005583875198167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a360018055826005549516968715620001d757508216918215620001885783161562000133576101019495816002541617600255600354161760035562010000600160b01b039060101b169060018060b01b031916171760055551611c7e90816200026d8239f35b845162461bcd60e51b815260206004820152602860248201527f4655534445786368616e67653a20496e76616c696420646576656c6f706d656e6044820152671d081dd85b1b195d60c21b6064820152608490fd5b855162461bcd60e51b815260206004820152602260248201527f4655534445786368616e67653a20496e76616c69642055534443206164647265604482015261737360f01b6064820152608490fd5b62461bcd60e51b815260206004820152602260248201527f4655534445786368616e67653a20496e76616c69642046555344206164647265604482015261737360f01b6064820152608490fd5b8451631e4fbdf760e01b815260006004820152602490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200023c5756fe608060408181526004918236101561001657600080fd5b60009260e08435811c92836302b0bde81461149f57508263097323ea146112d257826311eac855146112a8578263226c79c1146111e357826341ef8aa014610dbe5782634ada218b146111be5782634cabb8241461116957826351c6590a14610fc15782635e7f18af14610f18578263715018a614610ebe57826372ac248614610de05782637876ab0c14610dc357826381f0549f14610dbe578263827c97e714610bef57826387878fef14610d545782638da5cb5b14610d2b57826395ccea6714610c705782639621291614610c2e57826399f7854a14610bef5782639c8f9f2314610a96578263aaf5eb6814610a78578263b1b1ffab146109ea578263bd6af9e414610857578263c04a541414610829578263c1809db1146106ab578263c1e67f561461047d57508163c2e5ec041461041a578163c66834d3146103fc578163c7309b6914610336578163e41afd96146102a7578163eb91d37e14610283578163f2fde38b146101ee57508063f8ea5daf146101c85763ff0fe75a1461019d57600080fd5b346101c457816003193601126101c45760025490516001600160a01b039091168152602090f35b5080fd5b50346101c457816003193601126101c45760209060ff60055460081c1690519015158152f35b90503461027f57602036600319011261027f576102096114d3565b9061021261156e565b6001600160a01b03918216928315610269575050600054826bffffffffffffffffffffffff60a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346101c457816003193601126101c4576020906102a061164b565b9051908152f35b82843461033357602036600319011261033357823560fa810281810460fa148215171561032057906127106102dd920490611802565b6102e561164b565b91670de0b6b3a76400009182810292818404149015171561030d576020846102a0858561162b565b634e487b7160e01b815260118552602490fd5b634e487b7160e01b835260118552602483fd5b80fd5b82843461033357806003193601126103335761035061164b565b835460025484516318160ddd60e01b8152919592949260209183919082906001600160a01b03165afa9283156103f157926103b6575b509260ff9160a09460055492815195865260208601528401528181161515606084015260081c1615156080820152f35b9150926020823d82116103e9575b816103d1602093836115e0565b810103126103e4579051909260a0610386565b600080fd5b3d91506103c4565b8251903d90823e3d90fd5b90503461027f578260031936011261027f5760209250549051908152f35b90503461027f57602036600319011261027f57359081151580920361027f577f44025b4c6266facf728a25ba1ed858c89e2215e03094486152577b87636ea7ab9160209161046661156e565b60ff196005541660ff83161760055551908152a180f35b9150346106a75760203660031901126106a75780359261049b611903565b6104a960ff6005541661173f565b83156104b58115611795565b607d850290858204607d141715610694576127109004906104df6104d983806117f5565b86611802565b906104e861164b565b93670de0b6b3a7640000808402908482041484151715610681578561050c9161162b565b9283156106345790889161054361053c8760018060a01b03936105378d866003541630903390611852565b6117f5565b83546117f5565b825585610618575b60025416803b1561027f5783516340c10f1960e01b81523392810192835260208301869052918391839182908490829060400103925af1801561060e576105f6575b505061059e84808580868b33611b58565b80519560018752602087015285015280606085015260808401528060a084015260c083015242908201527f699c7fbbb1dbc4637ba5aaa9cc981b638ec6c38bd8d72fd00e6bb0b587283aad6101003392a26001805580f35b6105ff9061159a565b61060a57863861058d565b8680fd5b83513d84823e3d90fd5b61062f8682600354168360055460101c169061180f565b61054b565b506020608492519162461bcd60e51b8352820152602160248201527f4655534445786368616e67653a2046555344206f757470757420746f6f206c6f6044820152607760f81b6064820152fd5b634e487b7160e01b895260118252602489fd5b634e487b7160e01b865260118352602486fd5b8380fd5b8482853461027f57602036600319011261027f576106c76114d3565b6106cf61156e565b6001600160a01b0381169283156107d757838552600960205260ff83862054166107865760065490600160401b8210156107735750906107188260016107379401600655611505565b90919082549060031b9160018060a01b03809116831b921b1916179055565b81835260096020528220805460ff191660011790557f09757ba4d73741a61c81668741f4c9e8f534e40ef0dfd129c48ce2e24767e8d68280a280f35b634e487b7160e01b865260419052602485fd5b608490602084519162461bcd60e51b8352820152602560248201527f4655534445786368616e67653a2050726f766964657220616c72656164792065604482015264786973747360d81b6064820152fd5b608490602084519162461bcd60e51b8352820152602660248201527f4655534445786368616e67653a20496e76616c69642070726f7669646572206160448201526564647265737360d01b6064820152fd5b505050346101c457816003193601126101c457600554905160109190911c6001600160a01b03168152602090f35b8482853461027f57602036600319011261027f576108736114d3565b9061087c61156e565b6001600160a01b0391821680855260096020528185205490929060ff161561099957845b600680548083101561098d57908391866108b985611505565b949054600395861b1c16146108d9575050506108d490611984565b6108a0565b919495969093926000199283810190811161097a5790610718856108ff61090c94611505565b9054908a1b1c1691611505565b83549081156109675750019261092184611505565b81939154921b1b19169055555b81835260096020528220805460ff191690557fe0686d9cf1c6262480dff384963a9a6abf21b422a02f3c8a37293f426d92c6698280a280f35b634e487b7160e01b895260319052602488fd5b634e487b7160e01b8a526011835260248afd5b5050505090915061092e565b815162461bcd60e51b8152602081860152602560248201527f4655534445786368616e67653a2050726f766964657220646f6573206e6f7420604482015264195e1a5cdd60da1b6064820152608490fd5b83828634610333578260031936011261033357610a056114d3565b6001600160a01b03168152600760205282812080546024359290831015610333575090610a3191611552565b508054926001820154926002830154600384015491840154926006600586015495015495815197885260208801528601526060850152608084015260a083015260c0820152f35b505050346101c457816003193601126101c457602090516127108152f35b8482853461027f57602036600319011261027f578135610ab4611903565b610abc61156e565b60ff60055460081c1615610ba05791606060a0927f0a2ac2d0ff5dd766a6215edf0289e7aedf3647514518fb2694c0c0584902e7cc602086610b207f64f00dfa7fa4731b4788006f819e8b57f0067114c845f10ed5e6db310b69df37981515611795565b855495610b2f87831115611926565b610b4182610b3b61164b565b98611802565b9055610b5c816001808a1b038060035416908c54169061180f565b8351908152a1610b6a61164b565b815193845260208401528201526011606082015270131a5c5d5a591a5d1e4814995b5bdd9959607a1b6080820152a16001805580f35b815162461bcd60e51b81526020818501526024808201527f4655534445786368616e67653a205769746864726177616c2069732064697361604482015263189b195960e21b6064820152608490fd5b505050346101c45760203660031901126101c45760209160ff9082906001600160a01b03610c1b6114d3565b1681526009855220541690519015158152f35b5090503461027f57602036600319011261027f5735916006548310156103335750610c5a602092611505565b905491519160018060a01b039160031b1c168152f35b838583346101c457826003193601126101c457610c8b6114d3565b610c9361156e565b6003546001600160a01b0392918316919083168214610cc2575090610cbf91602435918454169061180f565b80f35b608490602086519162461bcd60e51b8352820152603860248201527f4655534445786368616e67653a2043616e6e6f7420776974686472617720555360448201527f44432076696120656d657267656e6379576974686472617700000000000000006064820152fd5b505050346101c457816003193601126101c457905490516001600160a01b039091168152602090f35b5090503461027f57602036600319011261027f57359081151580920361027f577fe143534ba1fbc8afb2e3ead7b4733722be84ef0a792220f89564b4b779ad4a3791602091610da161156e565b60055461ff008360081b169061ff0019161760055551908152a180f35b6114e9565b505050346101c457816003193601126101c4576020905160fa8152f35b5090503461027f57602036600319011261027f57610dfc6114d3565b610e0461156e565b6001600160a01b03818116939092908415610e6a5750506005805462010000600160b01b03198116601093841b62010000600160b01b031617909155901c167f94cc1498503be9a145caf3e96f856665f29cf9b26c7179a93fbe1c1e5f56a0fd8380a380f35b906020608492519162461bcd60e51b8352820152602860248201527f4655534445786368616e67653a20496e76616c696420646576656c6f706d656e6044820152671d081dd85b1b195d60c21b6064820152fd5b8434610333578060031936011261033357610ed761156e565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b8490843461027f57606090816003193601126106a757610f49610f3c9392936114d3565b60443590602435906119bf565b9181519360209182860193838752855180955283818801960197925b858410610f725787870388f35b8851805188528086015188870152808301518884015280820151888301526080808201519089015260a0808201519089015260c090810151908801529784019795820195600190930192610f65565b8482853461027f576020806003193601126106a7578235610fe0611903565b84546001600160a01b039490851633148015611155575b156111125781156110b65792827ffdb748c915e4e67b4bb23287bf4295a4595ce48b50343214369f72ccfb974cfa7f64f00dfa7fa4731b4788006f819e8b57f0067114c845f10ed5e6db310b69df3796948460a09761106860609761105a61164b565b996003541630903390611852565b6110738282546117f5565b90558451908152a161108361164b565b908251948552840152820152600f60608201526e131a5c5d5a591a5d1e481059191959608a1b6080820152a16001805580f35b835162461bcd60e51b8152908101839052603060248201527f4655534445786368616e67653a205553444320416d6f756e74206d757374206260448201526f0652067726561746572207468616e20360841b6064820152608490fd5b835162461bcd60e51b8152908101839052601c60248201527f4655534445786368616e67653a204e6f7420617574686f72697a6564000000006044820152606490fd5b503386526009835260ff8487205416610ff7565b5082843461033357602036600319011261033357670de0b6b3a764000061119861119161164b565b8535611602565b049060fa82029082820460fa148315171561030d576020846102a0612710850486611802565b505050346101c457816003193601126101c45760209060ff6005541690519015158152f35b8385346103335780600319360112610333579080519182906006549182855260208095018093600684527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f90845b81811061128b57505050816112479103826115e0565b83519485948186019282875251809352850193925b82811061126b57505050500390f35b83516001600160a01b03168552869550938101939281019260010161125c565b82546001600160a01b031684529288019260019283019201611231565b505050346101c457816003193601126101c45760035490516001600160a01b039091168152602090f35b9150346106a75760203660031901126106a7578035906112f0611903565b6112fe60ff6005541661173f565b611309821515611795565b61131161164b565b91670de0b6b3a76400006113258483611602565b0494607d8602868104607d148715171561148c5761271090049261135261134c85806117f5565b88611802565b61135f8254821115611926565b6002546001600160a01b0391908216803b15611488578451632770a7eb60e21b8152338582019081526020810188905290918c9183919082908490829060400103925af1801561147e57611469575b50806113c26113c99233856003541661180f565b8354611802565b8255848061143d575b6113e59250869150808291868b33611b58565b80519560008752602087015285015280606085015260808401528060a084015260c083015242908201527f699c7fbbb1dbc4637ba5aaa9cc981b638ec6c38bd8d72fd00e6bb0b587283aad6101003392a26001805580f35b8161145492600354169060055460101c169061180f565b61145f848254611802565b90553880846113d2565b996114776113c9929b61159a565b99906113ae565b85513d8d823e3d90fd5b8a80fd5b634e487b7160e01b885260118452602488fd5b8590853461027f57602036600319011261027f576020926001600160a01b036114c66114d3565b1681526008845220548152f35b600435906001600160a01b03821682036103e457565b346103e45760003660031901126103e4576020604051607d8152f35b60065481101561153c5760066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0190600090565b634e487b7160e01b600052603260045260246000fd5b805482101561153c576000526007602060002091020190600090565b6000546001600160a01b0316330361158257565b60405163118cdaa760e01b8152336004820152602490fd5b67ffffffffffffffff81116115ae57604052565b634e487b7160e01b600052604160045260246000fd5b60e0810190811067ffffffffffffffff8211176115ae57604052565b90601f8019910116810190811067ffffffffffffffff8211176115ae57604052565b8181029291811591840414171561161557565b634e487b7160e01b600052601160045260246000fd5b8115611635570490565b634e487b7160e01b600052601260045260246000fd5b6002546040516318160ddd60e01b815290602090829060049082906001600160a01b03165afa90811561173357600091611702575b5080156116b15760045490670de0b6b3a764000091828102928184041490151715611615576116ae9161162b565b90565b60405162461bcd60e51b815260206004820152602360248201527f4655534445786368616e67653a204e6f2063697263756c6174696e6720737570604482015262706c7960e81b6064820152608490fd5b906020823d821161172b575b8161171b602093836115e0565b8101031261033357505138611680565b3d915061170e565b6040513d6000823e3d90fd5b1561174657565b60405162461bcd60e51b815260206004820152602160248201527f4655534445786368616e67653a2054726164696e672069732064697361626c656044820152601960fa1b6064820152608490fd5b1561179c57565b60405162461bcd60e51b815260206004820152602b60248201527f4655534445786368616e67653a20416d6f756e74206d7573742062652067726560448201526a061746572207468616e20360ac1b6064820152608490fd5b9190820180921161161557565b9190820391821161161557565b60405163a9059cbb60e01b60208201526001600160a01b039290921660248301526044808301939093529181526118509161184b6064836115e0565b6118a7565b565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a081019181831067ffffffffffffffff8411176115ae57611850926040525b906000602091828151910182855af115611733576000513d6118fa57506001600160a01b0381163b155b6118d85750565b604051635274afe760e01b81526001600160a01b039091166004820152602490fd5b600114156118d1565b600260015414611914576002600155565b604051633ee5aeb560e01b8152600490fd5b1561192d57565b60405162461bcd60e51b815260206004820152602960248201527f4655534445786368616e67653a20496e73756666696369656e742055534443206044820152686c697175696469747960b81b6064820152608490fd5b60001981146116155760010190565b67ffffffffffffffff81116115ae5760051b60200190565b805182101561153c5760209160051b010190565b6001600160a01b0316600081815260086020908152604080832054939592949193909281831015611b2057611a08916119f98492836117f5565b90808211611b18575b50611802565b93611a1285611993565b95611a1f845197886115e0565b858752601f19611a2e87611993565b0185835b828110611ada57505050815b868110611a4f575050505050505090565b611ad59082845260078752611a70868520611a6a83886117f5565b90611552565b506006875191611a7f836115c4565b8054835260018101548a8401526002810154898401526003810154606084015260048101546080840152600581015460a0840152015460c0820152611ac4828b6119ab565b52611acf818a6119ab565b50611984565b611a3e565b8651611ae5816115c4565b858152858382015285888201528560608201528560808201528560a08201528560c082015282828c010152018690611a32565b905038611a02565b505081519450509083019067ffffffffffffffff821184831017611b445752815290565b634e487b7160e01b83526041600452602483fd5b90929396959694919460405193611b6e856115c4565b8452602084019586526040840194855260608401908152608084019142835260a0850193845260c0850198895260018060a01b031694600096868852600760205260408820805490600160401b821015611c345790611bd291600182018155611552565b969096611c205791600695939160409a9b9593518855516001880155516002870155516003860155516004850155516005840155519101558152600860205220611c1c8154611984565b9055565b634e487b7160e01b89526004899052602489fd5b634e487b7160e01b8a52604160045260248afdfea2646970667358221220c81904ef6b60d38a9956933ac1e83c9e05790a70acb7cde83c300e02d2701b4164736f6c63430008140033000000000000000000000000882732af65ac4f9578a3747fd0004ffb7a3f34bd000000000000000000000000139defc9cddd77a137f8c5c8019367ea611124b50000000000000000000000008ac76a51cc950d9822d68b83fe1ad97b32cd580d00000000000000000000000091b6f15b8cfc6aeafd46f3ad84cd87510db2a01e