private static async Task <StatefulContract> InternalSetupAsync(NetworkCredentials networkCredentials) { var fx = new StatefulContract(); fx.Network = networkCredentials; fx.FileParams = new CreateFileParams { Expiration = DateTime.UtcNow.AddSeconds(7890000), Endorsements = new Endorsement[] { networkCredentials.PublicKey }, Contents = Encoding.UTF8.GetBytes(STATEFUL_CONTRACT_BYTECODE) }; fx.Client = networkCredentials.NewClient(); fx.FileRecord = await fx.Client.CreateFileWithRecordAsync(fx.FileParams, ctx => { ctx.Memo = "Stateful Contract Create: Uploading Contract File " + Generator.Code(10); }); Assert.Equal(ResponseCode.Success, fx.FileRecord.Status); fx.ContractParams = new CreateContractParams { File = fx.FileRecord.File, Administrator = networkCredentials.PublicKey, Gas = await networkCredentials.TinybarsFromGas(200), RenewPeriod = TimeSpan.FromSeconds(7890000), Arguments = new object[] { "Hello from .NET. " + DateTime.UtcNow.ToLongDateString() } }; return(fx); }
public static async Task <StatefulContract> CreateAsync(NetworkCredentials networkCredentials, Action <StatefulContract> customize = null) { var fx = new StatefulContract(); networkCredentials.Output?.WriteLine("STARTING SETUP: Creating Stateful Contract Instance"); (fx.PublicKey, fx.PrivateKey) = Generator.KeyPair(); fx.Network = networkCredentials; fx.FileParams = new CreateFileParams { Expiration = DateTime.UtcNow.AddSeconds(7890000), Endorsements = new Endorsement[] { networkCredentials.PublicKey }, Contents = Encoding.UTF8.GetBytes(STATEFUL_CONTRACT_BYTECODE) }; fx.Client = networkCredentials.NewClient(); fx.FileRecord = await fx.Client.CreateFileWithRecordAsync(fx.FileParams, ctx => { ctx.Memo = "Stateful Contract Create: Uploading Contract File " + Generator.Code(10); }); Assert.Equal(ResponseCode.Success, fx.FileRecord.Status); fx.ContractParams = new CreateContractParams { File = fx.FileRecord.File, Administrator = fx.PublicKey, Signatory = fx.PrivateKey, Memo = "Stateful Contract " + Generator.Code(10), Gas = await networkCredentials.TinybarsFromGas(200), RenewPeriod = TimeSpan.FromSeconds(7890000), Arguments = new object[] { "Hello from .NET. " + DateTime.UtcNow.ToLongDateString() } }; customize?.Invoke(fx); fx.ContractRecord = await fx.Client.CreateContractWithRecordAsync(fx.ContractParams, ctx => { ctx.Memo = "Stateful Contract Create: Instantiating Stateful Instance " + Generator.Code(10); }); fx.Network.Output?.WriteLine("SETUP COMPLETED: Stateful Contract Instance Created"); return(fx); }