xelis_dart_sdk 0.28.0 copy "xelis_dart_sdk: ^0.28.0" to clipboard
xelis_dart_sdk: ^0.28.0 copied to clipboard

Software Development Kit in Dart to build Apps for the XELIS Blockchain.

XELIS-DART-SDK #

Software Development Kit in Dart for XELIS Blockchain.

Features #

JSON-RPC Clients to interact with daemon and wallet API.

JSON-RPC methods #

Daemon

  • getVersion
  • getInfo
  • getHeight
  • getTopoHeight
  • getStableHeight
  • getStableTopoHeight
  • getBlockTemplate
  • getBlockAtTopoHeight
  • getBlocksAtHeight
  • getBlockByHash
  • getTopBlock
  • getNonce
  • getNonceAtTopoHeight
  • getBalance
  • getStableBalance
  • getBalanceAtTopoHeight
  • hasBalance
  • getAsset
  • getAssets
  • countAssets
  • countTransactions
  • getTips
  • p2pStatus
  • getDagOrder
  • submitTransaction
  • getTransaction
  • getTransactions
  • getMempool
  • getMempoolSummary
  • submitBlock
  • getBlocksRangeByTopoHeight
  • getBlocksRangeByHeight
  • getAccounts
  • countAccounts
  • getPeers
  • getAccountHistory
  • getAccountAssets
  • hasNonce
  • isTxExecutedInBlock
  • getDevFeeThresholds
  • getSizeOnDisk
  • getMempoolCache
  • isAccountRegistered
  • getAccountRegistrationTopoheight
  • getTransactionExecutor
  • getDifficulty
  • validateAddress
  • splitAddress
  • extractKeyFromAddress
  • getMinerWork
  • getHardForks
  • makeIntegratedAddress
  • decryptExtraData
  • getMultisig
  • getMultisigAtTopoheight
  • hasMultisig
  • hasMultisigAtTopoheight
  • countContracts
  • getEstimatedFeeRates
  • getContractOutputs
  • getContractModule
  • getContractData

Wallet

  • getVersion
  • getNetwork
  • getNonce
  • getTopoHeight
  • getAddress
  • splitAddress
  • rescan
  • getBalance
  • hasBalance
  • getTrackedAssets
  • getAssetPrecision
  • getTransaction
  • buildTransaction
  • buildTransactionOffline
  • buildUnsignedTransaction
  • finalizeUnsignedTransaction
  • signUnsignedTransaction
  • listTransactions
  • isOnline
  • signData
  • estimateFees
  • estimateExtraDataSize
  • clearTxCache
  • decryptExtraData
  • decryptCiphertext
  • getAssets
  • getAsset
  • dumpTransaction

Websocket Events #

Subscribe and listen to events.

Daemon

  • newBlock
  • blockOrdered
  • blockOrphaned
  • stableHeightChanged
  • transactionAddedInMempool
  • transactionExecuted
  • transactionOrphaned
  • newAsset
  • peerConnected
  • peerDisconnected
  • peerPeerListUpdated
  • peerStateUpdated
  • peerPeerDisconnected
  • invokeContract
  • contractTransfer
  • contractEvent
  • deployContract

Wallet

  • newTopoheight
  • newAsset
  • newTransaction
  • balanceChanged
  • rescan
  • Online
  • Offline
  • historySynced
  • syncError
  • TrackAsset
  • UntrackAsset

Usage #

Use DaemonClient as shown below to interact with a XELIS node.

import 'package:xelis_dart_sdk/xelis_dart_sdk.dart';

Future<void> main() async {
  try {
    // Create a daemon client repository which will be used 
    // to interact with a Xelis node.
    final daemonRepository = DaemonClient(
      endPoint: localhostAddress,
      secureWebSocket: false,
    );

    // You must initiate the connection first.
    daemonRepository.connect();

    // You can use the repository to make requests to the daemon.
    var res = await daemonRepository.getInfo();
    print('result: $res');

    // Another example with a RPC request that requires parameters.
    res = await dr.getBlockAtTopoHeight(
        GetBlockAtTopoHeightParams(topoHeight: 1750, includeTxs: true));
    print('result: $res');

    // You can also use the repository to listen to events.
    daemonRepository
      ..onNewBlock((block) {
        print('new block: $block');
      })

    // You can add multiple callbacks for the same event.
    // They will be called in the order they were added.
      ..onNewBlock((block) {
        print('another callback for new block: $block');
      })

    // Here with another events.
      ..onBlockOrdered((block) {
        print('block ordered: $block');
      })
      ..onTransactionAddedInMempool((tx) {
        print('tx added in mempool: $tx');
      })
      ..onTransactionExecuted((tx) {
        print('tx executed: $tx');
      })

    // You can also unsubscribe from the events.
    // This will remove all the callbacks for the event.
      ..unsubscribeFromNewBlock()

    // You can unsubscribe from all the events at once.
      ..unsubscribeFromAll()

    // You can also add callbacks for the connection events ...
      ..onOpen(() {
        print('channel opened');
      })
      ..onClose(() {
        print('channel closed');
      })
      ..onError((error) {
        print('channel error: $error');
      });
  } catch (e) {
    print(e);
  }
  // exit(0);
}
1
likes
150
points
257
downloads

Publisher

unverified uploader

Weekly Downloads

Software Development Kit in Dart to build Apps for the XELIS Blockchain.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

convert, freezed_annotation, json_annotation, json_rpc_2, jsontool, logging, very_good_analysis, web_socket_client

More

Packages that depend on xelis_dart_sdk