mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2024-12-02 09:45:50 +00:00
65503aa9b4
1. Closes #840: added Nonce field to transaction.Transaction and removed Nonce field from transaction.MinerTx 2. Added following methods to different tx types: - NewMinerTx() - NewMinerTxWithNonce(...) - NewEnrollmentTx(...) - NewIssueTx() - NewPublishTx(...) - NewRegisterTx(...) - NewStateTx(...) in order to avoid code duplication when new transaction is created. 3. Commented out test cases where binary transaction/block are used. These test cases marked with `TODO NEO3.0: Update binary` and need to be updated. 4. Updated other tests 5. Added constant Nonce to GoveringTockenTx, UtilityTokenTx and genesis block to avoid data variability. Also marked with TODO.
43 lines
1.2 KiB
Go
43 lines
1.2 KiB
Go
package transaction
|
|
|
|
import (
|
|
"math/rand"
|
|
|
|
"github.com/nspcc-dev/neo-go/pkg/crypto/keys"
|
|
"github.com/nspcc-dev/neo-go/pkg/io"
|
|
)
|
|
|
|
// EnrollmentTX transaction represents an enrollment form, which indicates
|
|
// that the sponsor of the transaction would like to sign up as a validator.
|
|
// The way to sign up is: To construct an EnrollmentTransaction type of transaction,
|
|
// and send a deposit to the address of the PublicKey.
|
|
// The way to cancel the registration is: Spend the deposit on the address of the PublicKey.
|
|
type EnrollmentTX struct {
|
|
// PublicKey of the validator.
|
|
PublicKey keys.PublicKey
|
|
}
|
|
|
|
// NewEnrollmentTX creates Transaction of EnrollmentType type.
|
|
func NewEnrollmentTX(enrollment *EnrollmentTX) *Transaction {
|
|
return &Transaction{
|
|
Type: EnrollmentType,
|
|
Version: 0,
|
|
Nonce: rand.Uint32(),
|
|
Data: enrollment,
|
|
Attributes: []Attribute{},
|
|
Inputs: []Input{},
|
|
Outputs: []Output{},
|
|
Scripts: []Witness{},
|
|
Trimmed: false,
|
|
}
|
|
}
|
|
|
|
// DecodeBinary implements Serializable interface.
|
|
func (tx *EnrollmentTX) DecodeBinary(r *io.BinReader) {
|
|
tx.PublicKey.DecodeBinary(r)
|
|
}
|
|
|
|
// EncodeBinary implements Serializable interface.
|
|
func (tx *EnrollmentTX) EncodeBinary(w *io.BinWriter) {
|
|
tx.PublicKey.EncodeBinary(w)
|
|
}
|