Flutter Pascal语言支持插件pascaldart的使用

Flutter Pascal语言支持插件pascaldart的使用

Pub CI

PascalDart 是一个用 Dart 编写的 PascalCoin 库,基于 PascalCoin 的 JavaScript 库 sbx 进行移植。它使用 PointyCastle API 进行 ECDSA、SHA256/512、HMAC 等加密操作。

特性

  • pascaldart/common.dart - 包含 PascalCoin 对象的基本模型,如 PrivateKeyPublicKeyAccountNameAccountNumber 等。还包含一些编码器对象,用于将这些对象编码为字节数组。

  • pascaldart/crypto.dart - 包含 PascalCoin 的加密功能。可以生成密钥、签名消息、加密/解密私钥 (PrivateKeyCrypt) 和加密/解密有效载荷 (EciesCrypt)。

  • pascaldart/signing.dart - 包含 PascalCoin 的签名功能。包括操作模型(例如 TransactionOperation)、将操作编码和解码为原始格式,并使用 PrivateKey 对操作进行签名。

  • pascaldart/json_rpc.dart - 实现了 PascalCoin 的 JSON-RPC API。

如果要导入所有内容,可以导入 pascaldart/pascaldart.dart

TODO

  • 支持多操作
  • 添加对 walletkeys.dat 文件的解析(来自桌面钱包)
  • 支持扩展 PASA (EPASA)
  • 支持更多的 JSON-RPC 方法
  • 支持 sect283k1 曲线
  • 增加更多测试(特别是针对操作摘要)

问题和贡献

欢迎并鼓励贡献。只需在此仓库上进行 Fork,然后进行更改并创建一个 Pull Request。

对于问题,请在 GitHub 上创建一个问题。


完整示例

以下是一个完整的示例代码,展示了如何使用 pascaldart 插件来生成密钥对、创建交易操作并执行操作。

import 'dart:typed_data';
import 'package:pascaldart/pascaldart.dart';

void main() async {
  // 生成密钥对
  KeyPair kp = Keys.generate(curve: Curve.getDefaultCurve());

  // 创建 RPC 客户端
  RPCClient rpc = RPCClient(rpcAddress: 'http://127.0.0.1:4003');

  // 创建交易操作并签名
  TransactionOperation op = TransactionOperation(
      sender: AccountNumber.fromInt(1234),
      target: AccountNumber.fromInt(1000),
      amount: Currency('10'))
    ..withNOperation(2)
    ..withPayload(PDUtil.stringToBytesUtf8('Hello Payload'))
    ..withFee(Currency('0'))
    ..sign(kp.privateKey);

  // 执行操作
  Uint8List encodedRawOp = RawOperationCoder.encodeToBytes(op);
  ExecuteOperationsRequest request =
      ExecuteOperationsRequest(rawOperations: PDUtil.byteToHex(encodedRawOp));

  RPCResponse rawResp = await rpc.makeRpcRequest(request);

  if (rawResp.isError) {
    // 处理错误
    ErrorResponse errResp = rawResp as ErrorResponse;
    print(errResp.errorMessage);
  } else {
    OperationsResponse opResp = rawResp as OperationsResponse;
    opResp.operations!.forEach((op) {
      print(op.amount!.toStringOpt());
    });
  }
}

更多关于Flutter Pascal语言支持插件pascaldart的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter Pascal语言支持插件pascaldart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


截至2023年,Flutter 主要支持 Dart 语言作为其开发语言,而 Pascal 并不是 Flutter 官方支持的语言。然而,社区中有一些尝试将 Pascal 与 Flutter 结合使用的项目,例如 pascaldart 插件。

pascaldart 是一个旨在将 Pascal 代码与 Dart 代码集成的项目,它允许开发者在 Flutter 应用中使用 Pascal 语言的部分功能。以下是一些关于如何使用 pascaldart 插件的基本步骤和注意事项:

1. 安装和配置

首先,你需要在你的 Flutter 项目中添加 pascaldart 插件。你可以通过修改 pubspec.yaml 文件来添加依赖:

dependencies:
  pascaldart: ^0.0.1  # 根据实际版本号进行替换

然后运行 flutter pub get 来获取依赖。

2. 编写 Pascal 代码

pascaldart 允许你在 Dart 代码中嵌入 Pascal 代码。你可以在 lib 目录下创建一个 .pas 文件,例如 example.pas,并编写 Pascal 代码:

program Example;

begin
  writeln('Hello from Pascal!');
end.

3. 在 Dart 中调用 Pascal 代码

你可以在 Dart 中调用 Pascal 代码。首先,导入 pascaldart 库,然后使用它来运行 Pascal 代码:

import 'package:pascaldart/pascaldart.dart';

void main() {
  // 运行 Pascal 代码
  PascalDart.run('example.pas');
}
回到顶部