simplicity_sdk
Simplicity-Block/simplicity_sdk open-source repository details.
- 星標
- 1
- 分支
- 0
- 最近推送(UTC)
- 2025年3月2日
- 專案狀態
- 未封存
原始 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:
- Check existing issues and pull requests
- Create an issue to discuss the change
- 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.
使用的依賴
依賴清單 4 項
- flutter
{"sdk":"flutter"} - http
^1.1.0 - flutter_test開發依賴
{"sdk":"flutter"} - flutter_lints開發依賴
^2.0.0
如何選擇適合專案的儲存庫?
先依使用情境篩選,再比較專案活躍情況,最後到原始儲存庫確認使用要求。
- 透過儲存庫名稱、作者或描述搜尋,再依技術分類縮小範圍。
- 綜合星標、分支與最近推送比較專案;星標反映社群關注,不保證品質。
- 使用前在 GitHub 確認 README、授權條款與 Issues。
來源與維護
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗