コード例 #1
0
            public void Add(TransactionDeclarationEntity declarationEntity, TxDeclaration declaration)
            {
                switch (declaration.Type)
                {
                case DeclarationType.MultiSignature:
                    var multi = (MultiSignature)declaration;
                    MultiSignatures[multi] = declarationEntity;
                    break;

                case DeclarationType.HashLock:
                    var hashlock = (HashLock)declaration;
                    HashLocks[hashlock] = declarationEntity;
                    break;

                case DeclarationType.TimeLock:
                    var timelock = (TimeLock)declaration;
                    TimeLocks[timelock] = declarationEntity;
                    break;

                case DeclarationType.VendingMachine:
                    var machine = (VendingMachine)declaration;
                    VendingMachines[machine] = declarationEntity;
                    break;
                }
            }
コード例 #2
0
            protected internal override bool GetOrCreate(TransactionDeclarationEntity item, out Wrapper wrapper)
            {
                var list = cache.GetOrCreate(item.TransactionHash);

                wrapper = new Wrapper(item);
                list.Add(wrapper);
                return(false);
            }
コード例 #3
0
        public void TryAdd(TransactionDeclarationEntity entity, TxDeclaration declaration)
        {
            // we can duplicate declarations like Secret Reveliation
            Declarations.Add(entity);

            // we include unly once Account declarations
            if (declaration is TxAddressDeclaration)
            {
                var address = ((TxAddressDeclaration)declaration).Address;
                if (!AddressDeclarations.ContainsKey(address))
                {
                    AddressDeclarations.Add(address, entity);
                }
            }
        }