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; } }
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); }
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); } } }