Everscale - это безопасная и масштабируемая сеть. Давайте сделаем эту сеть удобно как для пользователей, так и для разработчиков!
Будь осторожен! Нет конечных точек сети, не предоставленных по умолчанию
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 ;
}
} Существует простой вариант загрузки контрактов ABI, TVM, Keys или Code Info из файлов или в Интернете в этом клиенте.
Теперь доступны следующие асинхронные методы:
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
} Переход контрактов по умолчанию _contracts . Будьте осторожны , приложение Blazor Wasm будет искать _contracts по сравнению с wwwroot .
См. Параметры клиента конфигурации:
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 образец
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" ) ) ; Полностью совместим с https://docs.microsoft.com/en-us/dotnet/core/extensions/logging
Есть несколько свойств с типом JsonElement в моделях данных. И этот клиент предоставляет методы для простого преобразования этих свойств в/из прототипа.
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.TestingВ либерациях есть несколько полезных вещей
Параметры сопоставления солидности (установленные с помощью GroundGroup или параметром -p ):
См. Примеры структуры тестирования https://github.com/everscale-actions/everscale-dotnet/tree/main/samples/testingExample
https://github.com/everscale-actions/everscale-dotnet/tree/master/samples/
Этот проект не имеет финансирования, но каждый может поддержать.
Surf Wallet: 0: 9B487D68E4F029AB6D92640892D99D1C549AE69B198DF414E905350559A165BF