{"id":48498536,"url":"https://github.com/cypherstack/fusiondart","last_synced_at":"2026-04-07T13:32:25.983Z","repository":{"id":184294001,"uuid":"671633225","full_name":"cypherstack/fusiondart","owner":"cypherstack","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-17T14:18:51.000Z","size":624,"stargazers_count":2,"open_issues_count":5,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-11-17T16:14:41.136Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cypherstack.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-07-27T19:15:01.000Z","updated_at":"2025-11-17T14:18:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"56ff469a-3aa2-4764-af08-7fd58c466390","html_url":"https://github.com/cypherstack/fusiondart","commit_stats":null,"previous_names":["cypherstack/fusiondart"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cypherstack/fusiondart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cypherstack%2Ffusiondart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cypherstack%2Ffusiondart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cypherstack%2Ffusiondart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cypherstack%2Ffusiondart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cypherstack","download_url":"https://codeload.github.com/cypherstack/fusiondart/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cypherstack%2Ffusiondart/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31515144,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-07T13:32:25.225Z","updated_at":"2026-04-07T13:32:25.972Z","avatar_url":"https://github.com/cypherstack.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FusionDart\n\nA Dart package for interacting with CashFusion servers.\n\n# WARNING\n\n - Do not test this with a wallet with tokens.\n\nDo not import/inject CashToken, SLP, and other non-standard outputs into this package.  Fusiondart itself does not currently check for tokens and their use in CashFusion transactions will almost certainly lead to their loss.\n\n## Features\n\n - [x] Testnet support\n - [x] Connect to CashFusion servers\n - [x] Send and receive CashFusion messages and status updates\n - [x] Register for CashFusion tiers\n - [x] Send and receive CashFusion transactions\n\n## Getting started\n\n### Building\n\nFusionDart uses [coinlib](https://github.com/peercoin/coinlib) for cryptocurrency calculations, which [needs to be built](https://github.com/peercoin/coinlib/tree/master/coinlib#building-for-linux).  Build it according to their documentation ([macOS instructions here](https://github.com/peercoin/coinlib/tree/master/coinlib#building-for-macos)).\n\n## Usage\n\nSee [cypherstack/stack_wallet/lib/services/mixins/fusion_wallet_interface.dart](https://github.com/cypherstack/stack_wallet/blob/fusion/lib/services/mixins/fusion_wallet_interface.dart) for a working example.  It follows this basic pattern:\n\n```dart\nimport 'package:fusiondart/fusiondart.dart';\n\n// Use server host and port which ultimately come from text fields.\nfusion.FusionParams serverParams = fusion.FusionParams(\n   serverHost: \"fusion.servo.cash\",\n   serverPort: 8789,\n   serverSsl: true,\n   genesisHashHex: \"000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943\",\n   mode: fusion.FusionMode.normal, // normal, fanout, or consolidate.\n   torForOver: false,\n   enableDebugPrint: true, // Set to false for release.\n);\n\n// Instantiate a Fusion object with custom parameters.\n_mainFusionObject = fusion.Fusion(serverParams);\n\n// Pass wallet functions to the Fusion object.\nawait _mainFusionObject!.initFusion(\n   getTransactionsByAddress: _getTransactionsByAddress,\n   getUnusedReservedChangeAddresses: _getUnusedReservedChangeAddresses,\n   getSocksProxyAddress: _getSocksProxyAddress,\n   getChainHeight: _getChainHeight,\n   updateStatusCallback: _updateStatus,\n   checkUtxoExists: _checkUtxoExists,\n   getTransactionJson: _getTransactionJson,\n   getPrivateKeyForPubKey: _getPrivateKeyForPubKey,\n   broadcastTransaction: _broadcastTransaction,\n   unReserveAddresses: _unReserveAddresses,\n);\n\n\n// Fuse UTXOs.\nawait _mainFusionObject!.fuse(\n   inputsFromWallet: coinList,\n   network: fusion.Utilities.testNet,\n);\n```\n\nYou will need to define the injected methods `_getTransactionsByAddress`, `_getUnusedReservedChangeAddresses`, etc.\n\n## Contributing\n\nSee https://github.com/cypherstack/fusiondart/issues for a list of issues to which you may contribute.  Please PR against the `staging` branch.\n\n## Building Dart Files from fusion.proto\n\nThis section describes how to generate Dart files based on the `fusion.proto` file.\n\n### Prerequisites\n\n- Ensure that you have the `protoc` command-line tool installed.\n- Navigate to the directory containing your `fusion.proto` file.\n\n### Steps\n\n1. Open your terminal and navigate to the directory where your `fusion.proto` file is located.\n2. Run the following script ([fusiondart/lib/src/protobuf/build-proto-fusion.sh](https://github.com/cypherstack/fusiondart/blob/staging/lib/src/protobuf/build-proto-fusion.sh)) to generate the Dart files:\n\n    ```bash\n    #!/bin/bash\n\n    # This script will build the dart files based on fusion.proto.\n\n    # The path to your .proto file. Adjust this if necessary.\n    PROTO_FILE=\"fusion.proto\"\n\n    # Run the protoc command.\n    protoc --dart_out=grpc:. $PROTO_FILE\n    ```\n\n3. After running the script, Dart files will be generated in the same directory as your `.proto` file.\n4. Manually copy any generated Dart files that you need to your `lib` folder.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcypherstack%2Ffusiondart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcypherstack%2Ffusiondart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcypherstack%2Ffusiondart/lists"}