Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Register Usernam... | 7728388 | 2094 days ago | IN | 0 ETH | 0.00057577 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
UsernameRegistry
Compiler Version
v0.5.8+commit.23d335f2
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-05-09 */ /** * Source Code first verified at https://etherscan.io on Monday, April 15, 2019 (UTC) */ pragma solidity ^0.5.8; contract ERC20Interface { function balanceOf(address from) public view returns (uint256); function transferFrom(address from, address to, uint tokens) public returns (bool); function allowance(address owner, address spender) public view returns (uint256); function burn(uint256 amount) public; } contract UsernameRegistry { event Register(address indexed _owner, bytes32 _name, bytes32 _userId); ERC20Interface public manaToken; uint256 public price = 100000000000000000000; mapping (bytes32 => address) nameToAddress; mapping (bytes32 => address) userIdToAddress; mapping (address => bytes32) public name; address public owner; constructor(ERC20Interface _mana) public { manaToken = _mana; owner = msg.sender; } modifier onlyOwner { require(msg.sender == owner); _; } function registerUsername(address _targetAddress, bytes32 _name, bytes32 _userId) onlyOwner external { _requireBalance(); require(isNameAvailable(_name), "The name was already taken"); require(isUserIdAvailable(_userId), "The userId already has a name"); manaToken.transferFrom(_targetAddress, address(this), price); manaToken.burn(price); nameToAddress[_name] = _targetAddress; userIdToAddress[_userId] = _targetAddress; name[_targetAddress] = _name; emit Register(_targetAddress, _userId, _name); } function isNameAvailable(bytes32 _name) public view returns (bool) { return nameToAddress[_name] == address(0); } function isUserIdAvailable(bytes32 _name) public view returns (bool) { return userIdToAddress[_name] == address(0); } // Lack of security (set only owner) function setPrice(uint256 _price) onlyOwner public { price = _price; } function _requireBalance() internal view { require( manaToken.balanceOf(msg.sender) >= price, "Insufficient funds" ); require( manaToken.allowance(msg.sender, address(this)) >= price, "The contract is not authorized to use MANA on sender behalf" ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"name","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_name","type":"bytes32"}],"name":"isNameAvailable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_targetAddress","type":"address"},{"name":"_name","type":"bytes32"},{"name":"_userId","type":"bytes32"}],"name":"registerUsername","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"manaToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_price","type":"uint256"}],"name":"setPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"price","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_name","type":"bytes32"}],"name":"isUserIdAvailable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_mana","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":false,"name":"_name","type":"bytes32"},{"indexed":false,"name":"_userId","type":"bytes32"}],"name":"Register","type":"event"}]
Contract Creation Code
608060405268056bc75e2d6310000060015534801561001d57600080fd5b50604051602080610c8e8339810180604052602081101561003d57600080fd5b8101908080519060200190929190505050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610baf806100df6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b146101cd57806391b7f5ed14610217578063a035b1fe14610245578063ef36960c1461026357610088565b8063019848921461008d57806341f5947b146100e557806358c7c7ba1461012b57806374c97c9914610183575b600080fd5b6100cf600480360360208110156100a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506102a9565b6040518082815260200191505060405180910390f35b610111600480360360208110156100fb57600080fd5b81019080803590602001909291905050506102c1565b604051808215151515815260200191505060405180910390f35b6101816004803603606081101561014157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061032c565b005b61018b61076f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101d5610794565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102436004803603602081101561022d57600080fd5b81019080803590602001909291905050506107ba565b005b61024d61081e565b6040518082815260200191505060405180910390f35b61028f6004803603602081101561027957600080fd5b8101908080359060200190929190505050610824565b604051808215151515815260200191505060405180910390f35b60046020528060005260406000206000915090505481565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461038657600080fd5b61038e61088f565b610397826102c1565b610409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f546865206e616d652077617320616c72656164792074616b656e00000000000081525060200191505060405180910390fd5b61041281610824565b610484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f5468652075736572496420616c7265616479206861732061206e616d6500000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd84306001546040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561056257600080fd5b505af1158015610576573d6000803e3d6000fd5b505050506040513d602081101561058c57600080fd5b8101908080519060200190929190505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c686001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561061457600080fd5b505af1158015610628573d6000803e3d6000fd5b50505050826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167faa2ee3c1c8e3900aebab52b90459ef94d61e1bd49a89df54b1b503e7e7660bc38284604051808381526020018281526020019250505060405180910390a2505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461081457600080fd5b8060018190555050565b60015481565b60008073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050919050565b6001546000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561093057600080fd5b505afa158015610944573d6000803e3d6000fd5b505050506040513d602081101561095a57600080fd5b810190808051906020019092919050505010156109df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e73756666696369656e742066756e6473000000000000000000000000000081525060200191505060405180910390fd5b6001546000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015610ab457600080fd5b505afa158015610ac8573d6000803e3d6000fd5b505050506040513d6020811015610ade57600080fd5b81019080805190602001909291905050501015610b46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180610b49603b913960400191505060405180910390fd5b56fe54686520636f6e7472616374206973206e6f7420617574686f72697a656420746f20757365204d414e41206f6e2073656e64657220626568616c66a165627a7a723058200270878109c69d12847b741ee55c008d614dd697c62125578615a9590a127ad700290000000000000000000000000f5d2fb29fb7d3cfee444a200298f468908cc942
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b146101cd57806391b7f5ed14610217578063a035b1fe14610245578063ef36960c1461026357610088565b8063019848921461008d57806341f5947b146100e557806358c7c7ba1461012b57806374c97c9914610183575b600080fd5b6100cf600480360360208110156100a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506102a9565b6040518082815260200191505060405180910390f35b610111600480360360208110156100fb57600080fd5b81019080803590602001909291905050506102c1565b604051808215151515815260200191505060405180910390f35b6101816004803603606081101561014157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061032c565b005b61018b61076f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101d5610794565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102436004803603602081101561022d57600080fd5b81019080803590602001909291905050506107ba565b005b61024d61081e565b6040518082815260200191505060405180910390f35b61028f6004803603602081101561027957600080fd5b8101908080359060200190929190505050610824565b604051808215151515815260200191505060405180910390f35b60046020528060005260406000206000915090505481565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461038657600080fd5b61038e61088f565b610397826102c1565b610409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f546865206e616d652077617320616c72656164792074616b656e00000000000081525060200191505060405180910390fd5b61041281610824565b610484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f5468652075736572496420616c7265616479206861732061206e616d6500000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd84306001546040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561056257600080fd5b505af1158015610576573d6000803e3d6000fd5b505050506040513d602081101561058c57600080fd5b8101908080519060200190929190505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c686001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561061457600080fd5b505af1158015610628573d6000803e3d6000fd5b50505050826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167faa2ee3c1c8e3900aebab52b90459ef94d61e1bd49a89df54b1b503e7e7660bc38284604051808381526020018281526020019250505060405180910390a2505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461081457600080fd5b8060018190555050565b60015481565b60008073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050919050565b6001546000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561093057600080fd5b505afa158015610944573d6000803e3d6000fd5b505050506040513d602081101561095a57600080fd5b810190808051906020019092919050505010156109df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e73756666696369656e742066756e6473000000000000000000000000000081525060200191505060405180910390fd5b6001546000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015610ab457600080fd5b505afa158015610ac8573d6000803e3d6000fd5b505050506040513d6020811015610ade57600080fd5b81019080805190602001909291905050501015610b46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180610b49603b913960400191505060405180910390fd5b56fe54686520636f6e7472616374206973206e6f7420617574686f72697a656420746f20757365204d414e41206f6e2073656e64657220626568616c66a165627a7a723058200270878109c69d12847b741ee55c008d614dd697c62125578615a9590a127ad70029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000f5d2fb29fb7d3cfee444a200298f468908cc942
-----Decoded View---------------
Arg [0] : _mana (address): 0x0F5D2fB29fb7d3CFeE444a200298f468908cC942
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000f5d2fb29fb7d3cfee444a200298f468908cc942
Deployed Bytecode Sourcemap
448:1759:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;448:1759:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;727:40;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;727:40:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1523:119;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1523:119:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;963:556;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;963:556:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;554:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;770:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1809:76;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1809:76:0;;;;;;;;;;;;;;;;;:::i;:::-;;588:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1644:123;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1644:123:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;727:40;;;;;;;;;;;;;;;;;:::o;1523:119::-;1584:4;1636:1;1604:34;;:13;:20;1618:5;1604:20;;;;;;;;;;;;;;;;;;;;;:34;;;1597:41;;1523:119;;;:::o;963:556::-;941:5;;;;;;;;;;;927:19;;:10;:19;;;919:28;;;;;;1071:17;:15;:17::i;:::-;1103:22;1119:5;1103:15;:22::i;:::-;1095:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1171:26;1189:7;1171:17;:26::i;:::-;1163:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1244:9;;;;;;;;;;;:22;;;1267:14;1291:4;1298:5;;1244:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1244:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1244:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1244:60:0;;;;;;;;;;;;;;;;;1311:9;;;;;;;;;;;:14;;;1326:5;;1311:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1311:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1311:21:0;;;;1364:14;1341:13;:20;1355:5;1341:20;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;1412:14;1385:15;:24;1401:7;1385:24;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;1456:5;1433:4;:20;1438:14;1433:20;;;;;;;;;;;;;;;:28;;;;1484:14;1475:40;;;1500:7;1509:5;1475:40;;;;;;;;;;;;;;;;;;;;;;;;963:556;;;:::o;554:31::-;;;;;;;;;;;;;:::o;770:20::-;;;;;;;;;;;;;:::o;1809:76::-;941:5;;;;;;;;;;;927:19;;:10;:19;;;919:28;;;;;;1875:6;1867:5;:14;;;;1809:76;:::o;588:44::-;;;;:::o;1644:123::-;1707:4;1761:1;1727:36;;:15;:22;1743:5;1727:22;;;;;;;;;;;;;;;;;;;;;:36;;;1720:43;;1644:123;;;:::o;1889:315::-;1990:5;;1955:9;;;;;;;;;;;:19;;;1975:10;1955:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1955:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1955:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1955:31:0;;;;;;;;;;;;;;;;:40;;1937:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2108:5;;2058:9;;;;;;;;;;;:19;;;2078:10;2098:4;2058:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2058:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2058:46:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2058:46:0;;;;;;;;;;;;;;;;:55;;2040:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1889:315::o
Swarm Source
bzzr://0270878109c69d12847b741ee55c008d614dd697c62125578615a9590a127ad7
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.