
ARK.NET est la bibliothèque d'écosystème Ark pour la plate-forme .NET. Il met en œuvre toutes les fonctionnalités ARK les plus pertinentes pour vous aider à développer des applications .NET efficaces construites sur la plate-forme ARK . Il offre également un accès de bas niveau à ARK afin que vous puissiez facilement créer votre application par-dessus.
Le package prend en charge:
Install-Package ark.net allez sur le site Web de NuGet pour plus d'informations.
Pour le compiler par vous-même, vous pouvez Git Clone, ouvrir le projet et appuyer sur le bouton de compilation sur Visual Studio. Dans l'invite de commande:
git clone https://github.com/ArkEcosystem/ark-net
cd ark-net
Toutes les réponses de service à nœuds Ark ont des représentations d'objets. Vous pouvez utiliser des cours de service dans le dossier de service. Les réponses sont ienuables pour une liste ou un objet pour un seul élément. Chaque méthode a une méthode asynchrone correspondante.
Il est préférable de laisser le code faire le discours. Pour plus d'exemples, consultez les tests ARK.NET, où tous les tests sont écrits et vous pouvez voir l'utilisation de l'API. Certains extraits de code sont ci-dessous.
Le premier appel doit être démarré, donc tous les paramètres de la bibliothèque peuvent initialiser avant d'entrer en action. Plusieurs instances d'Arknetapi peuvent être utilisées en même temps (DevNet & MainNet dans la même application)
private ArkNetApi _arkNetApi ;
public ArkNetApi ArkNetApi
{
get { return _arkNetApi ?? ( _arkNetApi = new ArkNetApi ( ) ) ; }
}
await ArkNetApi . Start ( NetworkType . MainNet ) ; //Other type is DevNet
//or
await ArkNetApi . Start ( specificPeerIp , specificPeerPort ) ;
//or (Multiple addresses)
await ArkNetApi . Start ( listArkPeerAddresses ) ; //Existing account
var accCtnrl = new AccountController ( ArkNetApi , "top secret pass" ) ;
//Send ARK
var result = accCtnrl . SendArk ( 100 , "AUgTuukcKeE4XFdzaK6rEHMD5FLmVBSmHk" , "Akr.Net test trans from Account" ) ;
//Vote 4 Delegate
var result = accCtnrl . VoteForDelegate ( delegateName ) ;
//Un-Vote Delegate
var result = accCtnrl . UnVoteDelegate ( delegateName ) ;
//Create and send transaction. Transaction can be saved offine (.ToJson()) and sent later.
var transaction = accCtnrl . CreateTransaction ( 100 , "AUgTuukcKeE4XFdzaK6rEHMD5FLmVBSmHk" , "Akr.Net test trans from Account" ) ;
var result = accCtnrl . SendTransaction ( transaction ) ;
//Get Account
var account = accCtnrl . GetArkAccount ( ) ;
//New Account
new AccountController ( ArkNetApi , ArkNetApi . AccountService . GeneratePassphrase ( ) ) ;Pour une liste complète des appels API disponibles, veuillez consulter le projet de test ARK.NET
//PeerService
var peers = ArkNetApi . PeerService . GetAll ( ) ;
var peersOK = peers . Where ( x => x . Status . Equals ( "OK" ) ) ;
//TransactionService
var trans = ArkNetApi . TransactionService . GetAll ( ) ;
//BlockService
var blocks = ArkNetApi . BlockService . GetAll ( ) ;
//AccountService - Generate passphrase
var result = ArkNetApi . AccountService . GeneratePassphrase ( ) ;
//DelegateService
var delegates = ArkNetApi . DelegateService . GetAll ( ) ;
//LoaderService
var autoConfigParams = ArkNetApi . LoaderService . GetAutoConfigureParameters ( ) ;
.. .La couche est utilisée pour la communication Core Ark Blockchain (transaction, crypto ...). Il est enveloppé par des bibliothèques API appelées à partir du service et de la couche de compte.
//Create & send transaction
TransactionApi tx = ArkNetApi . TransactionApi . CreateTransaction ( recepient , amount , description , passphrase ) ;
Peer peer = ArkNetApi . NetworkApi . GetRandomPeer ( ) ;
var result = peer . PostTransaction ( tx ) ;
//Connect to a specific peer to perform requests
var peerApi = new PeerApi ( ArkNetApi , ipAddress , Port )
await peerApi . MakeRequest ( ArkStaticStrings . ArkHttpMethods . GET , ArkStaticStrings . ArkApiPaths . Loader . GET_STATUS ) ;
//Force specific peer. All API calls will flow through this peer. Set back to null to resume decentralized use. Monitoring a specific peer is a use case for this functionality.
ArkNetApi . NetworkApi . ForcedPeer = ArkNetApi . PeerService . GetPeer ( ip , port ) ;
//or
ArkNetApi . NetworkApi . ForcedPeer = new PeerApi ( ArkNetApi , ipAddress , Port ) ;
// Switch network (Can also create new ArkNetApi instance as alternative solution)
await ArkNetApi . SwitchNetwork ( NetworkType . DevNet )
//New network
_arkNetApiDevNet = new ArkNetApi ( ) ;
await _arkNetApiDevNet . Start ( NetworkType . DevNet ) ; Tout cadre de journalisation peut être utilisé pour capturer les journaux à partir de l'ARKNET. Il appartient à l'utilisateur de la bibliothèque d'implémenter Iarklogger et de le transmettre à arknetapi.start (). Vous trouverez ci-dessous un exemple d'implémentation à l'aide de log4Net.
public class Log4netAdapter : IArkLogger
{
private readonly ILog _log4NetLog ;
public Log4netAdapter ( ILog log4NetLog )
{
_log4NetLog = log4NetLog ;
}
public void Log ( ArkLogEntry entry )
{
if ( entry . LogLevel == ArkLogLevel . Debug )
_log4NetLog . Debug ( entry . Message , entry . Exception ) ;
else if ( entry . LogLevel == ArkLogLevel . Info )
_log4NetLog . Info ( entry . Message , entry . Exception ) ;
else if ( entry . LogLevel == ArkLogLevel . Warn )
_log4NetLog . Warn ( entry . Message , entry . Exception ) ;
else if ( entry . LogLevel == ArkLogLevel . Error )
_log4NetLog . Error ( entry . Message , entry . Exception ) ;
else
_log4NetLog . Fatal ( entry . Message , entry . Exception ) ;
}
}
ILog log = LogManager . GetLogger ( typeof ( LoggingTests ) ) ;
await ArkNetApi . Start ( NetworkType . MainNet , new Log4netAdapter ( log ) ; S'il vous plaît, utilisez des problèmes de github pour des questions ou des commentaires. Pour des demandes confidentielles ou des demandes spécifiques, contactez-nous sur nos canaux publics.
Si vous découvrez une vulnérabilité de sécurité dans ce package, veuillez envoyer un e-mail à [email protected]. Toutes les vulnérabilités de sécurité seront rapidement traitées.
© Arkecosystème