Пример #1
0
        public void LoadPlainValue()
        {
            var action    = new RenewAdminState(_validUntil);
            var newAction = new RenewAdminState();

            newAction.LoadPlainValue(action.PlainValue);

            Assert.True(newAction.PlainValue.Equals(action.PlainValue));
        }
Пример #2
0
        public void RejectSignerExceptAdminAddress()
        {
            var newValidUntil = _validUntil + 1000;
            var action        = new RenewAdminState(newValidUntil);

            Assert.Throws <PermissionDeniedException>(() =>
            {
                var userPrivateKey = new PrivateKey();
                action.Execute(new ActionContext
                {
                    PreviousStates = _stateDelta,
                    Signer         = userPrivateKey.ToAddress(),
                });
            });
        }
Пример #3
0
        public void Execute()
        {
            var newValidUntil = _validUntil + 1000;
            var action        = new RenewAdminState(newValidUntil);
            var stateDelta    = action.Execute(new ActionContext
            {
                PreviousStates = _stateDelta,
                Signer         = _adminPrivateKey.ToAddress(),
            });

            var adminState = new AdminState((Bencodex.Types.Dictionary)stateDelta.GetState(Addresses.Admin));

            Assert.Equal(newValidUntil, adminState.ValidUntil);
            Assert.NotEqual(_validUntil, adminState.ValidUntil);
        }
Пример #4
0
        public void CreatePendingActivationsAfterRenewAdminState()
        {
            var random = new Random();
            var nonce  = new byte[40];

            random.NextBytes(nonce);
            var privateKey = new PrivateKey();

            var createPendingActivations = new CreatePendingActivations(new[]
            {
                new PendingActivationState(nonce, privateKey.PublicKey),
            });

            long blockIndex = _validUntil + 1;

            Assert.Throws <PolicyExpiredException>(() => createPendingActivations.Execute(new ActionContext
            {
                BlockIndex     = blockIndex,
                PreviousStates = _stateDelta,
                Signer         = _adminPrivateKey.ToAddress(),
            }));

            var newValidUntil = _validUntil + 1000;
            var action        = new RenewAdminState(newValidUntil);
            var stateDelta    = action.Execute(new ActionContext
            {
                BlockIndex     = blockIndex,
                PreviousStates = _stateDelta,
                Signer         = _adminPrivateKey.ToAddress(),
            });

            // After 100 blocks.
            blockIndex += 100;

            Assert.True(blockIndex < newValidUntil);
            stateDelta = createPendingActivations.Execute(new ActionContext
            {
                BlockIndex     = blockIndex,
                PreviousStates = stateDelta,
                Signer         = _adminPrivateKey.ToAddress(),
            });

            Address expectedPendingActivationStateAddress =
                PendingActivationState.DeriveAddress(nonce, privateKey.PublicKey);

            Assert.NotNull(stateDelta.GetState(expectedPendingActivationStateAddress));
        }