|
|
|
# Address
|
|
|
|
|
|
|
|
Represents a bitcoin Address. Addresses became the most popular way to make
|
|
|
|
bitcoin transactions. See [the official Bitcoin
|
|
|
|
Wiki](https://en.bitcoin.it/wiki/Address) for more information.
|
|
|
|
|
|
|
|
|
|
|
|
## Instantiate an Address
|
|
|
|
|
|
|
|
To be able to receive bitcoin an address is needed, here is how to create an
|
|
|
|
address from a new private key. Please see the [`PrivateKey`](PrivateKey.md) docs
|
|
|
|
for more information about exporting and saving a key.
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
|
|
|
|
var PrivateKey = require('bitcore/lib/privatekey');
|
|
|
|
var privateKey = new PrivateKey();
|
|
|
|
var address = privateKey.toAddress();
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
You can also instantiate an address from a String or PublicKey.
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
|
|
|
|
var Address = require('bitcore/lib/address');
|
|
|
|
var PublicKey = require('bitcore/lib/publickey');
|
|
|
|
var Networks = require('bitcore/lib/networks');
|
|
|
|
|
|
|
|
// from a string
|
|
|
|
var address = Address.fromString('mwkXG8NnB2snbqWTcpNiK6qqGHm1LebHDc');
|
|
|
|
|
|
|
|
// a default network address from a public key
|
|
|
|
var publicKey = PublicKey(privateKey);
|
|
|
|
var address = Address.fromPublicKey(publicKey);
|
|
|
|
|
|
|
|
// a testnet address from a public key
|
|
|
|
var publicKey = PublicKey(privateKey);
|
|
|
|
var address = Address.fromPublicKey(publicKey, Networks.testnet);
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
## Validating an Address
|
|
|
|
|
|
|
|
The main use that we expect you'll have for the `Address` class in bitcore is
|
|
|
|
validating that an address is a valid one, what type of address it is (you may
|
|
|
|
be interested on knowning if the address is a simple "pay to public key hash"
|
|
|
|
address or a "pay to script hash" address) and what network does the address
|
|
|
|
belong to.
|
|
|
|
|
|
|
|
The code to do these validations looks like this:
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
|
|
|
|
// validate an address
|
|
|
|
if (Address.isValid(input){
|
|
|
|
...
|
|
|
|
}
|
|
|
|
|
|
|
|
// validate that an input field is a valid testnet address
|
|
|
|
if (Address.isValid(input, Networks.testnet){
|
|
|
|
...
|
|
|
|
}
|
|
|
|
|
|
|
|
// validate that an input field is a valid livenet pubkeyhash
|
|
|
|
if (Address.isValid(input, Networks.livenet, Address.Pay2PubKeyHash){
|
|
|
|
...
|
|
|
|
}
|
|
|
|
|
|
|
|
// get the specific validation error that can occurred
|
|
|
|
var error = Address.getValidationError(input, Networks.testnet);
|
|
|
|
if (error) {
|
|
|
|
// handle the error
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
```
|