AdapT: A reusable package for implementing smart contracts that process transactions of congruous types | Synapse