everscale dotnet
v1.48.1
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 ;
}
} 可以從文件或Web中加載合同,TVM,密鑰或代碼信息的合同,在此客戶端中加載合同。
現在可用以下以下異步方法:
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應用程序將搜索相對於wwwroot的_contracts 。
請參閱配置客戶端參數:
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" ;
} ) ;大火樣品
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/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.TestingLibs中有一些有用的東西
堅固性編譯參數(使用屬性組或-p參數設置):
請參閱示例以獲取測試框架https://github.com/everscale-actions/everscale-dotnet/tree/main/main/samples/testingexample
https://github.com/everscale-actions/everscale-dotnet/tree/master/samples/
該項目沒有資金,但每個人都可以支持。
衝浪錢包:0:9B487D68E4F029AB6D92640892D99D1C549AE69B198DF414E905350559A165BF