xrplwin / xumm-sdk-php
A PHP SDK for Xumm by XRPLabs.
Installs: 8
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 9
pkg:composer/xrplwin/xumm-sdk-php
Requires
- php: ^8.2.0
- guzzlehttp/guzzle: ^7.4
- monolog/monolog: ^2.3|^3.0
- ratchet/pawl: ^0.4.1
- symfony/property-access: ^6.0
- symfony/serializer: ^6.0
- symfony/yaml: ^6.0|^7.0
- vlucas/phpdotenv: ^5.4
Requires (Dev)
- behat/behat: ^3.10
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: dev-master
- wyrihaximus/async-test-utilities: ^4.2
README
Xumm SDK (PHP)
This is fork of this repo
Requirements
- PHP 8.2 or higher
- Composer
- Docker and docker compose if you want to run acceptance tests
Installation
To install, run:
composer require xrplwin/xumm-sdk-php
Usage
First obtain Xumm API credentials by registering your app.
Initialize the Xumm SDK in your application:
// Either pass API credentials through the constructor $sdk = new XummSdk($apiKey, $apiSecret); // Or set them as environment variables. See .env.example for the expected variable names. // Note: the .env file is mostly applicable when contributing to the SDK itself. $sdk = XummSdk();
Each call on the SDK object will return a corresponding value object implementing the XummResponse interface.
Create a payload
To create a payload, pass an instance of Xrpl\XummSdkPhp\Payload to XummSdk::createPayload(). This instance
should hold an associative array transactionBody, and can hold some options and custom metadata. For more
elaborate documentation on how to construct a payload, please refer to
the API docs.
A simple example could look like this:
$sdk->createPayload( new Payload( transactionBody: [ 'TransactionType' => 'Payment', 'Destination' => 'rPdvC6ccq8hCdPKSPJkPmyZ4Mi1oG2FFkT', 'Fee' => '12' ], customMeta: new CustomMeta(identifier: 'my-custom-identifier'), ) );
This will return an instance of Xrpl\XummSdkPhp\Response\CreatePayload\CreatedPayload.
Subscribe to a payload
After you create a payload, you can pass the returned CreatedPayload to XummSdk::subscribe() to subscribe to live
payload status changes. This returns an instance of Xrpl\XummSdkPhp\Subscriber\Subscription.
Changes to a payload status include:
- The payload was by a XUMM App user (web page)
- The payload was by a XUMM App user (in the app)
- Payload expiration updates (remaining time in seconds)
- The payload was resolved by rejecting
- The payload was resolved by accepting (signing)
Status updates can be handled by passing a callback function as a second argument to XummSdk::subscribe.
The subscription ends by either:
- returning non-void from the callback function, or
- explicitly calling
Subscription::end().
Other methods
The SDK also supports the XUMM API's helper methods, such as ping, getCuratedAssets, and getRates. Again, these
will all return corresponding implementations of XummResponse.
Contributing
For contributing to development of this package, refer to CONTRIBUTING.md.