dart_chainsql_api 1.0.8 copy "dart_chainsql_api: ^1.0.8" to clipboard
dart_chainsql_api: ^1.0.8 copied to clipboard

A Dart library implementing chainsql wallet_propose and tx-sign api.

example/main.dart

import 'package:dart_chainsql_api/dart_chainsql_api.dart';
import 'package:dart_chainsql_api/src/utils/Util.dart';
import 'dart:convert' as convert;

void signTrustSet() {
    String userSec       = "xnoPBzXtMeMyMHUVTgbuqAfg1SUTb";
    String userAddress   = "zHb9CJAWyB4zj91VRWn96DkukG4bwdtyTh";
    // String issuerAddress = "zpMZ2H58HFPB5QTycMGWSXUeF47eA8jyd4";

    Map signMap = new Map();
    signMap['TransactionType'] = "TrustSet";
    signMap["Account"] = userAddress;
    signMap["Sequence"] = 29;
    signMap["Fee"] = "500";

    Map limitAmount = new Map();
    limitAmount['currency'] = "AAA";
    limitAmount['issuer'] = "zKQwdkkzpUQC9haHFEe2EwUsKHvvwwPHsv";
    limitAmount['value'] = "20000";
    signMap['LimitAmount'] = limitAmount;

    Map txMap = new Map();
    txMap['tx_json'] = signMap;
    var signTxInfo = Chainsql.signTx(txMap, userSec);
    String jsonStr = convert.json.encode(signTxInfo);
    print(jsonStr);

    var signTxInfoMap = signTxInfo.toJson();
    assert(signTxInfoMap.containsKey("tx_blob"));
    assert(signTxInfoMap.containsKey("hash"));

    assert(signTxInfoMap["tx_blob"]==
        "1200142280000000240000001D63D5871AFD498D00000000000000000000000000004141410000000000C9D3DF7EEF4EB20D2C4F23DB7736182F42FEF2086840000000000001F473210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CE13BA8F3E0C76558E4750463151AE73B8758CCD4B0ECCA6481B6580A0FBD82E022062A711B14D357B8CB9045F0EAB29E5A687E4BBDAE7D156FB84E1AF045BC9BB608114B5F762798A53D543A014CAF8B297CFF8F2F937E8");
    assert(signTxInfoMap["hash"]==
        "7FD7A05AAA8A32C23D9DF7793692E9E239FF21461D230CB4D2D6EDCB63498A0F");
}

void signPayment() {
    String srcSec = "xnoPBzXtMeMyMHUVTgbuqAfg1SUTb";
    String srcAddress = "zHb9CJAWyB4zj91VRWn96DkukG4bwdtyTh";
    String desAddress = "zpMZ2H58HFPB5QTycMGWSXUeF47eA8jyd4";

    Map signMap = new Map();
    signMap['TransactionType'] = "Payment";
    signMap['Amount'] = "1000";
    signMap["Account"] = srcAddress;
    signMap["Sequence"] = 1;
    signMap["Fee"] = "500";
    signMap["Destination"] = desAddress;

    Map txMap = new Map();
    txMap['tx_json'] = signMap;

    var signTxInfo = Chainsql.signTx(txMap, srcSec);
    String jsonStr = convert.json.encode(signTxInfo);
    print(jsonStr);

    var signTxInfoMap = signTxInfo.toJson();
    assert(signTxInfoMap.containsKey("tx_blob"));
    assert(signTxInfoMap.containsKey("hash"));

    assert(signTxInfoMap["tx_blob"]==
        "120000228000000024000000016140000000000003E86840000000000001F473210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD0207446304402203874C6642DFE53D6108964BE162E36D9809E198213221645DD282BADEBCF0AB40220133F403782CCE1DAB460A48C32F69352580F9058340A31ADE7EE94F4B80C4A988114B5F762798A53D543A014CAF8B297CFF8F2F937E883140EDBA2E944E1751BDA1FC4ACC7116C9B19394996");
    assert(signTxInfoMap["hash"]==
        "a24d1328315be59b70301ffaeb1f46c2b758f1c211e5f29c393114df4c1e30fb");
}


void generateWallet(){

    var walletInfo = Chainsql.generateAddress();
    String jsonStr = convert.json.encode(walletInfo);
    print(jsonStr);

    var walletMap = walletInfo.toJson();

    assert(walletMap.containsKey("address"));
    assert(walletMap.containsKey("secret"));
    assert(walletMap.containsKey("publicKey"));

    var walletFromSeed =
    Chainsql.generateAddressFromStr("xpkpdVP3LKhtdSfQX3uHNs1f7jN42");

    var walletFromSeedMap = walletFromSeed.toJson();


    assert(walletFromSeedMap.containsKey("address"));
    assert(walletFromSeedMap.containsKey("secret"));
    assert(walletFromSeedMap.containsKey("publicKey"));

    assert(walletFromSeedMap["address"] == "zKa9fxNT4KJwya73M4TYiCKxCQv97511Ve");
    assert(walletFromSeedMap["secret"] == "xpkpdVP3LKhtdSfQX3uHNs1f7jN42");
    assert(walletFromSeedMap["publicKey"] ==
        "cB4e4YpAbPTLyYHmHmEBpLHCNU9TQc8jBUgERoAoQJBkhxT5fRfw");
}

void  eciesTest(){

    String userSecret = "xnnUqirFepEKzVdsoBKkMf577upwT";

    Wallet wallet = Chainsql.generateAddressFromStr(userSecret);
    String plainText = "hello,you";
    var res = Chainsql.eciesEncrypt(convert.utf8.encode(plainText), wallet.publicKey);
    print("encrypted:" + Util.formatBytesAsHexString(res));
    var dec = Chainsql.eciesDecrypt(res, userSecret);
    var strDec = convert.utf8.decode(dec);
    print("decrypted:" + strDec);

    assert(plainText == strDec);

}

void main() {

    generateWallet();
   // signPayment();
    signTrustSet();

    eciesTest();
}
0
likes
25
pub points
40%
popularity

Publisher

unverified uploader

A Dart library implementing chainsql wallet_propose and tx-sign api.

Homepage

License

GPL-3.0 (LICENSE)

Dependencies

asn1lib, base58check, collection, crypto, cryptoutils, decimal, encrypt, hex, json_annotation, pointycastle, secp256k1cipher

More

Packages that depend on dart_chainsql_api