/aptos-dart

Primary LanguageDartOtherNOASSERTION

APTOS DART SDK

This package provide functions base on typescript SDK and written by Dart.

Table of contents

  1. Installation

  2. Requirements

  3. Features

  4. Mnemonic

  5. Utilities

Requirements

Warning This package is running on Flutter 2.10.3, so please notice when install it.

Installation

Install from Github by add to pubspec.yaml

aptosdart:
    git:
      url: https://github.com/fewcha-wallet/aptos-dart.git
      ref: main

Import package to project

import 'package:aptosdart/sdk/aptos_dart_sdk.dart';

AptosDartSDK sdk=  AptosDartSDK(logStatus: LogStatus.show);

We also provide Log when calling API( include cURL, API request and response), this will help you to track the requests. If you don't want it, disable by:

enum LogStatus { hide, show }

AptosDartSDK sdk=  AptosDartSDK(logStatus: LogStatus.hide);

image

This package using Flutter Dio to handle API request.

Account

  • Create Account from Secret Phrase, Private key or create new Account
    • From Secret Phrase: we provide Utilities to convert Secret Phrase from string to Uint8List
            Uint8List  uint8list = MnemonicUtils.convertMnemonicToSeed(secretPhraseString);
             final account = await AptosClient().createAccount(privateKeyBytes: uint8list);
    • From Private key in Hex
            final account = await AptosClient().createAccount(privateKeyHex: privateKeyHex);
    • Create new Account
            final account =AptosAccount();
  • Minor functions
        final aptosAccount =AptosAccount();
          
        // Get Get public key in Hex
            aptosAccount.publicKeyInHex();
            
        // Get private key in Hex
            aptosAccount.privateKeyInHex();
            
        // Sign buffer
            aptosAccount.signBuffer(Uint8List buffer);
            
        // signature to Hex
            aptosAccount.signBuffer(String hexString);
          
  • Get Account detail
        // Get Account
           await AptosClient().getAccount(String address);
           
        // Get Account Resources
           await AptosClient().getAccountResources(String address);
           
        // Get Account Resources By Type
           await AptosClient().getResourcesByType({required String address, required String resourceType});

Transaction

     // Check if transaction is pending
        await AptosClient().transactionPending(String txnHashOrVersion);
     
     // Check wait for transaction processing
        await AptosClient().waitForTransaction(String txnHashOrVersion);
       
    //  Get Transactions
        await AptosClient().getTransactions({int start = 0, int limit = 10});
        
    //  Submit Transaction
        await AptosClient().submitTransaction(Transaction transaction);
         
    //  Simulate Transaction
        await AptosClient().simulateTransaction(Transaction transaction);
        
    //  Get Account Transactions
        await AptosClient().getAccountTransactions(String address,{int start = 0, int limit = 10});
         
    //  Get Transactions by Hash
        await AptosClient().getTransactionByHash(String txnHashOrVersion);
         
    //  Get Transactions by Version
        await AptosClient().getTransactionByVersion(String txnHashOrVersion);
         
     // Get Create Signing Message
        await AptosClient().createSigningMessage(Transaction transaction);
        
     // Generate Transaction
        await AptosClient().generateTransaction(String address,Payload payload,String maximumUserBalance, {String? gasUnitPrice});
     
     // Sign Transaction
        await AptosClient().signTransaction(AptosAccount aptosAccount, Transaction transaction);

State

    await AptosClient().getTableItem({required String tableHandle,required String eventHandleStruct,required String fieldName,});

Faucet

    final aptosAccount =AptosAccount();
    final result = await FaucetClient().funcAccount(aptosAccount.address(), 1000);

Event

     // Get Events By Event Handle
      await AptosClient().getEventsByEventHandle({required String address,required String eventHandleStruct,required String fieldName});
     // Get Events By Event Key
      await AptosClient().getEventsByEventKey({required String eventKey});
        

Ledger

      await AptosClient().getLedgerInformation();

Mnemonic

We create this class to create Mnemonic and convert Private key to Mnemonic

     // Generate a Random Mnemonic list
     List<String> listMnemonic= MnemonicUtils.generateMnemonicList();
     
     // Convert Private Key in Hex To Mnemonic
     String mnemonic= MnemonicUtils.convertPrivateKeyHexToMnemonic(String privateKeyHex);
     

Utilities

This Utilities will help you to create Buffer, get Expiration TimeStamp for a transaction, generate an invalid Signature to simulate a Transaction

     // Create Buffer
     List<String> listBuffer=Utilities.buffer(List<int> list)
     
     // Get Expiration TimeStamp for a transaction
     String timeStamp= Utilities.getExpirationTimeStamp();
     
      // Generate an invalid Signature to simulate a Transaction
     String timeStamp= Utilities.generateStringFromUInt8List();