Everscale ist sicheres und skalierbares Netzwerk. Lassen Sie uns dieses Netzwerk sowohl für Benutzer als auch für Entwickler bequem machen!
Seien Sie vorsichtig! Keine Netzwerkendpunkte als Standardeinstellung
dotnet add package EverscaleNet.Client builder . Services . AddEverClient ( ) ;dotnet add package EverscaleNet.WebClient builder . Services . AddEverWebClient ( ) ; public class YourEverService {
private readonly IEverClient _everClient ;
public YourEverService ( IEverClient everClient ) {
_everClient = everClient ;
}
public string GetEverSecretPhase ( ) {
var mnemonic = await _everClient . Crypto . MnemonicFromRandom ( new ParamsOfMnemonicFromRandom ( ) ) ;
return mnemonic . Phrase ;
}
} Es besteht eine einfache Option, Verträge ABI, TVM, Schlüssel oder Codeinformationen aus Dateien oder Web in diesem Client zu laden.
Jetzt verfügbar nach asynchronen Methoden:
public interface IEverPackageManager {
Task < Package > LoadPackage ( string name ) ; // Load whole package within Abi, Tvc, KeyPair and Code
Task < Abi > LoadAbi ( string name ) ; // deserialize abi json to Abi
Task < string > LoadTvc ( string name ) ; // compiled contract in base64
Task < KeyPair > LoadKeyPair ( string name ) ; // deserialize keypair to KeyPair
Task < string > LoadCode ( string name ) ; // Load Code as text
} Standardverträge Pfad sind _contracts . Seien Sie vorsichtig , die Blazor -WASM -App sucht nach _contracts in Bezug auf wwwroot .
Siehe Konfiguration Client -Parameter:
builder . Services
. AddEverClient ( client => {
client . Network . Endpoints = new [ ] { "http://mainnet.evercloud.dev/your-project-id-here/graphql" } ;
client . Network . NetworkRetriesCount = 5 ;
} , packageManager =>
{
packageManager . PackagesPath = "_my_contracts" ; // path to files, _contracts is default
packageManager . AbiFileTemplate = "{0}.abi.json" ;
packageManager . TvcFileTemplate = "{0}.tvc" ;
packageManager . KeyPairFileTemplate = "{0}.keys.json" ;
packageManager . CodeFileTemplate = "{0}.code" ;
} ) ; builder . Services
. AddEverWebClient ( client => {
client . Network . Endpoints = new [ ] { "http://mainnet.evercloud.dev/your-project-id-here/graphql" } ;
..
} , packageManager => {
packageManager . BasePath = "http://your_site.com" ; // can be builder.HostEnvironment.BaseAddress
packageManager . PackagesPath = "_my_contracts" ; // path relative to `wwwroot`
..
} , libWeb => {
// configuring js wasm wrapper
// see https://github.com/tonlabs/ever-sdk-js#setup-library
libWeb . DisableSeparateWorker = false ;
libWeb . BinaryUrl = "/_content/EverscaleNet.Adapter.Wasm/eversdk.wasm" ;
} ) ;Blazor WASM -Probe
https://docs.microsoft.com/en-us/dotnet/core/extensions/configuration-providers
{
"EverClient" : {
"Network" : {
"Endpoints" : [ "http://mainnet.evercloud.dev/your-project-id-here/graphql" ] ,
"WaitForTimeout" : 5000
}
} ,
"PackageManager" : {
"PackagesPath" : "_my_contracts"
}
} builder . Services
. AddEverClient ( )
. Configure < EverClientOptions > ( Configuration . GetSection ( "EverClient" ) )
. Configure < PackageManagerOptions > ( Configuration . GetSection ( "PackageManager" ) ) ; Vollständig kompatibel mit https://docs.microsoft.com/en-us/dotnet/core/extensions/logging
Es gibt einige Eigenschaften mit Jsonelement vom Typ Jsonelement in Datenmodellen. Und dieser Client bietet Methoden zur einfachen Umwandlung dieser Eigenschaften in/vom Prototyp.
ResultOfParse parseResult = await everClient.Boc.ParseMessage(new ParamsOfParse
{
Boc = "te6ccgEBAQEAWAAAq2n+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE/zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzSsG8DgAAAAAjuOu9NAL7BxYpA"
});
var parsedPrototype = new {type = default(int), id = default(string)};
var parsedMessage = parseResult.Parsed!.Value.ToPrototype(parsedPrototype);
_logger.LogInformation("Parsed message id: {id} type: {type}", parsedMessage.id, parsedMessage.type);
await everClient.Net.WaitForCollection(new ParamsOfWaitForCollection
{
Collection = "transactions",
Filter = new {in_msg = new {eq = parsedMessage.id}}.ToJsonElement(),
Result = "id"
});
dotnet add package EverscaleNet.AppKit
dotnet add package EverscaleNet.TestingEs gibt ein paar nützliche Dinge in den LIBs
Soliditätskompilierparameter (mit PropertyGroup oder -p -Parameter festgelegt):
Siehe Beispiele zum Testen von Framework https://github.com/evercale-actions/evercale-dotnet/tree/main/samples/testingExample
https://github.com/evercale-actions/evercale-dotnet/tree/master/samples/
Dieses Projekt hat keine Finanzierung, aber jeder kann unterstützen.
Brieftasche: 0: 9B487D68E4F029AB6D92640892D99D1C549AE69B198DF414E905350559A165BF