Bitcoin and Altcoin Wallets 6.4.0

Address extends Post_Type
in package

Address class

Represents a blockchain address. An address contains at least a string, and possibly a second string. It is also associated with a currency.

Create a new deposit address for current user

Here we assign a hardcoded string. Normally we'd be getting this string from a wallet adapter.

$bitcoin = \DSWallets\get_first_currency_by_symbol( 'BTC' );
if ( $bitcoin ) {
	$my_address           = new Address;
	$my_address->type     = 'deposit';
	$my_address->currency = $bitcoin;
	$my_address->user     = new \WP_User( get_current_user_id() );
	$my_address->address  = '1ADDRESSSTRINGFOOBAR';
	$my_address->label    = 'This is my foobar deposit address';

	try {
		$my_address->save();
	} catch ( \Exception $e ) {
		error_log( 'Could not save address due to: ' . $e->getMessage() );
	}

	if ( $my_address->post_id ) {
		error_log( "Address was saved with post_id: $my_address->post_id" );
	}
}

Iterate over all addresses for a user, in this case the current user:

$user_id = get_current_user_id();
$addresses = DSWallets\get_all_addresses_for_user_id( $user_id );
foreach ( $addresses as $address ) {
	error_log( $address );
	// do stuff with each address here
}

Create a new deposit address, or retrieve the existing address from the DB, if the address string already exists. We then proceed to set a label to that address.

	$my_address          = new Address;
	$my_address->type    = 'deposit';
	$my_address->user    = new \WP_User( get_current_user_id() );
	$my_address->address = '1ADDRESSSTRINGFOOBAR';

	$address_that_definitely_exists        = \DSWallets\get_or_make_address( $my_address );
	$address_that_definitely_exists->label = 'This is my foo bar deposit address';

	try {
		$address_that_definitely_exists->save();
	} catch ( \Exception $e ) {
		error_log( 'Could not save new address label due to: ' . $e->getMessage() );
	}
Tags
since
6.0.0

Introduced.

author

Alexandros Georgiou info@dashed-slug.net

Table of Contents

$object_cache  : mixed
$post_id  : int
The id of the post that this object represents.
$address  : string|null
Base address string. Excludes any extra optional field.
$currency  : Currency|null
Currency associated with this address.
$extra  : string|null
Extra optional field (payment_id, memo, etc).
$label  : string|null
Optional label.
$tags  : array<string|int, ?string>
Array of tags.
$type  : string
Address type.
$user  : WP_User|null
User.
__get()  : mixed
Allows getting one of this object's fields.
__set()  : mixed
Sets a field of this Address object.
__toString()  : string
To String.
delete()  : mixed
Trashes this object in the DB.
from_values()  : Address
Factory to construct an address in one go from database values.
load()  : Address
Load an Address from its custom post entry.
load_many()  : array<string|int, Address>
Retrieve many addresses by their post_ids.
save()  : void
Saves this object to the DB.
render_bool_field()  : mixed
render_boolean_field()  : mixed
render_number_field()  : mixed
render_secret_field()  : mixed
render_select_field()  : mixed
render_string_field()  : mixed
render_strings_field()  : mixed

Properties

$address

Base address string. Excludes any extra optional field.

private string|null $address

$currency

Currency associated with this address.

private Currency|null $currency

Also points to the wallet.

$extra

Extra optional field (payment_id, memo, etc).

private string|null $extra

$label

Optional label.

private string|null $label

A user text associated with this address. This is only for display to the user. Free text string, stored on the post_title column in the DB.

$tags

Array of tags.

private array<string|int, ?string> $tags = null

Tags correspond to term slugs in the wallets_address_tags taxonomy.

$type

Address type.

private string $type

Can be deposit or withdrawal.

$user

User.

private WP_User|null $user

Deposits to the address count towards this user's balance.

Methods

__get()

Allows getting one of this object's fields.

public __get(string $name) : mixed
Parameters
$name : string

Can be: post_id, address, extra, type, currency, user, label.

Tags
see
Post_Type::__get()
Return values
mixed

__set()

Sets a field of this Address object.

public __set(string $name, mixed $value) : mixed
Parameters
$name : string

Can be: post_id, address, extra, type, currency, user, label.

$value : mixed

The value to set to the field.

Tags
see
Post_Type::__set()
throws
InvalidArgumentException

If value is not appropriate for field or if field does not exist.

Return values
mixed

delete()

Trashes this object in the DB.

public delete([mixed $force = false ]) : mixed
Parameters
$force : mixed = false
Tags
throws
Exception

If the object was not on the DB or if it could not be trashed.

Return values
mixed

from_values()

Factory to construct an address in one go from database values.

public static from_values(int $post_id, string $post_title, array<string|int, mixed> $postmeta, array<string|int, string> $tags) : Address
Parameters
$post_id : int

The ID of the post in the database

$post_title : string

The post's title to be used as address label

$postmeta : array<string|int, mixed>

Key-value pairs

$tags : array<string|int, string>

The slugs of the terms on taxonomy wallets_address_tags

Return values
Address

The constructed instance of the address object

load()

Load an Address from its custom post entry.

public static load(int $post_id) : Address
Parameters
$post_id : int

The post_id for the object to load.

Tags
inheritdoc
see
Post_Type::load()
throws
Exception

If not found or failed to instantiate.

Return values
Address

load_many()

Retrieve many addresses by their post_ids.

public static load_many(array<string|int, int> $post_ids[, string|null $unused = null ]) : array<string|int, Address>

Any post_ids not found are skipped silently.

Parameters
$post_ids : array<string|int, int>

The post IDs

$unused : string|null = null

Do not use. Ignored.

Tags
throws
Exception

If DB access or instantiation fails.

since
6.2.6

Introduced.

Return values
array<string|int, Address>

The addresses

save()

Saves this object to the DB.

public save() : void

If the object already had a post_id, then the post is updated. Else, a new custom post is created and the new post_id is assigned to the object.

Return values
void

render_bool_field()

protected static render_bool_field(mixed $schema, mixed $value) : mixed
Parameters
$schema : mixed
$value : mixed
Return values
mixed

render_boolean_field()

protected static render_boolean_field(mixed $schema, mixed $value) : mixed
Parameters
$schema : mixed
$value : mixed
Return values
mixed

render_number_field()

protected static render_number_field(mixed $schema, mixed $value) : mixed
Parameters
$schema : mixed
$value : mixed
Return values
mixed

render_secret_field()

protected static render_secret_field(mixed $schema, mixed $value) : mixed
Parameters
$schema : mixed
$value : mixed
Return values
mixed

render_select_field()

protected static render_select_field(mixed $schema, mixed $value) : mixed
Parameters
$schema : mixed
$value : mixed
Return values
mixed

render_string_field()

protected static render_string_field(mixed $schema, mixed $value) : mixed
Parameters
$schema : mixed
$value : mixed
Return values
mixed

render_strings_field()

protected static render_strings_field(mixed $schema, mixed $value) : mixed
Parameters
$schema : mixed
$value : mixed
Return values
mixed

Search results