Scripting smart contracts for distributed ledger technology