Address Contract Partially Verified
Address
0x768f7F738e15f8fdeeEAC4206ef1686fc21cB915
Balance
0.035371 ETH
Nonce
1
Code Size
6562 bytes
Creator
0x9FC47A7d...EBaE at tx 0xb52f3a1f...471c35
Indexed Transactions
0
Contract Bytecode
6562 bytes
0x6080604052600436106101c65760003560e01c806390d49b9d116100f7578063d72b11bd11610095578063f25f4b5611610064578063f25f4b5614610544578063f2fde38b14610564578063f3a7cb6114610584578063fea54d06146105a457600080fd5b8063d72b11bd146104ce578063dda4fa8f146104ee578063e74a3cad1461050e578063f1c069061461052e57600080fd5b8063b8fb2816116100d1578063b8fb281614610463578063c7e0af6a14610483578063cd23e147146104a3578063d0bb0b8a146104b957600080fd5b806390d49b9d146104035780639692912e146104235780639ab4a4451461044357600080fd5b806370928e901161016457806381203d031161013e57806381203d031461037d5780638321ffea146103935780638b525903146103c35780638da5cb5b146103e357600080fd5b806370928e901461031f5780637931647e1461034857806379ba50971461036857600080fd5b8063383fe467116101a0578063383fe4671461024a57806351295f011461028a57806355eba868146102ac5780636fba2983146102e457600080fd5b80630536b723146101d257806315a0104514610217578063256c1ea31461022a57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506102026101ed3660046116c8565b60026020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102026102253660046116c8565b6105c4565b34801561023657600080fd5b506102026102453660046116ec565b6106be565b34801561025657600080fd5b5061026a61026536600461173d565b6108a6565b604080516001600160a01b0393841681529290911660208301520161020e565b34801561029657600080fd5b506102aa6102a5366004611784565b610a57565b005b3480156102b857600080fd5b506102cc6102c73660046116c8565b610ac2565b6040516001600160a01b03909116815260200161020e565b3480156102f057600080fd5b506103116102ff3660046116c8565b600d6020526000908152604090205481565b60405190815260200161020e565b34801561032b57600080fd5b50600a54600b545b6040805192835260208301919091520161020e565b34801561035457600080fd5b506102aa610363366004611784565b610ba2565b34801561037457600080fd5b506102aa610c3a565b34801561038957600080fd5b5061031160035481565b34801561039f57600080fd5b506102026103ae3660046116c8565b600c6020526000908152604090205460ff1681565b3480156103cf57600080fd5b506102aa6103de3660046117b2565b610cb5565b3480156103ef57600080fd5b506000546102cc906001600160a01b031681565b34801561040f57600080fd5b5061026a61041e3660046116c8565b610d58565b34801561042f57600080fd5b5061033361043e3660046117b2565b610d9a565b34801561044f57600080fd5b506007546102cc906001600160a01b031681565b34801561046f57600080fd5b506102aa61047e3660046117cb565b610dcb565b34801561048f57600080fd5b5061033361049e3660046117b2565b610dfe565b3480156104af57600080fd5b5061031160085481565b3480156104c557600080fd5b50600954610311565b3480156104da57600080fd5b506006546102cc906001600160a01b031681565b3480156104fa57600080fd5b5061026a6105093660046116c8565b610e25565b34801561051a57600080fd5b506102aa6105293660046117f7565b610e67565b34801561053a57600080fd5b5061031160045481565b34801561055057600080fd5b506005546102cc906001600160a01b031681565b34801561057057600080fd5b506102aa61057f3660046116c8565b610ec5565b34801561059057600080fd5b5061020261059f366004611819565b610efe565b3480156105b057600080fd5b506102026105bf366004611863565b6114fa565b60038054600091826105d5836118ae565b909155503490506000806105e883610d9a565b6005546040519294509092506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610626573d6000803e3d6000fd5b50600854471061066c576006546040516001600160a01b039091169083156108fc029084906000818181858888f1935050505015801561066a573d6000803e3d6000fd5b505b600354604080518481526001600160a01b03881660208201523392917f50ed54fdff2e8028310feac14aa2e8343c5eb6ab4fb192510bd3358cbe18fb1d910160405180910390a3506001949350505050565b3360009081526002602052604081205460ff1661071a5760405162461bcd60e51b815260206004820152601560248201527431b0b63632b91036bab9ba1031329039b4b3b732b960591b60448201526064015b60405180910390fd5b6001600160a01b0386166000908152600c6020526040902054849060ff1615610833576007546001600160a01b03908116908816036107ba5760405163a9059cbb60e01b81526001600160a01b0387811660048301526024820187905288169063a9059cbb90604401600060405180830381600087803b15801561079d57600080fd5b505af11580156107b1573d6000803e3d6000fd5b50505050610842565b60405163a9059cbb60e01b81526001600160a01b0387811660048301526024820187905288169063a9059cbb906044016020604051808303816000875af1158015610809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082d91906118c7565b50610842565b61083e8787876115d6565b5090505b856001600160a01b0316876001600160a01b0316857f227f62390ff31ea224acc601adb99ca571aafaeef45b6528a1f75af3fdee81b08487604051610891929190918252602082015260400190565b60405180910390a45060019695505050505050565b6000805481906001600160a01b031633146108c057600080fd5b6001600160a01b038416158015906108e057506001600160a01b03831615155b6109275760405162461bcd60e51b81526020600482015260186024820152771e995c9bc81859191c995cdcc81b9bdd08185b1b1bddd95960421b6044820152606401610711565b836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610967573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098b91906118e4565b60405163f2fde38b60e01b81526001600160a01b0385811660048301529193509085169063f2fde38b90602401600060405180830381600087803b1580156109d257600080fd5b505af11580156109e6573d6000803e3d6000fd5b50505050836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4e91906118e4565b90509250929050565b6000546001600160a01b03163314610a6e57600080fd5b6001600160a01b038216600081815260026020526040808220805460ff191685151590811790915590519092917ffcaa24b1276bfa7dbf77797c0a984b9df924acbeaabd48cd2f1b0eca379b78fa91a35050565b600080546001600160a01b03163314610ada57600080fd5b6001600160a01b038216610b2b5760405162461bcd60e51b81526020600482015260186024820152771e995c9bc81859191c995cdcc81b9bdd08185b1b1bddd95960421b6044820152606401610711565b6007546001600160a01b0390811690831603610b7f5760405162461bcd60e51b815260206004820152601360248201527273616d65206173206f6c64206164647265737360681b6044820152606401610711565b50600780546001600160a01b039092166001600160a01b03199092168217905590565b6000546001600160a01b03163314610bb957600080fd5b6001600160a01b038216610c0f5760405162461bcd60e51b815260206004820152601760248201527f63616e6e6f7420736574207a65726f20616464726573730000000000000000006044820152606401610711565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6001546001600160a01b03163314610c5157600080fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b03163314610ccc57600080fd5b6103e88110610d1d5760405162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420736574207472616e736665722074617820746f2031303025006044820152606401610711565b60098190556040518181527f631ee1e3b1086d4c1db5ff7c5beaa156b9bc2a6c1184815ce55edaffc2fe03739060200160405180910390a150565b6000805481906001600160a01b03163314610d7257600080fd5b5050600580546001600160a01b039283166001600160a01b0319821681179092559190911691565b60008061271083600954610dae9190611901565b610db8919061191e565b9050610dc48184611940565b9150915091565b6000546001600160a01b03163314610de257600080fd5b6001600160a01b039091166000908152600d6020526040902055565b6000805481906001600160a01b03163314610e1857600080fd5b5050600880549082905591565b6000805481906001600160a01b03163314610e3f57600080fd5b5050600680546001600160a01b039283166001600160a01b0319821681179092559190911691565b6000546001600160a01b03163314610e7e57600080fd5b600a829055600b81905560408051838152602081018390527f87fe53a536e45e65a71c8b9eea0a9fbf60cf59061aedbf0083a6620002812be6910160405180910390a15050565b6000546001600160a01b03163314610edc57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6003805460009182610f0f836118ae565b91905055506000806000610f2287610d9a565b6001600160a01b038a166000908152600c602052604090205490935090915060ff1615611302576007546001600160a01b0390811690891603611116576040516323b872dd60e01b8152336004820152306024820152604481018890526001600160a01b038916906323b872dd90606401600060405180830381600087803b158015610fad57600080fd5b505af1158015610fc1573d6000803e3d6000fd5b505060055460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101869052908b16925063a9059cbb9150604401600060405180830381600087803b15801561101357600080fd5b505af1158015611027573d6000803e3d6000fd5b505050506001600160a01b0388166000818152600d6020526040908190205490516370a0823160e01b81523060048201529091906370a0823190602401602060405180830381865afa158015611081573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a59190611953565b106111115760005460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529089169063a9059cbb90604401600060405180830381600087803b1580156110f857600080fd5b505af115801561110c573d6000803e3d6000fd5b505050505b611498565b6040516323b872dd60e01b8152336004820152306024820152604481018890526001600160a01b038916906323b872dd906064016020604051808303816000875af1158015611169573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118d91906118c7565b5060055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529089169063a9059cbb906044016020604051808303816000875af11580156111e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120591906118c7565b506001600160a01b0388166000818152600d6020526040908190205490516370a0823160e01b81523060048201529091906370a0823190602401602060405180830381865afa15801561125c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112809190611953565b106111115760005460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529089169063a9059cbb906044016020604051808303816000875af11580156112d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fc91906118c7565b50611498565b600a548110156113545760405162461bcd60e51b815260206004820152601a60248201527f4d696e696d756d20616d6f756e742069732072657175697265640000000000006044820152606401610711565b600b5481111561139b5760405162461bcd60e51b8152602060048201526012602482015271115e18d959591cc81b585e08185b5bdd5b9d60721b6044820152606401610711565b6040516323b872dd60e01b8152336004820152306024820152604481018890526001600160a01b038916906323b872dd906064016020604051808303816000875af11580156113ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141291906118c7565b5060055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529089169063a9059cbb906044016020604051808303816000875af1158015611466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148a91906118c7565b506114958882611646565b92505b60035460408051838152602081018990526001600160a01b038881168284015291513393928c1692917f8a9f5b93a9427ed2074a269336914d74d6b34dfe5679f30c5cf172f5842aa795919081900360600190a4506001979650505050505050565b3360009081526002602052604081205460ff166115515760405162461bcd60e51b815260206004820152601560248201527431b0b63632b91036bab9ba1031329039b4b3b732b960591b6044820152606401610711565b6040516001600160a01b0385169084156108fc029085906000818181858888f19350505050158015611587573d6000803e3d6000fd5b50836001600160a01b0316827f9651479651fe91907cee7de24a0e47091421878d660c93c6fe0d04c7b7b2404b856040516115c491815260200190565b60405180910390a35060019392505050565b6040516340c10f1960e01b81526001600160a01b0383811660048301526024820183905260009182918616906340c10f1990604401600060405180830381600087803b15801561162557600080fd5b505af1158015611639573d6000803e3d6000fd5b5094979596505050505050565b604051632770a7eb60e21b8152306004820152602481018290526000906001600160a01b03841690639dc29fac90604401600060405180830381600087803b15801561169157600080fd5b505af11580156116a5573d6000803e3d6000fd5b509395945050505050565b6001600160a01b03811681146116c557600080fd5b50565b6000602082840312156116da57600080fd5b81356116e5816116b0565b9392505050565b600080600080600060a0868803121561170457600080fd5b853561170f816116b0565b9450602086013561171f816116b0565b94979496505050506040830135926060810135926080909101359150565b6000806040838503121561175057600080fd5b823561175b816116b0565b9150602083013561176b816116b0565b809150509250929050565b80151581146116c557600080fd5b6000806040838503121561179757600080fd5b82356117a2816116b0565b9150602083013561176b81611776565b6000602082840312156117c457600080fd5b5035919050565b600080604083850312156117de57600080fd5b82356117e9816116b0565b946020939093013593505050565b6000806040838503121561180a57600080fd5b50508035926020909101359150565b6000806000806080858703121561182f57600080fd5b843561183a816116b0565b935060208501359250604085013591506060850135611858816116b0565b939692955090935050565b60008060006060848603121561187857600080fd5b8335611883816116b0565b95602085013595506040909401359392505050565b634e487b7160e01b600052601160045260246000fd5b6000600182016118c0576118c0611898565b5060010190565b6000602082840312156118d957600080fd5b81516116e581611776565b6000602082840312156118f657600080fd5b81516116e5816116b0565b808202811582820484141761191857611918611898565b92915050565b60008261193b57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561191857611918611898565b60006020828403121561196557600080fd5b505191905056fea2646970667358221220909d54c5e3111cdad8d6eab2cf5dd502e561ad445b3bea116511094adfb1d56064736f6c63430008110033
Verified Source Code Partial Match
Compiler: v0.8.17+commit.8df45f5f
EVM: london
Optimization: Yes (200 runs)
Bridge.sol 333 lines
//SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
interface ERC20Essential
{
function balanceOf(address user) external view returns(uint256);
function transfer(address _to, uint256 _amount) external returns (bool);
function transferFrom(address _from, address _to, uint256 _amount) external returns (bool);
function mint(address account, uint256 value) external;
function burn(address account, uint256 value) external;
function transferOwnership(address newOwner) external;
function owner() external returns(address);
}
//USDT contract in Ethereum does not follow ERC20 standard so it needs different interface
interface usdtContract
{
function transferFrom(address _from, address _to, uint256 _amount) external;
function transfer(address _to, uint256 _amount) external;
function mint(address account, uint256 value) external;
function burn(address account, uint256 value) external;
function balanceOf(address user) external view returns(uint256);
}
//*******************************************************************//
//------------------ Contract to Manage Ownership -------------------//
//*******************************************************************//
contract owned
{
address public owner;
address internal newOwner;
mapping(address => bool) public signer;
event OwnershipTransferred(address indexed _from, address indexed _to);
event SignerUpdated(address indexed signer, bool indexed status);
constructor() {
owner = msg.sender;
//owner does not become signer automatically.
}
modifier onlyOwner {
require(msg.sender == owner);
_;
}
modifier onlySigner {
require(signer[msg.sender], 'caller must be signer');
_;
}
function changeSigner(address _signer, bool _status) public onlyOwner {
signer[_signer] = _status;
emit SignerUpdated(_signer, _status);
}
function transferOwnership(address _newOwner) public onlyOwner {
newOwner = _newOwner;
}
//the reason for this flow is to protect owners from sending ownership to unintended address due to human error
function acceptOwnership() public {
require(msg.sender == newOwner);
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
newOwner = address(0);
}
}
//****************************************************************************//
//--------------------- MAIN CODE STARTS HERE ---------------------//
//****************************************************************************//
contract Bridge is owned {
uint256 public orderID;
uint256 public exraCoinRewards; // if we give users extra coins to cover gas cost of some initial transactions.
address public feeWallet;
address public reserveWallet;
address public usdtAddress = 0xb5b5158B0A8AAe70D3c0cF091a91faFFB808CBE0; //custom chain USDT address
uint256 public reserveFundThreshold = 10e18;
uint256 private transferTax = 1;
uint256 private minTx = 1000000000000000;
uint256 private maxTx = 5_000_000 * 1e18;
/* This mapping contains the status of tokenAddresses who are not under our control like those which we cannot burn or mint*/
mapping(address=>bool) public noControl;
mapping(address=>uint256) public tokenFundThreshold;
// This generates a public event of coin received by contract
event CoinIn(uint256 indexed orderID, address indexed user, uint256 value, address outputCurrency);
event CoinOut(uint256 indexed orderID, address indexed user, uint256 value);
event CoinOutFailed(uint256 indexed orderID, address indexed user, uint256 value);
event TokenIn(uint256 indexed orderID, address indexed tokenAddress, address indexed user, uint256 value, uint256 chainID, address outputCurrency);
event TokenOut(uint256 indexed orderID, address indexed tokenAddress, address indexed user, uint256 value, uint256 chainID);
event TokenOutFailed(uint256 indexed orderID, address indexed tokenAddress, address indexed user, uint256 value, uint256 chainID);
event minMaxTxUpdated(uint256 minTx, uint256 maxTx);
event transferTaxUpdated(uint256 transferTax);
receive () external payable {
//nothing happens for incoming fund
}
constructor(){
noControl[0xdAC17F958D2ee523a2206206994597C13D831ec7] = true; /*USDT Ethereum*/
noControl[0x55d398326f99059fF775485246999027B3197955] = true; /*USDT Binance*/
noControl[0xc2132D05D31c914a87C6611C10748AEb04B58e8F] = true; /*USDT Matic*/
tokenFundThreshold[0xdAC17F958D2ee523a2206206994597C13D831ec7] = 100e6; /*USDT Ethereum*/
tokenFundThreshold[0x55d398326f99059fF775485246999027B3197955] = 100e18; /*USDT Binance*/
tokenFundThreshold[0xc2132D05D31c914a87C6611C10748AEb04B58e8F] = 100e6; /*USDT Matic*/
}
function coinIn(address outputCurrency) external payable returns(bool){
orderID++;
uint256 amount = msg.value;
uint256 afterTax;
uint256 tax;
(afterTax,tax) = processTax(amount);
payable(feeWallet).transfer(tax);
if(address(this).balance >= reserveFundThreshold){
payable(reserveWallet).transfer(afterTax);
}
emit CoinIn(orderID, msg.sender, afterTax, outputCurrency);
return true;
}
function coinOut(address user, uint256 amount, uint256 _orderID) external onlySigner returns(bool){
payable(user).transfer(amount);
emit CoinOut(_orderID, user, amount);
return true;
}
function tokenIn(address tokenAddress, uint256 tokenAmount, uint256 chainID, address outputCurrency) external returns(bool){
orderID++;
uint256 burnt;
uint256 tax;
uint256 afterTax;
(afterTax, tax) = processTax(tokenAmount);
if(noControl[tokenAddress]){
if(tokenAddress == usdtAddress){
usdtContract(tokenAddress).transferFrom(msg.sender, address(this), tokenAmount);
usdtContract(tokenAddress).transfer(feeWallet, tax);
if(usdtContract(tokenAddress).balanceOf(address(this)) >= tokenFundThreshold[tokenAddress]){
usdtContract(tokenAddress).transfer(owner, afterTax);
}
}else{
ERC20Essential(tokenAddress).transferFrom(msg.sender, address(this), tokenAmount);
ERC20Essential(tokenAddress).transfer(feeWallet, tax);
if(usdtContract(tokenAddress).balanceOf(address(this)) >= tokenFundThreshold[tokenAddress]){
ERC20Essential(tokenAddress).transfer(owner, afterTax);
}
}
}else{
require(afterTax >= minTx, "Minimum amount is required");
require(afterTax <= maxTx, "Exceeds max amount");
ERC20Essential(tokenAddress).transferFrom(msg.sender, address(this), tokenAmount);
ERC20Essential(tokenAddress).transfer(feeWallet, tax);
burnt = burnTokens(tokenAddress, afterTax);
}
emit TokenIn(orderID, tokenAddress, msg.sender, afterTax, chainID, outputCurrency);
return true;
}
function tokenOut(address tokenAddress, address user, uint256 tokenAmount, uint256 _orderID, uint256 chainID) external onlySigner returns(bool){
uint256 minted = tokenAmount;
if(noControl[tokenAddress]){
if(tokenAddress == usdtAddress){
usdtContract(tokenAddress).transfer(user, tokenAmount);
}else{
ERC20Essential(tokenAddress).transfer(user, tokenAmount);
}
}else{
(minted,) = mintTokens(tokenAddress, user, tokenAmount);
}
emit TokenOut(_orderID, tokenAddress, user, minted, chainID);
return true;
}
/* Process Tax*/
function processTax(uint256 amount) public view returns(uint256 afterTax, uint256 deductedTax){
deductedTax = (transferTax * amount)/1e4; /* 0% of amount*/
afterTax = amount - deductedTax;
}
/*
* Mint tokens
*/
function mintTokens(address tokenAddress, address userAddress, uint256 amountToMint) internal returns(uint256 minted, address toAddress){
ERC20Essential(tokenAddress).mint(userAddress, amountToMint);
minted = amountToMint;
toAddress = userAddress;
}
/*
* Burn Tokens
*/
function burnTokens(address tokenAddress, uint256 amount) internal returns(uint256 burnt){
ERC20Essential(tokenAddress).burn(address(this), amount);
burnt = amount;
}
/*Change feeWallet*/
function setFeeWallet(address _feeWallet) external onlyOwner returns(address oldWallet, address newWallet){
oldWallet = feeWallet;
feeWallet = _feeWallet;
newWallet = feeWallet;
}
/*Change reserveWallet*/
function setReserveWallet(address _reserveWallet) external onlyOwner returns(address oldWallet, address newWallet){
oldWallet = reserveWallet;
reserveWallet = _reserveWallet;
newWallet = reserveWallet;
}
/* set usdt token address*/
function setUSDTAddress(address _tokenAddress) external onlyOwner returns(address newAddress){
require(_tokenAddress != address(0), "zero address not allowed");
require(_tokenAddress != usdtAddress, "same as old address");
usdtAddress = _tokenAddress;
newAddress = usdtAddress;
}
/* set Threshold*/
function setFundThreshold(uint256 _amount) external onlyOwner returns(uint256 oldAmount, uint256 newAmount){
oldAmount = reserveFundThreshold;
reserveFundThreshold = _amount;
newAmount = _amount;
}
/* Change owner of the given token contract*/
function transferTokenOwnership(address ofTokenAddress, address toAddress) external onlyOwner returns(address oldOwner, address newOwner){
require(ofTokenAddress != address(0) && toAddress != address(0), "zero address not allowed");
oldOwner = ERC20Essential(ofTokenAddress).owner();
ERC20Essential(ofTokenAddress).transferOwnership(toAddress);
newOwner = ERC20Essential(ofTokenAddress).owner();
}
/*Add noControl tokens i.e, the token on which you dont have burning and minting capabilities
* Set the status to true if you cannot mint or burn
* Set the status to false if you can mint or burn*/
function setNoControl(address tokenAddress, bool status) external onlyOwner{
require(tokenAddress != address(0), "cannot set zero address");
noControl[tokenAddress] = status;
}
/* Modify the token reserve threshold values
*/
function setTokenReserveThreshold(address forToken, uint256 threshold) external onlyOwner{
tokenFundThreshold[forToken] = threshold;
}
/* Modify the transfer tax
*/
function setTransferTax(uint256 _transferTax) external onlyOwner{
require(_transferTax < 1000, "Cannot set transfer tax to 100%");
transferTax = _transferTax;
emit transferTaxUpdated(transferTax);
}
/**
* @notice Changes the minimum and maximum amount of tokens that can be bridge in a single transaction
* @dev onlyOwner.
* Emits an {minMaxTxUpdated} event
* @param newMinTx, newMaxTx Base 1000, so 1% = 1
*/
function updateMinMaxTx(uint256 newMinTx, uint256 newMaxTx) external onlyOwner {
minTx = newMinTx;
maxTx = newMaxTx;
emit minMaxTxUpdated(minTx, maxTx);
}
/**
* @notice Information about the minimun and maximum transaction values
* @return _minTx The minimum amount of tokens that can be bridge
* @return _maxTx The maximum amount of tokens that can be bridge
*/
function getMinMaxTxValues()
external
view
returns (
uint256 _minTx,
uint256 _maxTx
)
{
_minTx = minTx;
_maxTx = maxTx;
}
/**
* @notice Information about the transfer tax
* @return _transferTax The transfer tax
*/
function getTransferTax()
external
view
returns (
uint256 _transferTax
)
{
_transferTax = transferTax;
}
}
Read Contract
exraCoinRewards 0xf1c06906 → uint256
feeWallet 0xf25f4b56 → address
getMinMaxTxValues 0x70928e90 → uint256, uint256
getTransferTax 0xd0bb0b8a → uint256
noControl 0x8321ffea → bool
orderID 0x81203d03 → uint256
owner 0x8da5cb5b → address
processTax 0x9692912e → uint256, uint256
reserveFundThreshold 0xcd23e147 → uint256
reserveWallet 0xd72b11bd → address
signer 0x0536b723 → bool
tokenFundThreshold 0x6fba2983 → uint256
usdtAddress 0x9ab4a445 → address
Write Contract 16 functions
These functions modify contract state and require a wallet transaction to execute.
acceptOwnership 0x79ba5097
No parameters
changeSigner 0x51295f01
address _signer
bool _status
coinIn 0x15a01045
address outputCurrency
returns: bool
coinOut 0xfea54d06
address user
uint256 amount
uint256 _orderID
returns: bool
setFeeWallet 0x90d49b9d
address _feeWallet
returns: address, address
setFundThreshold 0xc7e0af6a
uint256 _amount
returns: uint256, uint256
setNoControl 0x7931647e
address tokenAddress
bool status
setReserveWallet 0xdda4fa8f
address _reserveWallet
returns: address, address
setTokenReserveThreshold 0xb8fb2816
address forToken
uint256 threshold
setTransferTax 0x8b525903
uint256 _transferTax
setUSDTAddress 0x55eba868
address _tokenAddress
returns: address
tokenIn 0xf3a7cb61
address tokenAddress
uint256 tokenAmount
uint256 chainID
address outputCurrency
returns: bool
tokenOut 0x256c1ea3
address tokenAddress
address user
uint256 tokenAmount
uint256 _orderID
uint256 chainID
returns: bool
transferOwnership 0xf2fde38b
address _newOwner
transferTokenOwnership 0x383fe467
address ofTokenAddress
address toAddress
returns: address, address
updateMinMaxTx 0xe74a3cad
uint256 newMinTx
uint256 newMaxTx
Recent Transactions
No transactions found for this address