Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 853 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 24273326 | 52 days ago | IN | 0 ETH | 0.00000185 | ||||
| Approve | 24191432 | 63 days ago | IN | 0 ETH | 0.00000315 | ||||
| Approve | 23017050 | 227 days ago | IN | 0 ETH | 0.00000729 | ||||
| Approve | 23017049 | 227 days ago | IN | 0 ETH | 0.00000721 | ||||
| Approve | 21236769 | 476 days ago | IN | 0 ETH | 0.000835 | ||||
| Approve | 21106280 | 494 days ago | IN | 0 ETH | 0.00019613 | ||||
| Approve | 20551571 | 572 days ago | IN | 0 ETH | 0.00002677 | ||||
| Approve | 20551564 | 572 days ago | IN | 0 ETH | 0.00004319 | ||||
| Transfer | 19906116 | 662 days ago | IN | 0 ETH | 0.00009992 | ||||
| Approve | 19861862 | 668 days ago | IN | 0 ETH | 0.00074721 | ||||
| Approve | 19859399 | 669 days ago | IN | 0 ETH | 0.00026785 | ||||
| Approve | 19859355 | 669 days ago | IN | 0 ETH | 0.0001872 | ||||
| Approve | 19859329 | 669 days ago | IN | 0 ETH | 0.00018758 | ||||
| Approve | 19854384 | 669 days ago | IN | 0 ETH | 0.00029477 | ||||
| Approve | 19851919 | 670 days ago | IN | 0 ETH | 0.00015767 | ||||
| Approve | 19830166 | 673 days ago | IN | 0 ETH | 0.00017862 | ||||
| Approve | 19817381 | 674 days ago | IN | 0 ETH | 0.00014598 | ||||
| Approve | 19817363 | 674 days ago | IN | 0 ETH | 0.00029594 | ||||
| Approve | 19809745 | 675 days ago | IN | 0 ETH | 0.00025212 | ||||
| Approve | 19808573 | 676 days ago | IN | 0 ETH | 0.00022253 | ||||
| Approve | 19787058 | 679 days ago | IN | 0 ETH | 0.00026405 | ||||
| Redeem | 19787055 | 679 days ago | IN | 0 ETH | 0.00041677 | ||||
| Approve | 19783829 | 679 days ago | IN | 0 ETH | 0.00063716 | ||||
| Approve | 19781670 | 679 days ago | IN | 0 ETH | 0.00035974 | ||||
| Approve | 19777080 | 680 days ago | IN | 0 ETH | 0.00052026 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
aBTCVault
Compiler Version
v0.8.22+commit.4fc1097e
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2024-01-31
*/
// File: @openzeppelin/contracts/interfaces/draft-IERC6093.sol
// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)
pragma solidity ^0.8.20;
/**
* @dev Standard ERC20 Errors
* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.
*/
interface IERC20Errors {
/**
* @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
* @param balance Current balance for the interacting account.
* @param needed Minimum amount required to perform a transfer.
*/
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
/**
* @dev Indicates a failure with the token `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
*/
error ERC20InvalidSender(address sender);
/**
* @dev Indicates a failure with the token `receiver`. Used in transfers.
* @param receiver Address to which tokens are being transferred.
*/
error ERC20InvalidReceiver(address receiver);
/**
* @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.
* @param spender Address that may be allowed to operate on tokens without being their owner.
* @param allowance Amount of tokens a `spender` is allowed to operate with.
* @param needed Minimum amount required to perform a transfer.
*/
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);
/**
* @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
* @param approver Address initiating an approval operation.
*/
error ERC20InvalidApprover(address approver);
/**
* @dev Indicates a failure with the `spender` to be approved. Used in approvals.
* @param spender Address that may be allowed to operate on tokens without being their owner.
*/
error ERC20InvalidSpender(address spender);
}
/**
* @dev Standard ERC721 Errors
* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.
*/
interface IERC721Errors {
/**
* @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.
* Used in balance queries.
* @param owner Address of the current owner of a token.
*/
error ERC721InvalidOwner(address owner);
/**
* @dev Indicates a `tokenId` whose `owner` is the zero address.
* @param tokenId Identifier number of a token.
*/
error ERC721NonexistentToken(uint256 tokenId);
/**
* @dev Indicates an error related to the ownership over a particular token. Used in transfers.
* @param sender Address whose tokens are being transferred.
* @param tokenId Identifier number of a token.
* @param owner Address of the current owner of a token.
*/
error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);
/**
* @dev Indicates a failure with the token `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
*/
error ERC721InvalidSender(address sender);
/**
* @dev Indicates a failure with the token `receiver`. Used in transfers.
* @param receiver Address to which tokens are being transferred.
*/
error ERC721InvalidReceiver(address receiver);
/**
* @dev Indicates a failure with the `operator`’s approval. Used in transfers.
* @param operator Address that may be allowed to operate on tokens without being their owner.
* @param tokenId Identifier number of a token.
*/
error ERC721InsufficientApproval(address operator, uint256 tokenId);
/**
* @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
* @param approver Address initiating an approval operation.
*/
error ERC721InvalidApprover(address approver);
/**
* @dev Indicates a failure with the `operator` to be approved. Used in approvals.
* @param operator Address that may be allowed to operate on tokens without being their owner.
*/
error ERC721InvalidOperator(address operator);
}
/**
* @dev Standard ERC1155 Errors
* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.
*/
interface IERC1155Errors {
/**
* @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
* @param balance Current balance for the interacting account.
* @param needed Minimum amount required to perform a transfer.
* @param tokenId Identifier number of a token.
*/
error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);
/**
* @dev Indicates a failure with the token `sender`. Used in transfers.
* @param sender Address whose tokens are being transferred.
*/
error ERC1155InvalidSender(address sender);
/**
* @dev Indicates a failure with the token `receiver`. Used in transfers.
* @param receiver Address to which tokens are being transferred.
*/
error ERC1155InvalidReceiver(address receiver);
/**
* @dev Indicates a failure with the `operator`’s approval. Used in transfers.
* @param operator Address that may be allowed to operate on tokens without being their owner.
* @param owner Address of the current owner of a token.
*/
error ERC1155MissingApprovalForAll(address operator, address owner);
/**
* @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
* @param approver Address initiating an approval operation.
*/
error ERC1155InvalidApprover(address approver);
/**
* @dev Indicates a failure with the `operator` to be approved. Used in approvals.
* @param operator Address that may be allowed to operate on tokens without being their owner.
*/
error ERC1155InvalidOperator(address operator);
/**
* @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.
* Used in batch transfers.
* @param idsLength Length of the array of token identifiers
* @param valuesLength Length of the array of token amounts
*/
error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);
}
// File: @openzeppelin/contracts/utils/Context.sol
// OpenZeppelin Contracts (last updated v5.0.0) (utils/Context.sol)
pragma solidity ^0.8.20;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
// File: @openzeppelin/contracts/access/Ownable.sol
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
pragma solidity ^0.8.20;
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* The initial owner is set to the address provided by the deployer. This can
* later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
/**
* @dev The caller account is not authorized to perform an operation.
*/
error OwnableUnauthorizedAccount(address account);
/**
* @dev The owner is not a valid owner account. (eg. `address(0)`)
*/
error OwnableInvalidOwner(address owner);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the address provided by the deployer as the initial owner.
*/
constructor(address initialOwner) {
if (initialOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(initialOwner);
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
if (owner() != _msgSender()) {
revert OwnableUnauthorizedAccount(_msgSender());
}
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
if (newOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
// File: @openzeppelin/contracts/token/ERC20/IERC20.sol
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.20;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev Returns the value of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the value of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves a `value` amount of tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, uint256 value) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets a `value` amount of tokens as the allowance of `spender` over the
* caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 value) external returns (bool);
/**
* @dev Moves a `value` amount of tokens from `from` to `to` using the
* allowance mechanism. `value` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address from, address to, uint256 value) external returns (bool);
}
// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Metadata.sol)
pragma solidity ^0.8.20;
/**
* @dev Interface for the optional metadata functions from the ERC20 standard.
*/
interface IERC20Metadata is IERC20 {
/**
* @dev Returns the name of the token.
*/
function name() external view returns (string memory);
/**
* @dev Returns the symbol of the token.
*/
function symbol() external view returns (string memory);
/**
* @dev Returns the decimals places of the token.
*/
function decimals() external view returns (uint8);
}
// File: @openzeppelin/contracts/token/ERC20/ERC20.sol
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/ERC20.sol)
pragma solidity ^0.8.20;
/**
* @dev Implementation of the {IERC20} interface.
*
* This implementation is agnostic to the way tokens are created. This means
* that a supply mechanism has to be added in a derived contract using {_mint}.
*
* TIP: For a detailed writeup see our guide
* https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
* to implement supply mechanisms].
*
* The default value of {decimals} is 18. To change this, you should override
* this function so it returns a different value.
*
* We have followed general OpenZeppelin Contracts guidelines: functions revert
* instead returning `false` on failure. This behavior is nonetheless
* conventional and does not conflict with the expectations of ERC20
* applications.
*
* Additionally, an {Approval} event is emitted on calls to {transferFrom}.
* This allows applications to reconstruct the allowance for all accounts just
* by listening to said events. Other implementations of the EIP may not emit
* these events, as it isn't required by the specification.
*/
abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {
mapping(address account => uint256) private _balances;
mapping(address account => mapping(address spender => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
/**
* @dev Sets the values for {name} and {symbol}.
*
* All two of these values are immutable: they can only be set once during
* construction.
*/
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
/**
* @dev Returns the name of the token.
*/
function name() public view virtual returns (string memory) {
return _name;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view virtual returns (string memory) {
return _symbol;
}
/**
* @dev Returns the number of decimals used to get its user representation.
* For example, if `decimals` equals `2`, a balance of `505` tokens should
* be displayed to a user as `5.05` (`505 / 10 ** 2`).
*
* Tokens usually opt for a value of 18, imitating the relationship between
* Ether and Wei. This is the default value returned by this function, unless
* it's overridden.
*
* NOTE: This information is only used for _display_ purposes: it in
* no way affects any of the arithmetic of the contract, including
* {IERC20-balanceOf} and {IERC20-transfer}.
*/
function decimals() public view virtual returns (uint8) {
return 18;
}
/**
* @dev See {IERC20-totalSupply}.
*/
function totalSupply() public view virtual returns (uint256) {
return _totalSupply;
}
/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(address account) public view virtual returns (uint256) {
return _balances[account];
}
/**
* @dev See {IERC20-transfer}.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - the caller must have a balance of at least `value`.
*/
function transfer(address to, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_transfer(owner, to, value);
return true;
}
/**
* @dev See {IERC20-allowance}.
*/
function allowance(address owner, address spender) public view virtual returns (uint256) {
return _allowances[owner][spender];
}
/**
* @dev See {IERC20-approve}.
*
* NOTE: If `value` is the maximum `uint256`, the allowance is not updated on
* `transferFrom`. This is semantically equivalent to an infinite approval.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function approve(address spender, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, value);
return true;
}
/**
* @dev See {IERC20-transferFrom}.
*
* Emits an {Approval} event indicating the updated allowance. This is not
* required by the EIP. See the note at the beginning of {ERC20}.
*
* NOTE: Does not update the allowance if the current allowance
* is the maximum `uint256`.
*
* Requirements:
*
* - `from` and `to` cannot be the zero address.
* - `from` must have a balance of at least `value`.
* - the caller must have allowance for ``from``'s tokens of at least
* `value`.
*/
function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, value);
_transfer(from, to, value);
return true;
}
/**
* @dev Moves a `value` amount of tokens from `from` to `to`.
*
* This internal function is equivalent to {transfer}, and can be used to
* e.g. implement automatic token fees, slashing mechanisms, etc.
*
* Emits a {Transfer} event.
*
* NOTE: This function is not virtual, {_update} should be overridden instead.
*/
function _transfer(address from, address to, uint256 value) internal {
if (from == address(0)) {
revert ERC20InvalidSender(address(0));
}
if (to == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(from, to, value);
}
/**
* @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`
* (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding
* this function.
*
* Emits a {Transfer} event.
*/
function _update(address from, address to, uint256 value) internal virtual {
if (from == address(0)) {
// Overflow check required: The rest of the code assumes that totalSupply never overflows
_totalSupply += value;
} else {
uint256 fromBalance = _balances[from];
if (fromBalance < value) {
revert ERC20InsufficientBalance(from, fromBalance, value);
}
unchecked {
// Overflow not possible: value <= fromBalance <= totalSupply.
_balances[from] = fromBalance - value;
}
}
if (to == address(0)) {
unchecked {
// Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.
_totalSupply -= value;
}
} else {
unchecked {
// Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.
_balances[to] += value;
}
}
emit Transfer(from, to, value);
}
/**
* @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).
* Relies on the `_update` mechanism
*
* Emits a {Transfer} event with `from` set to the zero address.
*
* NOTE: This function is not virtual, {_update} should be overridden instead.
*/
function _mint(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(address(0), account, value);
}
/**
* @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.
* Relies on the `_update` mechanism.
*
* Emits a {Transfer} event with `to` set to the zero address.
*
* NOTE: This function is not virtual, {_update} should be overridden instead
*/
function _burn(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidSender(address(0));
}
_update(account, address(0), value);
}
/**
* @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.
*
* This internal function is equivalent to `approve`, and can be used to
* e.g. set automatic allowances for certain subsystems, etc.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `owner` cannot be the zero address.
* - `spender` cannot be the zero address.
*
* Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.
*/
function _approve(address owner, address spender, uint256 value) internal {
_approve(owner, spender, value, true);
}
/**
* @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.
*
* By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by
* `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any
* `Approval` event during `transferFrom` operations.
*
* Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to
* true using the following override:
* ```
* function _approve(address owner, address spender, uint256 value, bool) internal virtual override {
* super._approve(owner, spender, value, true);
* }
* ```
*
* Requirements are the same as {_approve}.
*/
function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {
if (owner == address(0)) {
revert ERC20InvalidApprover(address(0));
}
if (spender == address(0)) {
revert ERC20InvalidSpender(address(0));
}
_allowances[owner][spender] = value;
if (emitEvent) {
emit Approval(owner, spender, value);
}
}
/**
* @dev Updates `owner` s allowance for `spender` based on spent `value`.
*
* Does not update the allowance value in case of infinite allowance.
* Revert if not enough allowance is available.
*
* Does not emit an {Approval} event.
*/
function _spendAllowance(address owner, address spender, uint256 value) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance != type(uint256).max) {
if (currentAllowance < value) {
revert ERC20InsufficientAllowance(spender, currentAllowance, value);
}
unchecked {
_approve(owner, spender, currentAllowance - value, false);
}
}
}
}
// File: aBTC.sol
pragma solidity ^0.8.0;
interface IBTC is IERC20{
function burn(uint256 amount) external;
function mint(address to, uint256 amount) external;
}
contract aBTCVault is ERC20, Ownable(msg.sender) {
IBTC public btcToken;
address public buybackWallet;
uint256 public mintFeePercent = 1; // Initial mint fee percentage
uint256 public redeemFeePercent = 2; // Initial redeem fee percentage
constructor(address _btcTokenAddress, address _buybackWallet) ERC20("aBTC Token", "aBTC") {
btcToken = IBTC(_btcTokenAddress);
buybackWallet = _buybackWallet;
}
function mint(uint256 btcAmount) external {
uint256 fee = calculateFee(btcAmount, mintFeePercent);
uint256 amountAfterFee = btcAmount - fee;
btcToken.transferFrom(address(msg.sender), address(this), btcAmount);
btcToken.burn(btcAmount);
_mint(msg.sender, amountAfterFee);
_mint(buybackWallet, fee);
}
function redeem(uint256 abtcAmount) external {
uint256 fee = calculateFee(abtcAmount, redeemFeePercent);
uint256 amountAfterFee = abtcAmount - fee;
_burn(msg.sender, abtcAmount);
btcToken.mint(msg.sender, amountAfterFee);
_mint(buybackWallet, fee);
}
function calculateFee(uint256 amount, uint256 feePercent) private pure returns (uint256) {
return amount * feePercent / 100;
}
function setMintFeePercent(uint256 _mintFeePercent) external onlyOwner {
require(_mintFeePercent >= 0 && _mintFeePercent <= 10, "Fee must be between 0% and 10%");
mintFeePercent = _mintFeePercent;
}
function setRedeemFeePercent(uint256 _redeemFeePercent) external onlyOwner {
require(_redeemFeePercent >= 0 && _redeemFeePercent <= 10, "Fee must be between 0% and 10%");
redeemFeePercent = _redeemFeePercent;
}
function setBuybackWallet(address _buybackWallet) external onlyOwner {
buybackWallet = _buybackWallet;
}
// Additional functions and safety checks can be added here.
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_btcTokenAddress","type":"address"},{"internalType":"address","name":"_buybackWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":[{"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":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"btcToken","outputs":[{"internalType":"contract IBTC","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"btcAmount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"abtcAmount","type":"uint256"}],"name":"redeem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"redeemFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_buybackWallet","type":"address"}],"name":"setBuybackWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintFeePercent","type":"uint256"}],"name":"setMintFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_redeemFeePercent","type":"uint256"}],"name":"setRedeemFeePercent","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":"value","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":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
6080604052600160085560026009553480156200001b57600080fd5b50604051620020f4380380620020f4833981810160405281019062000041919062000315565b336040518060400160405280600a81526020017f6142544320546f6b656e000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f61425443000000000000000000000000000000000000000000000000000000008152508160039081620000bf9190620005d6565b508060049081620000d19190620005d6565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001495760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620001409190620006ce565b60405180910390fd5b6200015a81620001e560201b60201c565b5081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620006eb565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002dd82620002b0565b9050919050565b620002ef81620002d0565b8114620002fb57600080fd5b50565b6000815190506200030f81620002e4565b92915050565b600080604083850312156200032f576200032e620002ab565b5b60006200033f85828601620002fe565b92505060206200035285828601620002fe565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003de57607f821691505b602082108103620003f457620003f362000396565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200045e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200041f565b6200046a86836200041f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004b7620004b1620004ab8462000482565b6200048c565b62000482565b9050919050565b6000819050919050565b620004d38362000496565b620004eb620004e282620004be565b8484546200042c565b825550505050565b600090565b62000502620004f3565b6200050f818484620004c8565b505050565b5b8181101562000537576200052b600082620004f8565b60018101905062000515565b5050565b601f82111562000586576200055081620003fa565b6200055b846200040f565b810160208510156200056b578190505b620005836200057a856200040f565b83018262000514565b50505b505050565b600082821c905092915050565b6000620005ab600019846008026200058b565b1980831691505092915050565b6000620005c6838362000598565b9150826002028217905092915050565b620005e1826200035c565b67ffffffffffffffff811115620005fd57620005fc62000367565b5b620006098254620003c5565b620006168282856200053b565b600060209050601f8311600181146200064e576000841562000639578287015190505b620006458582620005b8565b865550620006b5565b601f1984166200065e86620003fa565b60005b82811015620006885784890151825560018201915060208501945060208101905062000661565b86831015620006a85784890151620006a4601f89168262000598565b8355505b6001600288020188555050505b505050505050565b620006c881620002d0565b82525050565b6000602082019050620006e56000830184620006bd565b92915050565b6119f980620006fb6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063a0712d681161007c578063a0712d681461031a578063a9059cbb14610336578063db006a7514610366578063dd62ed3e14610382578063deab8aea146103b2578063f2fde38b146103d057610137565b806370a0823114610288578063715018a6146102b8578063756b2bdb146102c25780638da5cb5b146102de57806395d89b41146102fc57610137565b806318160ddd116100ff57806318160ddd146101e25780631d0adc071461020057806323b872dd1461021c5780632c2ee9c31461024c578063313ce5671461026a57610137565b80630541d0b01461013c57806306fdde031461015a578063074bc10114610178578063095ea7b3146101965780630d22a0b9146101c6575b600080fd5b6101446103ec565b6040516101519190611334565b60405180910390f35b6101626103f2565b60405161016f91906113df565b60405180910390f35b610180610484565b60405161018d9190611480565b60405180910390f35b6101b060048036038101906101ab919061150a565b6104aa565b6040516101bd9190611565565b60405180910390f35b6101e060048036038101906101db9190611580565b6104cd565b005b6101ea610530565b6040516101f79190611334565b60405180910390f35b61021a600480360381019061021591906115ad565b61053a565b005b610236600480360381019061023191906115da565b610586565b6040516102439190611565565b60405180910390f35b6102546105b5565b6040516102619190611334565b60405180910390f35b6102726105bb565b60405161027f9190611649565b60405180910390f35b6102a2600480360381019061029d91906115ad565b6105c4565b6040516102af9190611334565b60405180910390f35b6102c061060c565b005b6102dc60048036038101906102d79190611580565b610620565b005b6102e6610683565b6040516102f39190611673565b60405180910390f35b6103046106ad565b60405161031191906113df565b60405180910390f35b610334600480360381019061032f9190611580565b61073f565b005b610350600480360381019061034b919061150a565b6108ca565b60405161035d9190611565565b60405180910390f35b610380600480360381019061037b9190611580565b6108ed565b005b61039c6004803603810190610397919061168e565b6109d7565b6040516103a99190611334565b60405180910390f35b6103ba610a5e565b6040516103c79190611673565b60405180910390f35b6103ea60048036038101906103e591906115ad565b610a84565b005b60085481565b606060038054610401906116fd565b80601f016020809104026020016040519081016040528092919081815260200182805461042d906116fd565b801561047a5780601f1061044f5761010080835404028352916020019161047a565b820191906000526020600020905b81548152906001019060200180831161045d57829003601f168201915b5050505050905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806104b5610b0a565b90506104c2818585610b12565b600191505092915050565b6104d5610b24565b600081101580156104e75750600a8111155b610526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051d9061177a565b60405180910390fd5b8060088190555050565b6000600254905090565b610542610b24565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610591610b0a565b905061059e858285610bab565b6105a9858585610c3f565b60019150509392505050565b60095481565b60006012905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610614610b24565b61061e6000610d33565b565b610628610b24565b6000811015801561063a5750600a8111155b610679576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106709061177a565b60405180910390fd5b8060098190555050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546106bc906116fd565b80601f01602080910402602001604051908101604052809291908181526020018280546106e8906116fd565b80156107355780601f1061070a57610100808354040283529160200191610735565b820191906000526020600020905b81548152906001019060200180831161071857829003601f168201915b5050505050905090565b600061074d82600854610df9565b90506000818361075d91906117c9565b9050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b81526004016107be939291906117fd565b6020604051808303816000875af11580156107dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108019190611860565b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c68846040518263ffffffff1660e01b815260040161085d9190611334565b600060405180830381600087803b15801561087757600080fd5b505af115801561088b573d6000803e3d6000fd5b505050506108993382610e1b565b6108c5600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610e1b565b505050565b6000806108d5610b0a565b90506108e2818585610c3f565b600191505092915050565b60006108fb82600954610df9565b90506000818361090b91906117c9565b90506109173384610e9d565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff1660e01b815260040161097492919061188d565b600060405180830381600087803b15801561098e57600080fd5b505af11580156109a2573d6000803e3d6000fd5b505050506109d2600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610e1b565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a8c610b24565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610afe5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610af59190611673565b60405180910390fd5b610b0781610d33565b50565b600033905090565b610b1f8383836001610f1f565b505050565b610b2c610b0a565b73ffffffffffffffffffffffffffffffffffffffff16610b4a610683565b73ffffffffffffffffffffffffffffffffffffffff1614610ba957610b6d610b0a565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610ba09190611673565b60405180910390fd5b565b6000610bb784846109d7565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c395781811015610c29578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610c20939291906118b6565b60405180910390fd5b610c3884848484036000610f1f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cb15760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610ca89190611673565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d235760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610d1a9190611673565b60405180910390fd5b610d2e8383836110f6565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060648284610e0991906118ed565b610e13919061195e565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e8d5760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610e849190611673565b60405180910390fd5b610e99600083836110f6565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f0f5760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610f069190611673565b60405180910390fd5b610f1b826000836110f6565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f915760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610f889190611673565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110035760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610ffa9190611673565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156110f0578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516110e79190611334565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361114857806002600082825461113c919061198f565b9250508190555061121b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111d4578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016111cb939291906118b6565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361126457806002600082825403925050819055506112b1565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161130e9190611334565b60405180910390a3505050565b6000819050919050565b61132e8161131b565b82525050565b60006020820190506113496000830184611325565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561138957808201518184015260208101905061136e565b60008484015250505050565b6000601f19601f8301169050919050565b60006113b18261134f565b6113bb818561135a565b93506113cb81856020860161136b565b6113d481611395565b840191505092915050565b600060208201905081810360008301526113f981846113a6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061144661144161143c84611401565b611421565b611401565b9050919050565b60006114588261142b565b9050919050565b600061146a8261144d565b9050919050565b61147a8161145f565b82525050565b60006020820190506114956000830184611471565b92915050565b600080fd5b60006114ab82611401565b9050919050565b6114bb816114a0565b81146114c657600080fd5b50565b6000813590506114d8816114b2565b92915050565b6114e78161131b565b81146114f257600080fd5b50565b600081359050611504816114de565b92915050565b600080604083850312156115215761152061149b565b5b600061152f858286016114c9565b9250506020611540858286016114f5565b9150509250929050565b60008115159050919050565b61155f8161154a565b82525050565b600060208201905061157a6000830184611556565b92915050565b6000602082840312156115965761159561149b565b5b60006115a4848285016114f5565b91505092915050565b6000602082840312156115c3576115c261149b565b5b60006115d1848285016114c9565b91505092915050565b6000806000606084860312156115f3576115f261149b565b5b6000611601868287016114c9565b9350506020611612868287016114c9565b9250506040611623868287016114f5565b9150509250925092565b600060ff82169050919050565b6116438161162d565b82525050565b600060208201905061165e600083018461163a565b92915050565b61166d816114a0565b82525050565b60006020820190506116886000830184611664565b92915050565b600080604083850312156116a5576116a461149b565b5b60006116b3858286016114c9565b92505060206116c4858286016114c9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061171557607f821691505b602082108103611728576117276116ce565b5b50919050565b7f466565206d757374206265206265747765656e20302520616e64203130250000600082015250565b6000611764601e8361135a565b915061176f8261172e565b602082019050919050565b6000602082019050818103600083015261179381611757565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006117d48261131b565b91506117df8361131b565b92508282039050818111156117f7576117f661179a565b5b92915050565b60006060820190506118126000830186611664565b61181f6020830185611664565b61182c6040830184611325565b949350505050565b61183d8161154a565b811461184857600080fd5b50565b60008151905061185a81611834565b92915050565b6000602082840312156118765761187561149b565b5b60006118848482850161184b565b91505092915050565b60006040820190506118a26000830185611664565b6118af6020830184611325565b9392505050565b60006060820190506118cb6000830186611664565b6118d86020830185611325565b6118e56040830184611325565b949350505050565b60006118f88261131b565b91506119038361131b565b92508282026119118161131b565b915082820484148315176119285761192761179a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006119698261131b565b91506119748361131b565b9250826119845761198361192f565b5b828204905092915050565b600061199a8261131b565b91506119a58361131b565b92508282019050808211156119bd576119bc61179a565b5b9291505056fea2646970667358221220e1def82cdc41380338caf0ba3a482dcfeddbf75d15bbdfefcfc348e0fb9f21f664736f6c63430008160033000000000000000000000000bd6323a83b613f668687014e8a5852079494fb68000000000000000000000000ee4daac843bc54a23c80f5176882e7eeacde0371
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063a0712d681161007c578063a0712d681461031a578063a9059cbb14610336578063db006a7514610366578063dd62ed3e14610382578063deab8aea146103b2578063f2fde38b146103d057610137565b806370a0823114610288578063715018a6146102b8578063756b2bdb146102c25780638da5cb5b146102de57806395d89b41146102fc57610137565b806318160ddd116100ff57806318160ddd146101e25780631d0adc071461020057806323b872dd1461021c5780632c2ee9c31461024c578063313ce5671461026a57610137565b80630541d0b01461013c57806306fdde031461015a578063074bc10114610178578063095ea7b3146101965780630d22a0b9146101c6575b600080fd5b6101446103ec565b6040516101519190611334565b60405180910390f35b6101626103f2565b60405161016f91906113df565b60405180910390f35b610180610484565b60405161018d9190611480565b60405180910390f35b6101b060048036038101906101ab919061150a565b6104aa565b6040516101bd9190611565565b60405180910390f35b6101e060048036038101906101db9190611580565b6104cd565b005b6101ea610530565b6040516101f79190611334565b60405180910390f35b61021a600480360381019061021591906115ad565b61053a565b005b610236600480360381019061023191906115da565b610586565b6040516102439190611565565b60405180910390f35b6102546105b5565b6040516102619190611334565b60405180910390f35b6102726105bb565b60405161027f9190611649565b60405180910390f35b6102a2600480360381019061029d91906115ad565b6105c4565b6040516102af9190611334565b60405180910390f35b6102c061060c565b005b6102dc60048036038101906102d79190611580565b610620565b005b6102e6610683565b6040516102f39190611673565b60405180910390f35b6103046106ad565b60405161031191906113df565b60405180910390f35b610334600480360381019061032f9190611580565b61073f565b005b610350600480360381019061034b919061150a565b6108ca565b60405161035d9190611565565b60405180910390f35b610380600480360381019061037b9190611580565b6108ed565b005b61039c6004803603810190610397919061168e565b6109d7565b6040516103a99190611334565b60405180910390f35b6103ba610a5e565b6040516103c79190611673565b60405180910390f35b6103ea60048036038101906103e591906115ad565b610a84565b005b60085481565b606060038054610401906116fd565b80601f016020809104026020016040519081016040528092919081815260200182805461042d906116fd565b801561047a5780601f1061044f5761010080835404028352916020019161047a565b820191906000526020600020905b81548152906001019060200180831161045d57829003601f168201915b5050505050905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806104b5610b0a565b90506104c2818585610b12565b600191505092915050565b6104d5610b24565b600081101580156104e75750600a8111155b610526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051d9061177a565b60405180910390fd5b8060088190555050565b6000600254905090565b610542610b24565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610591610b0a565b905061059e858285610bab565b6105a9858585610c3f565b60019150509392505050565b60095481565b60006012905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610614610b24565b61061e6000610d33565b565b610628610b24565b6000811015801561063a5750600a8111155b610679576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106709061177a565b60405180910390fd5b8060098190555050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546106bc906116fd565b80601f01602080910402602001604051908101604052809291908181526020018280546106e8906116fd565b80156107355780601f1061070a57610100808354040283529160200191610735565b820191906000526020600020905b81548152906001019060200180831161071857829003601f168201915b5050505050905090565b600061074d82600854610df9565b90506000818361075d91906117c9565b9050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b81526004016107be939291906117fd565b6020604051808303816000875af11580156107dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108019190611860565b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c68846040518263ffffffff1660e01b815260040161085d9190611334565b600060405180830381600087803b15801561087757600080fd5b505af115801561088b573d6000803e3d6000fd5b505050506108993382610e1b565b6108c5600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610e1b565b505050565b6000806108d5610b0a565b90506108e2818585610c3f565b600191505092915050565b60006108fb82600954610df9565b90506000818361090b91906117c9565b90506109173384610e9d565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff1660e01b815260040161097492919061188d565b600060405180830381600087803b15801561098e57600080fd5b505af11580156109a2573d6000803e3d6000fd5b505050506109d2600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610e1b565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a8c610b24565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610afe5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610af59190611673565b60405180910390fd5b610b0781610d33565b50565b600033905090565b610b1f8383836001610f1f565b505050565b610b2c610b0a565b73ffffffffffffffffffffffffffffffffffffffff16610b4a610683565b73ffffffffffffffffffffffffffffffffffffffff1614610ba957610b6d610b0a565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610ba09190611673565b60405180910390fd5b565b6000610bb784846109d7565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c395781811015610c29578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610c20939291906118b6565b60405180910390fd5b610c3884848484036000610f1f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cb15760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610ca89190611673565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d235760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610d1a9190611673565b60405180910390fd5b610d2e8383836110f6565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060648284610e0991906118ed565b610e13919061195e565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e8d5760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610e849190611673565b60405180910390fd5b610e99600083836110f6565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f0f5760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610f069190611673565b60405180910390fd5b610f1b826000836110f6565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f915760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610f889190611673565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110035760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610ffa9190611673565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156110f0578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516110e79190611334565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361114857806002600082825461113c919061198f565b9250508190555061121b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111d4578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016111cb939291906118b6565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361126457806002600082825403925050819055506112b1565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161130e9190611334565b60405180910390a3505050565b6000819050919050565b61132e8161131b565b82525050565b60006020820190506113496000830184611325565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561138957808201518184015260208101905061136e565b60008484015250505050565b6000601f19601f8301169050919050565b60006113b18261134f565b6113bb818561135a565b93506113cb81856020860161136b565b6113d481611395565b840191505092915050565b600060208201905081810360008301526113f981846113a6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061144661144161143c84611401565b611421565b611401565b9050919050565b60006114588261142b565b9050919050565b600061146a8261144d565b9050919050565b61147a8161145f565b82525050565b60006020820190506114956000830184611471565b92915050565b600080fd5b60006114ab82611401565b9050919050565b6114bb816114a0565b81146114c657600080fd5b50565b6000813590506114d8816114b2565b92915050565b6114e78161131b565b81146114f257600080fd5b50565b600081359050611504816114de565b92915050565b600080604083850312156115215761152061149b565b5b600061152f858286016114c9565b9250506020611540858286016114f5565b9150509250929050565b60008115159050919050565b61155f8161154a565b82525050565b600060208201905061157a6000830184611556565b92915050565b6000602082840312156115965761159561149b565b5b60006115a4848285016114f5565b91505092915050565b6000602082840312156115c3576115c261149b565b5b60006115d1848285016114c9565b91505092915050565b6000806000606084860312156115f3576115f261149b565b5b6000611601868287016114c9565b9350506020611612868287016114c9565b9250506040611623868287016114f5565b9150509250925092565b600060ff82169050919050565b6116438161162d565b82525050565b600060208201905061165e600083018461163a565b92915050565b61166d816114a0565b82525050565b60006020820190506116886000830184611664565b92915050565b600080604083850312156116a5576116a461149b565b5b60006116b3858286016114c9565b92505060206116c4858286016114c9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061171557607f821691505b602082108103611728576117276116ce565b5b50919050565b7f466565206d757374206265206265747765656e20302520616e64203130250000600082015250565b6000611764601e8361135a565b915061176f8261172e565b602082019050919050565b6000602082019050818103600083015261179381611757565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006117d48261131b565b91506117df8361131b565b92508282039050818111156117f7576117f661179a565b5b92915050565b60006060820190506118126000830186611664565b61181f6020830185611664565b61182c6040830184611325565b949350505050565b61183d8161154a565b811461184857600080fd5b50565b60008151905061185a81611834565b92915050565b6000602082840312156118765761187561149b565b5b60006118848482850161184b565b91505092915050565b60006040820190506118a26000830185611664565b6118af6020830184611325565b9392505050565b60006060820190506118cb6000830186611664565b6118d86020830185611325565b6118e56040830184611325565b949350505050565b60006118f88261131b565b91506119038361131b565b92508282026119118161131b565b915082820484148315176119285761192761179a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006119698261131b565b91506119748361131b565b9250826119845761198361192f565b5b828204905092915050565b600061199a8261131b565b91506119a58361131b565b92508282019050808211156119bd576119bc61179a565b5b9291505056fea2646970667358221220e1def82cdc41380338caf0ba3a482dcfeddbf75d15bbdfefcfc348e0fb9f21f664736f6c63430008160033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000bd6323a83b613f668687014e8a5852079494fb68000000000000000000000000ee4daac843bc54a23c80f5176882e7eeacde0371
-----Decoded View---------------
Arg [0] : _btcTokenAddress (address): 0xbD6323A83b613F668687014E8A5852079494fB68
Arg [1] : _buybackWallet (address): 0xEE4daaC843Bc54a23C80f5176882e7EEacDe0371
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000bd6323a83b613f668687014e8a5852079494fb68
Arg [1] : 000000000000000000000000ee4daac843bc54a23c80f5176882e7eeacde0371
Deployed Bytecode Sourcemap
25889:1942:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26007:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16371:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25945:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18664:190;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27172:221;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17473:99;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27642:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19432:249;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26079:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17324:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17635:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9984:103;;;:::i;:::-;;27401:233;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9309:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16581:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26347:359;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17958:182;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26714:302;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18203:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25972:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10242:220;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26007:33;;;;:::o;16371:91::-;16416:13;16449:5;16442:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16371:91;:::o;25945:20::-;;;;;;;;;;;;;:::o;18664:190::-;18737:4;18754:13;18770:12;:10;:12::i;:::-;18754:28;;18793:31;18802:5;18809:7;18818:5;18793:8;:31::i;:::-;18842:4;18835:11;;;18664:190;;;;:::o;27172:221::-;9195:13;:11;:13::i;:::-;27281:1:::1;27262:15;:20;;:45;;;;;27305:2;27286:15;:21;;27262:45;27254:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;27370:15;27353:14;:32;;;;27172:221:::0;:::o;17473:99::-;17525:7;17552:12;;17545:19;;17473:99;:::o;27642:118::-;9195:13;:11;:13::i;:::-;27738:14:::1;27722:13;;:30;;;;;;;;;;;;;;;;;;27642:118:::0;:::o;19432:249::-;19519:4;19536:15;19554:12;:10;:12::i;:::-;19536:30;;19577:37;19593:4;19599:7;19608:5;19577:15;:37::i;:::-;19625:26;19635:4;19641:2;19645:5;19625:9;:26::i;:::-;19669:4;19662:11;;;19432:249;;;;;:::o;26079:35::-;;;;:::o;17324:84::-;17373:5;17398:2;17391:9;;17324:84;:::o;17635:118::-;17700:7;17727:9;:18;17737:7;17727:18;;;;;;;;;;;;;;;;17720:25;;17635:118;;;:::o;9984:103::-;9195:13;:11;:13::i;:::-;10049:30:::1;10076:1;10049:18;:30::i;:::-;9984:103::o:0;27401:233::-;9195:13;:11;:13::i;:::-;27516:1:::1;27495:17;:22;;:49;;;;;27542:2;27521:17;:23;;27495:49;27487:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;27609:17;27590:16;:36;;;;27401:233:::0;:::o;9309:87::-;9355:7;9382:6;;;;;;;;;;;9375:13;;9309:87;:::o;16581:95::-;16628:13;16661:7;16654:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16581:95;:::o;26347:359::-;26400:11;26414:39;26427:9;26438:14;;26414:12;:39::i;:::-;26400:53;;26464:22;26501:3;26489:9;:15;;;;:::i;:::-;26464:40;;26515:8;;;;;;;;;;;:21;;;26545:10;26566:4;26573:9;26515:68;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;26594:8;;;;;;;;;;;:13;;;26608:9;26594:24;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26629:33;26635:10;26647:14;26629:5;:33::i;:::-;26673:25;26679:13;;;;;;;;;;;26694:3;26673:5;:25::i;:::-;26389:317;;26347:359;:::o;17958:182::-;18027:4;18044:13;18060:12;:10;:12::i;:::-;18044:28;;18083:27;18093:5;18100:2;18104:5;18083:9;:27::i;:::-;18128:4;18121:11;;;17958:182;;;;:::o;26714:302::-;26770:11;26784:42;26797:10;26809:16;;26784:12;:42::i;:::-;26770:56;;26837:22;26875:3;26862:10;:16;;;;:::i;:::-;26837:41;;26891:29;26897:10;26909;26891:5;:29::i;:::-;26931:8;;;;;;;;;;;:13;;;26945:10;26957:14;26931:41;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26983:25;26989:13;;;;;;;;;;;27004:3;26983:5;:25::i;:::-;26759:257;;26714:302;:::o;18203:142::-;18283:7;18310:11;:18;18322:5;18310:18;;;;;;;;;;;;;;;:27;18329:7;18310:27;;;;;;;;;;;;;;;;18303:34;;18203:142;;;;:::o;25972:28::-;;;;;;;;;;;;;:::o;10242:220::-;9195:13;:11;:13::i;:::-;10347:1:::1;10327:22;;:8;:22;;::::0;10323:93:::1;;10401:1;10373:31;;;;;;;;;;;:::i;:::-;;;;;;;;10323:93;10426:28;10445:8;10426:18;:28::i;:::-;10242:220:::0;:::o;7425:98::-;7478:7;7505:10;7498:17;;7425:98;:::o;23491:130::-;23576:37;23585:5;23592:7;23601:5;23608:4;23576:8;:37::i;:::-;23491:130;;;:::o;9474:166::-;9545:12;:10;:12::i;:::-;9534:23;;:7;:5;:7::i;:::-;:23;;;9530:103;;9608:12;:10;:12::i;:::-;9581:40;;;;;;;;;;;:::i;:::-;;;;;;;;9530:103;9474:166::o;25207:487::-;25307:24;25334:25;25344:5;25351:7;25334:9;:25::i;:::-;25307:52;;25394:17;25374:16;:37;25370:317;;25451:5;25432:16;:24;25428:132;;;25511:7;25520:16;25538:5;25484:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;25428:132;25603:57;25612:5;25619:7;25647:5;25628:16;:24;25654:5;25603:8;:57::i;:::-;25370:317;25296:398;25207:487;;;:::o;20066:308::-;20166:1;20150:18;;:4;:18;;;20146:88;;20219:1;20192:30;;;;;;;;;;;:::i;:::-;;;;;;;;20146:88;20262:1;20248:16;;:2;:16;;;20244:88;;20317:1;20288:32;;;;;;;;;;;:::i;:::-;;;;;;;;20244:88;20342:24;20350:4;20356:2;20360:5;20342:7;:24::i;:::-;20066:308;;;:::o;10622:191::-;10696:16;10715:6;;;;;;;;;;;10696:25;;10741:8;10732:6;;:17;;;;;;;;;;;;;;;;;;10796:8;10765:40;;10786:8;10765:40;;;;;;;;;;;;10685:128;10622:191;:::o;27024:140::-;27104:7;27153:3;27140:10;27131:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;27124:32;;27024:140;;;;:::o;22186:213::-;22276:1;22257:21;;:7;:21;;;22253:93;;22331:1;22302:32;;;;;;;;;;;:::i;:::-;;;;;;;;22253:93;22356:35;22372:1;22376:7;22385:5;22356:7;:35::i;:::-;22186:213;;:::o;22727:211::-;22817:1;22798:21;;:7;:21;;;22794:91;;22870:1;22843:30;;;;;;;;;;;:::i;:::-;;;;;;;;22794:91;22895:35;22903:7;22920:1;22924:5;22895:7;:35::i;:::-;22727:211;;:::o;24472:443::-;24602:1;24585:19;;:5;:19;;;24581:91;;24657:1;24628:32;;;;;;;;;;;:::i;:::-;;;;;;;;24581:91;24705:1;24686:21;;:7;:21;;;24682:92;;24759:1;24731:31;;;;;;;;;;;:::i;:::-;;;;;;;;24682:92;24814:5;24784:11;:18;24796:5;24784:18;;;;;;;;;;;;;;;:27;24803:7;24784:27;;;;;;;;;;;;;;;:35;;;;24834:9;24830:78;;;24881:7;24865:31;;24874:5;24865:31;;;24890:5;24865:31;;;;;;:::i;:::-;;;;;;;;24830:78;24472:443;;;;:::o;20698:1135::-;20804:1;20788:18;;:4;:18;;;20784:552;;20942:5;20926:12;;:21;;;;;;;:::i;:::-;;;;;;;;20784:552;;;20980:19;21002:9;:15;21012:4;21002:15;;;;;;;;;;;;;;;;20980:37;;21050:5;21036:11;:19;21032:117;;;21108:4;21114:11;21127:5;21083:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;21032:117;21304:5;21290:11;:19;21272:9;:15;21282:4;21272:15;;;;;;;;;;;;;;;:37;;;;20965:371;20784:552;21366:1;21352:16;;:2;:16;;;21348:435;;21534:5;21518:12;;:21;;;;;;;;;;;21348:435;;;21751:5;21734:9;:13;21744:2;21734:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;21348:435;21815:2;21800:25;;21809:4;21800:25;;;21819:5;21800:25;;;;;;:::i;:::-;;;;;;;;20698:1135;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:126::-;1821:7;1861:42;1854:5;1850:54;1839:65;;1784:126;;;:::o;1916:60::-;1944:3;1965:5;1958:12;;1916:60;;;:::o;1982:142::-;2032:9;2065:53;2083:34;2092:24;2110:5;2092:24;:::i;:::-;2083:34;:::i;:::-;2065:53;:::i;:::-;2052:66;;1982:142;;;:::o;2130:126::-;2180:9;2213:37;2244:5;2213:37;:::i;:::-;2200:50;;2130:126;;;:::o;2262:138::-;2324:9;2357:37;2388:5;2357:37;:::i;:::-;2344:50;;2262:138;;;:::o;2406:155::-;2505:49;2548:5;2505:49;:::i;:::-;2500:3;2493:62;2406:155;;:::o;2567:246::-;2672:4;2710:2;2699:9;2695:18;2687:26;;2723:83;2803:1;2792:9;2788:17;2779:6;2723:83;:::i;:::-;2567:246;;;;:::o;2900:117::-;3009:1;3006;2999:12;3146:96;3183:7;3212:24;3230:5;3212:24;:::i;:::-;3201:35;;3146:96;;;:::o;3248:122::-;3321:24;3339:5;3321:24;:::i;:::-;3314:5;3311:35;3301:63;;3360:1;3357;3350:12;3301:63;3248:122;:::o;3376:139::-;3422:5;3460:6;3447:20;3438:29;;3476:33;3503:5;3476:33;:::i;:::-;3376:139;;;;:::o;3521:122::-;3594:24;3612:5;3594:24;:::i;:::-;3587:5;3584:35;3574:63;;3633:1;3630;3623:12;3574:63;3521:122;:::o;3649:139::-;3695:5;3733:6;3720:20;3711:29;;3749:33;3776:5;3749:33;:::i;:::-;3649:139;;;;:::o;3794:474::-;3862:6;3870;3919:2;3907:9;3898:7;3894:23;3890:32;3887:119;;;3925:79;;:::i;:::-;3887:119;4045:1;4070:53;4115:7;4106:6;4095:9;4091:22;4070:53;:::i;:::-;4060:63;;4016:117;4172:2;4198:53;4243:7;4234:6;4223:9;4219:22;4198:53;:::i;:::-;4188:63;;4143:118;3794:474;;;;;:::o;4274:90::-;4308:7;4351:5;4344:13;4337:21;4326:32;;4274:90;;;:::o;4370:109::-;4451:21;4466:5;4451:21;:::i;:::-;4446:3;4439:34;4370:109;;:::o;4485:210::-;4572:4;4610:2;4599:9;4595:18;4587:26;;4623:65;4685:1;4674:9;4670:17;4661:6;4623:65;:::i;:::-;4485:210;;;;:::o;4701:329::-;4760:6;4809:2;4797:9;4788:7;4784:23;4780:32;4777:119;;;4815:79;;:::i;:::-;4777:119;4935:1;4960:53;5005:7;4996:6;4985:9;4981:22;4960:53;:::i;:::-;4950:63;;4906:117;4701:329;;;;:::o;5036:::-;5095:6;5144:2;5132:9;5123:7;5119:23;5115:32;5112:119;;;5150:79;;:::i;:::-;5112:119;5270:1;5295:53;5340:7;5331:6;5320:9;5316:22;5295:53;:::i;:::-;5285:63;;5241:117;5036:329;;;;:::o;5371:619::-;5448:6;5456;5464;5513:2;5501:9;5492:7;5488:23;5484:32;5481:119;;;5519:79;;:::i;:::-;5481:119;5639:1;5664:53;5709:7;5700:6;5689:9;5685:22;5664:53;:::i;:::-;5654:63;;5610:117;5766:2;5792:53;5837:7;5828:6;5817:9;5813:22;5792:53;:::i;:::-;5782:63;;5737:118;5894:2;5920:53;5965:7;5956:6;5945:9;5941:22;5920:53;:::i;:::-;5910:63;;5865:118;5371:619;;;;;:::o;5996:86::-;6031:7;6071:4;6064:5;6060:16;6049:27;;5996:86;;;:::o;6088:112::-;6171:22;6187:5;6171:22;:::i;:::-;6166:3;6159:35;6088:112;;:::o;6206:214::-;6295:4;6333:2;6322:9;6318:18;6310:26;;6346:67;6410:1;6399:9;6395:17;6386:6;6346:67;:::i;:::-;6206:214;;;;:::o;6426:118::-;6513:24;6531:5;6513:24;:::i;:::-;6508:3;6501:37;6426:118;;:::o;6550:222::-;6643:4;6681:2;6670:9;6666:18;6658:26;;6694:71;6762:1;6751:9;6747:17;6738:6;6694:71;:::i;:::-;6550:222;;;;:::o;6778:474::-;6846:6;6854;6903:2;6891:9;6882:7;6878:23;6874:32;6871:119;;;6909:79;;:::i;:::-;6871:119;7029:1;7054:53;7099:7;7090:6;7079:9;7075:22;7054:53;:::i;:::-;7044:63;;7000:117;7156:2;7182:53;7227:7;7218:6;7207:9;7203:22;7182:53;:::i;:::-;7172:63;;7127:118;6778:474;;;;;:::o;7258:180::-;7306:77;7303:1;7296:88;7403:4;7400:1;7393:15;7427:4;7424:1;7417:15;7444:320;7488:6;7525:1;7519:4;7515:12;7505:22;;7572:1;7566:4;7562:12;7593:18;7583:81;;7649:4;7641:6;7637:17;7627:27;;7583:81;7711:2;7703:6;7700:14;7680:18;7677:38;7674:84;;7730:18;;:::i;:::-;7674:84;7495:269;7444:320;;;:::o;7770:180::-;7910:32;7906:1;7898:6;7894:14;7887:56;7770:180;:::o;7956:366::-;8098:3;8119:67;8183:2;8178:3;8119:67;:::i;:::-;8112:74;;8195:93;8284:3;8195:93;:::i;:::-;8313:2;8308:3;8304:12;8297:19;;7956:366;;;:::o;8328:419::-;8494:4;8532:2;8521:9;8517:18;8509:26;;8581:9;8575:4;8571:20;8567:1;8556:9;8552:17;8545:47;8609:131;8735:4;8609:131;:::i;:::-;8601:139;;8328:419;;;:::o;8753:180::-;8801:77;8798:1;8791:88;8898:4;8895:1;8888:15;8922:4;8919:1;8912:15;8939:194;8979:4;8999:20;9017:1;8999:20;:::i;:::-;8994:25;;9033:20;9051:1;9033:20;:::i;:::-;9028:25;;9077:1;9074;9070:9;9062:17;;9101:1;9095:4;9092:11;9089:37;;;9106:18;;:::i;:::-;9089:37;8939:194;;;;:::o;9139:442::-;9288:4;9326:2;9315:9;9311:18;9303:26;;9339:71;9407:1;9396:9;9392:17;9383:6;9339:71;:::i;:::-;9420:72;9488:2;9477:9;9473:18;9464:6;9420:72;:::i;:::-;9502;9570:2;9559:9;9555:18;9546:6;9502:72;:::i;:::-;9139:442;;;;;;:::o;9587:116::-;9657:21;9672:5;9657:21;:::i;:::-;9650:5;9647:32;9637:60;;9693:1;9690;9683:12;9637:60;9587:116;:::o;9709:137::-;9763:5;9794:6;9788:13;9779:22;;9810:30;9834:5;9810:30;:::i;:::-;9709:137;;;;:::o;9852:345::-;9919:6;9968:2;9956:9;9947:7;9943:23;9939:32;9936:119;;;9974:79;;:::i;:::-;9936:119;10094:1;10119:61;10172:7;10163:6;10152:9;10148:22;10119:61;:::i;:::-;10109:71;;10065:125;9852:345;;;;:::o;10203:332::-;10324:4;10362:2;10351:9;10347:18;10339:26;;10375:71;10443:1;10432:9;10428:17;10419:6;10375:71;:::i;:::-;10456:72;10524:2;10513:9;10509:18;10500:6;10456:72;:::i;:::-;10203:332;;;;;:::o;10541:442::-;10690:4;10728:2;10717:9;10713:18;10705:26;;10741:71;10809:1;10798:9;10794:17;10785:6;10741:71;:::i;:::-;10822:72;10890:2;10879:9;10875:18;10866:6;10822:72;:::i;:::-;10904;10972:2;10961:9;10957:18;10948:6;10904:72;:::i;:::-;10541:442;;;;;;:::o;10989:410::-;11029:7;11052:20;11070:1;11052:20;:::i;:::-;11047:25;;11086:20;11104:1;11086:20;:::i;:::-;11081:25;;11141:1;11138;11134:9;11163:30;11181:11;11163:30;:::i;:::-;11152:41;;11342:1;11333:7;11329:15;11326:1;11323:22;11303:1;11296:9;11276:83;11253:139;;11372:18;;:::i;:::-;11253:139;11037:362;10989:410;;;;:::o;11405:180::-;11453:77;11450:1;11443:88;11550:4;11547:1;11540:15;11574:4;11571:1;11564:15;11591:185;11631:1;11648:20;11666:1;11648:20;:::i;:::-;11643:25;;11682:20;11700:1;11682:20;:::i;:::-;11677:25;;11721:1;11711:35;;11726:18;;:::i;:::-;11711:35;11768:1;11765;11761:9;11756:14;;11591:185;;;;:::o;11782:191::-;11822:3;11841:20;11859:1;11841:20;:::i;:::-;11836:25;;11875:20;11893:1;11875:20;:::i;:::-;11870:25;;11918:1;11915;11911:9;11904:16;;11939:3;11936:1;11933:10;11930:36;;;11946:18;;:::i;:::-;11930:36;11782:191;;;;:::o
Swarm Source
ipfs://e1def82cdc41380338caf0ba3a482dcfeddbf75d15bbdfefcfc348e0fb9f21f6
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.