Algorand 0.1.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package Algorand --version 0.1.1                
NuGet\Install-Package Algorand -Version 0.1.1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Algorand" Version="0.1.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Algorand --version 0.1.1                
#r "nuget: Algorand, 0.1.1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Algorand as a Cake Addin
#addin nuget:?package=Algorand&version=0.1.1

// Install Algorand as a Cake Tool
#tool nuget:?package=Algorand&version=0.1.1                

大家期待的.Net版的Algorand SDK终于上线了,大家和我一起来尝尝鲜吧。

  1. 依赖

本类库依赖于.net core 2.0,所以理论上大家可以在任何支持平台.net core的平台上使用该类库。

  1. 如何引用

打开NuGet包管理器搜索“Algorand”或者使用命令行:

Install-Package Algorand -Version 0.1.0
  1. 快速开始
string ALGOD_API_ADDR = "your algod api address";
//string ALGOD_API_ADDR = "http://hackathon.algodev.network:9100";  //hackathon
string ALGOD_API_TOKEN = "your algod api token"; //find in the algod.token
//string ALGOD_API_TOKEN = "ef920e2e7e002953f4b29a8af720efe8e4ecc75ff102b165e0472834b25832c1";
AlgodApi algodApiInstance = new AlgodApi(ALGOD_API_ADDR, ALGOD_API_TOKEN);

然后你就可以从Algorand上获取信息了:

try
{
    Supply supply = algodApiInstance.GetSupply();
    Console.WriteLine("Total Algorand Supply: " + supply.TotalMoney);
    Console.WriteLine("Online Algorand Supply: " + supply.OnlineMoney);
}
catch (ApiException e)
{
    Console.WriteLine("Exception when calling algod#getSupply: " + e.Message);
}
ulong? feePerByte;
string genesisID;
Digest genesisHash;
ulong? firstRound = 301;
try
{
    TransactionParams transParams = algodApiInstance.TransactionParams();
    feePerByte = transParams.Fee;
    genesisHash = new Digest(Convert.FromBase64String(transParams.Genesishashb64));
    genesisID = transParams.GenesisID;
    Console.WriteLine("Suggested Fee: " + feePerByte);
    NodeStatus s = algodApiInstance.GetStatus();
    firstRound = s.LastRound;
    Console.WriteLine("Current Round: " + firstRound);
}
catch (ApiException e)
{
    throw new Exception("Could not get params", e);
}

为了做更多的事,你必须有一个账号。你可以用Account acc = new Account();来创建一个随机的账号,也可以用Mnemonic来创建帐户,下面的例子使用Mnemonic来创建一个账户,并向另一个帐号发送一定量的Algo:

ulong? amount = 100000;
ulong? lastRound = firstRound + 1000; // 1000 is the max tx window
string SRC_ACCOUNT = "typical permit hurdle hat song detail cattle merge oxygen crowd arctic cargo smooth fly rice vacuum lounge yard frown predict west wife latin absent cup";
Account src = new Account(SRC_ACCOUNT);
Console.WriteLine("My account address is:" + src.Address.ToString());
string DEST_ADDR = "KV2XGKMXGYJ6PWYQA5374BYIQBL3ONRMSIARPCFCJEAMAHQEVYPB7PL3KU";
Transaction tx = new Transaction(src.Address, new Address(DEST_ADDR), amount, firstRound, lastRound, genesisID, genesisHash);
//将数据发送到区块链之前先要进行签名
SignedTransaction signedTx = src.SignTransactionWithFeePerByte(tx, feePerByte);
Console.WriteLine("Signed transaction with txid: " + signedTx.transactionID);
// send the transaction to the network
try
{
    //先对数据进行编码
    var encodedMsg = Algorand.Encoder.EncodeToMsgPack(signedTx);    
    TransactionID id = algodApiInstance.RawTransaction(encodedMsg);
    Console.WriteLine("Successfully sent tx with id: " + id.TxId);
}
catch (ApiException e)
{
    // This is generally expected, but should give us an informative error message.
    Console.WriteLine("Exception when calling algod#rawTransaction: " + e.Message);
}

这样我们就完成了一次转帐,是不是很简单。

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Algorand:

Package Downloads
Swisschain.Sirius.Sdk.Crypto

Package Description

Quantoz.Nexus.Sdk.Token

Sdk for interacting with the Quantoz Nexus token environment.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.2.1 22,985 12/8/2021
0.2.0.9 24,938 11/17/2021
0.2.0.8 1,984 9/23/2021
0.2.0.7 1,433 7/21/2021
0.2.0.6 2,331 6/11/2021
0.2.0.5 2,611 3/21/2021
0.2.0.4 326 3/17/2021
0.2.0.3 454 1/31/2021
0.2.0.2 359 1/28/2021
0.2.0.1 489 1/28/2021
0.2.0 691 11/11/2020
0.1.2.6 566 5/29/2020
0.1.2.5 504 5/11/2020
0.1.2.4 455 4/24/2020
0.1.2.3 545 12/23/2019
0.1.2.2 499 12/21/2019
0.1.2.1 491 12/19/2019
0.1.2 499 12/19/2019
0.1.1 508 12/17/2019
0.1.0 535 12/15/2019

The first version of the Algorand SDK.