All Downloads are FREE. Search and download functionalities are using the official Maven repository.

craterdog.accounting.DigitalTransaction Maven / Gradle / Ivy

Go to download

This project defines a set of interfaces and classes that implement digital accounting.

There is a newer version: 1.6
Show newest version
/************************************************************************
 * Copyright (c) Crater Dog Technologies(TM).  All Rights Reserved.     *
 ************************************************************************
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.        *
 *                                                                      *
 * This code is free software; you can redistribute it and/or modify it *
 * under the terms of The MIT License (MIT), as published by the Open   *
 * Source Initiative. (See http://opensource.org/licenses/MIT)          *
 ************************************************************************/
package craterdog.accounting;

import craterdog.notary.NotarySeal;
import craterdog.smart.SmartObject;

/**
 * This class defines the attributes that make up a signed digital transaction that captures
 * the transfer of a certified digital token from one account to another account. The transaction
 * is signed using the signing keys of both the sender and the receiver of the digital token
 * so that neither entity can deny the transaction at a later date. Optionally, an "escrow"
 * third party can be involved when the transfer involves more than just the digital token, for
 * example when the sender is giving the digital token to the receiver as payment for goods or
 * services rendered.
 *
 * @author Derk Norton
 */
public final class DigitalTransaction extends SmartObject {

    /**
     * The actual attributes that make up the digital transaction.
     */
    public TransactionAttributes attributes;

    /**
     * A notary seal generated by the sender using its private signing key to sign the attributes.
     */
    public NotarySeal senderSeal;

    /**
     * A notary seal generated by the receiver using its private signing key to sign the
     * sender's seal.
     */
    public NotarySeal receiverSeal;

    /**
     * A notary seal generated by the escrow using its private signing key to sign the
     * receiver's seal.  This seal is only required when the escrowId attribute
     * has been set.
     */
    public NotarySeal escrowSeal;

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy