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