示例#1
0
 public void Save(SignedLedgerState state)
 {
     // ConsoleLogger.Instance.Log("Save Ledger", null);
     DatabaseService.SqlTransactionManager.Save(new SignedLedgerTransaction(state)
     {
         Callback = DataTransformationService.Transform
     });
 }
        private DataTransformationContext RebuildContext(DataTransformationContext context, HashSet <Address> knownAccounts)
        {
            var oldState          = context.SignedLedgerState.State;
            var accounts          = MarkNewAccounts(knownAccounts, oldState.Accounts);
            var state             = new LedgerStateChange(accounts, oldState.MultiSignatures, oldState.HashLocks, oldState.TimeLocks, oldState.VendingMachines);
            var signedLedgerState = new SignedLedgerState(context.SignedLedgerState.Ledger, state);

            return(new DataTransformationContext(signedLedgerState));
        }
        // Called on run
        public void ProcessLedger(SignedLedgerState ledger)
        {
            var target  = ledger.Ledger.Ledger.LedgerLight.Height;
            var context = new DataTransformationContext(ledger);

            foreach (var table in tableTransformationStates.Values)
            {
                Debug.Assert(table.TargetHeight + 1 == target);
                TransformLedgerState(context, table.TableName, target);
            }
            current = target;
        }
示例#4
0
 public void Transform(SignedLedgerState ledger)
 {
     queue.Enqueue(ledger);
     trigger.Set();
 }
示例#5
0
 public DataTransformationContext(SignedLedgerState signedLedgerState)
 {
     SignedLedgerState = signedLedgerState;
 }