パッケージ、リポジトリ、アプリカテゴリを検索

GitHub リポジトリSimplicity-Block/simplicity_sdk

simplicity_sdk

Simplicity-Block/simplicity_sdk open-source repository details.

simplicity_sdk のプロジェクト画像
スター
1
フォーク
0
最終プッシュ(UTC)
2025/03/02
プロジェクト状態
公開中

元の README

以下は英語原文のスナップショットです。最新版は GitHub をご覧ください。

Simplicity SDK for Flutter

The official SDK for interacting with the Simplicity Blockchain, designed specifically for Flutter developers. This SDK simplifies the process of deploying smart contracts and interacting with their functions, abstracting complexities such as signature management.

The SDK supports smart contracts written in Simply-lang, a user-friendly programming language for the Simplicity Blockchain. With this package, you can focus on building innovative blockchain solutions without dealing with low-level details.

Learn more about Simply-lang and Simplicity Blockchain here:

Features

  • 🚀 Easy contract deployment
  • 🔄 Simple function calls
  • 🔐 Automatic signature handling
  • 🔑 Public key derivation
  • ⚡ Async/await support
  • 🛡️ Comprehensive error handling

Installation

To install the SDK, add it to your pubspec.yaml file:

dependencies:
  simplicity_sdk: ^1.0.0

Then, run:

flutter pub get

Quick Start

Initialize the SDK
import 'package:simplicity_sdk/simplicity_sdk.dart';

final sdk = SmartContractSDK();
Deploy a Contract
try {
  final deploymentResult = await sdk.deployContract(
    privateKey: 'your_private_key',
    contractName: 'MyWallet',
    contractCode: '''
      contract wallet with amount, address does
        deposit takes amount does
          save balance is balance + amount
          return balance
        .
      .
    ''',
  );
  
  print('Contract deployed at: ${deploymentResult.contractAddress}');
} on SmartContractException catch (e) {
  print('Deployment failed: $e');
}
Call Contract Functions
try {
  final callResult = await sdk.callContract(
    privateKey: 'your_private_key',
    contractAddress: 'contract_address',
    functionName: 'deposit',
    parameters: {'amount': 100},
  );
  
  print('Call result: ${callResult.result}');
} on SmartContractException catch (e) {
  print('Contract call failed: $e');
}

Advanced Usage

Custom Server Configuration

You can configure custom server URLs for both ECDSA and contract services:

final sdk = SmartContractSDK(
  ecdsaServerUrl: 'https://your-ecdsa-server.com',
  contractServerUrl: 'https://your-contract-server.com',
);
Error Handling

The SDK provides a custom SmartContractException for detailed error messages:

try {
  // SDK operations
} on SmartContractException catch (e) {
  print('Operation failed: ${e.message}');
} catch (e) {
  print('Unexpected error: $e');
}
Response Types
DeploymentResult
DeploymentResult {
  String contractAddress;    // The deployed contract's address
}
ContractCallResult
ContractCallResult {
  bool success;             // Whether the call was successful
  dynamic result;           // The function call result
}

Example Project

Check out the example directory for a complete sample project that demonstrates the features of the SDK.

Contributing

Contributions are welcome! If you encounter a bug or want to suggest a feature:

  1. Check existing issues and pull requests
  2. Create an issue to discuss the change
  3. Submit a pull request

Please read CONTRIBUTING.md for details on our code of conduct and development process.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Simplicity Block GitHub avatar
GitHub 作者

Simplicity Block ↗

Simplicity Blockchain: It's designed so anyone can effortlessly learn how blockchain works.

言語C++CMakeDartSwiftCHTMLKotlinObjective-C

使用している依存関係

依存関係一覧 4 件

  • flutter{"sdk":"flutter"}
  • http^1.1.0
  • flutter_test開発用{"sdk":"flutter"}
  • flutter_lints開発用^2.0.0

プロジェクトに合うリポジトリを選ぶには?

用途で絞り込み、開発状況を比較し、採用前に元のリポジトリで要件を確認しましょう。

  1. 名前・作者・説明で検索し、技術トピックで絞り込みます。
  2. スター、フォーク、最近のプッシュを比較します。スターは関心の目安であり、品質の保証ではありません。
  3. 利用前に GitHub で README、ライセンス、Issues を確認します。

情報源と管理

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗