コード例 #1
0
        private static async Task <EventEmittingContract> InternalSetupAsync(NetworkCredentials networkCredentials)
        {
            var fx = new EventEmittingContract();

            fx.Network    = networkCredentials;
            fx.FileParams = new CreateFileParams
            {
                Expiration   = Generator.TruncatedFutureDate(12, 24),
                Endorsements = new Endorsement[] { networkCredentials.PublicKey },
                Contents     = Encoding.UTF8.GetBytes(EVENTEMIT_CONTRACT_BYTECODE)
            };
            fx.Client     = networkCredentials.NewClient();
            fx.FileRecord = await fx.Client.CreateFileWithRecordAsync(fx.FileParams, ctx =>
            {
                ctx.Memo = "Event Emit 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            = 500_000,
                InitialBalance = 1_000_000,
                RenewPeriod    = TimeSpan.FromDays(Generator.Integer(2, 4))
            };
            return(fx);
        }
コード例 #2
0
        public static async Task <EventEmittingContract> CreateAsync(NetworkCredentials networkCredentials, Action <EventEmittingContract> customize = null)
        {
            var fx = new EventEmittingContract();

            networkCredentials.Output?.WriteLine("STARTING SETUP: Event Emit Contract Create Configuration");
            (fx.PublicKey, fx.PrivateKey) = Generator.KeyPair();
            fx.Network    = networkCredentials;
            fx.FileParams = new CreateFileParams
            {
                Expiration   = DateTime.UtcNow.AddSeconds(7890000),//Generator.TruncatedFutureDate(12, 24),
                Endorsements = new Endorsement[] { networkCredentials.PublicKey },
                Contents     = Encoding.UTF8.GetBytes(EVENTEMIT_CONTRACT_BYTECODE)
            };
            fx.Client     = networkCredentials.NewClient();
            fx.FileRecord = await fx.Client.CreateFileWithRecordAsync(fx.FileParams, ctx =>
            {
                ctx.Memo = "Event Emit 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,
                Gas            = await networkCredentials.TinybarsFromGas(200),
                InitialBalance = 1_000_000,
                RenewPeriod    = TimeSpan.FromSeconds(7890000),//TimeSpan.FromDays(Generator.Integer(2, 4))
            };
            customize?.Invoke(fx);
            fx.ContractRecord = await fx.Client.CreateContractWithRecordAsync(fx.ContractParams, ctx =>
            {
                ctx.Memo = "Event Emit Contract Create: Instantiating Event Emit Instance " + Generator.Code(10);
            });

            Assert.Equal(ResponseCode.Success, fx.FileRecord.Status);
            fx.Network.Output?.WriteLine("SETUP COMPLETED: Event Emit Contract Instance Created");
            return(fx);
        }