consts

package
v1.0.0-beta.24 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 1, 2020 License: MIT Imports: 2 Imported by: 0

Documentation

Overview

Package consts contains constants used throughout the entire library and errors.

Index

Constants

View Source
const (
	// TrinaryRadix defines the base of the trinary system.
	TrinaryRadix = 3
	// TryteRadix defines the radix used for tryte conversions.
	TryteRadix = 27
	// TryteAlphabet are letters of the alphabet and the number 9
	// which directly map to decimal values of a single Tryte value.
	TryteAlphabet = "9ABCDEFGHIJKLMNOPQRSTUVWXYZ"
	// TritsPerTryte is the number of trits in one tryte
	TritsPerTryte = 3
	// MinTryteValue is the minimum value of a tryte value.
	MinTryteValue = -13
	// MaxTryteValue is the maximum value of a tryte value.
	MaxTryteValue = 13
	// MinTritValue is the minimum value of a trit value.
	MinTritValue = -1
	// MaxTritValue is the maximum value of a trit value.
	MaxTritValue = 1
)
View Source
const (
	// HashTrinarySize is the standard size for hashes from Curl or Kerl.
	HashTrinarySize = 243
	// HashTrytesSize is the trytes size of HashTrinarySize.
	HashTrytesSize = HashTrinarySize / 3
	// HashBytesSize is the bytes size of HashTrytesSize.
	HashBytesSize = 48
	// IntLength is used for bytes-trytes conversion.
	IntLength = HashBytesSize / 4
	// KeySegmentsPerFragment is the amount of segments per key fragment.
	KeySegmentsPerFragment = 27
	// KeyFragmentLength defines the length of a key fragment.
	KeyFragmentLength = HashTrinarySize * KeySegmentsPerFragment // 6561
	// KeySegmentHashRounds is the amount of hashing rounds during key segment hashing.
	KeySegmentHashRounds = 26
)
View Source
const (
	AddressChecksumTrytesSize     = 9
	AddressWithChecksumTrytesSize = HashTrytesSize + AddressChecksumTrytesSize
	MinChecksumTrytesSize         = 3

	// Total supply of IOTA available in the network. Used for ensuring a balanced ledger state and bundle balances
	// = (3^33 - 1) / 2
	TotalSupply uint64 = 1300000000000000
)

Address, balance and checksum constants.

View Source
const (
	UpperBoundAttachmentTimestamp = (3 ^ 27 - 1) / 2
	LowerBoundAttachmentTimestamp = 0
)

Attachment timestamp constants.

View Source
const (
	SignatureMessageFragmentTrinaryOffset = 0
	SignatureMessageFragmentTrinarySize   = 6561
	AddressTrinaryOffset                  = SignatureMessageFragmentTrinaryOffset + SignatureMessageFragmentTrinarySize
	AddressTrinarySize                    = 243
	ValueOffsetTrinary                    = AddressTrinaryOffset + AddressTrinarySize
	ValueUsedSizeTrinary                  = 33
	ValueSizeTrinary                      = 81
	ObsoleteTagTrinaryOffset              = ValueOffsetTrinary + ValueSizeTrinary
	ObsoleteTagTrinarySize                = 81
	TimestampTrinaryOffset                = ObsoleteTagTrinaryOffset + ObsoleteTagTrinarySize
	TimestampTrinarySize                  = 27
	CurrentIndexTrinaryOffset             = TimestampTrinaryOffset + TimestampTrinarySize
	CurrentIndexTrinarySize               = 27
	LastIndexTrinaryOffset                = CurrentIndexTrinaryOffset + CurrentIndexTrinarySize
	LastIndexTrinarySize                  = 27
	BundleTrinaryOffset                   = LastIndexTrinaryOffset + LastIndexTrinarySize
	BundleTrinarySize                     = 243
	TrunkTransactionTrinaryOffset         = BundleTrinaryOffset + BundleTrinarySize
	TrunkTransactionTrinarySize           = 243
	BranchTransactionTrinaryOffset        = TrunkTransactionTrinaryOffset + TrunkTransactionTrinarySize
	BranchTransactionTrinarySize          = 243
	TagTrinaryOffset                      = BranchTransactionTrinaryOffset + BranchTransactionTrinarySize
	TagTrinarySize                        = 81
	AttachmentTimestampTrinaryOffset      = TagTrinaryOffset + TagTrinarySize
	AttachmentTimestampTrinarySize        = 27

	AttachmentTimestampLowerBoundTrinaryOffset = AttachmentTimestampTrinaryOffset + AttachmentTimestampTrinarySize
	AttachmentTimestampLowerBoundTrinarySize   = 27
	AttachmentTimestampUpperBoundTrinaryOffset = AttachmentTimestampLowerBoundTrinaryOffset + AttachmentTimestampLowerBoundTrinarySize
	AttachmentTimestampUpperBoundTrinarySize   = 27
	NonceTrinaryOffset                         = AttachmentTimestampUpperBoundTrinaryOffset + AttachmentTimestampUpperBoundTrinarySize
	NonceTrinarySize                           = 81

	TransactionTrinarySize = SignatureMessageFragmentTrinarySize + AddressTrinarySize +
		ValueSizeTrinary + ObsoleteTagTrinarySize + TimestampTrinarySize +
		CurrentIndexTrinarySize + LastIndexTrinarySize + BundleTrinarySize +
		TrunkTransactionTrinarySize + BranchTransactionTrinarySize +
		TagTrinarySize + AttachmentTimestampTrinarySize +
		AttachmentTimestampLowerBoundTrinarySize + AttachmentTimestampUpperBoundTrinarySize +
		NonceTrinarySize

	SignatureMessageFragmentSizeInTrytes = SignatureMessageFragmentTrinarySize / 3
	TransactionTrytesSize                = TransactionTrinarySize / 3
)

Transaction elements size and offsets.

View Source
const (
	ISSFragments   uint64 = 27
	ISSKeyLength   uint64 = HashTrinarySize * ISSFragments
	ISSChunkLength int    = HashTrinarySize / TrinaryRadix
)

Merkle constants.

View Source
const (
	// DefaultMinWeightMagnitude is the default difficulty on mainnet.
	DefaultMinWeightMagnitude = 14
)

Variables

View Source
var (
	NullHashTrytes                     = strings.Repeat("9", HashTrytesSize)
	NullTagTrytes                      = strings.Repeat("9", TagTrinarySize/3)
	NullNonceTrytes                    = strings.Repeat("9", NonceTrinarySize/3)
	NullSignatureMessageFragmentTrytes = strings.Repeat("9", SignatureMessageFragmentTrinarySize/3)
	NullAddressWithChecksum            = strings.Repeat("9", HashTrytesSize) + "A9BEONKZW"
)

Null value constants.

View Source
var (
	// ErrSettingsNil gets returned when no settings are supplied to ComposeAPI().
	ErrSettingsNil = errors.New("settings must not be nil")
	// ErrInvalidSettingsType gets returned if the wrong underlying type of Settings were supplied for creating a Provider.
	ErrInvalidSettingsType = errors.New("incompatible settings type supplied")
	// ErrInconsistentSubtangle gets returned when the tail transaction is not consistent during promotion.
	ErrInconsistentSubtangle = errors.New("inconsistent subtangle")
	// ErrInvalidSqueezeLength gets returned when the squeeze length is not a multiple of 243 (which it must be for Kerl).
	ErrInvalidSqueezeLength = errors.New("squeeze length must be a multiple of 243")
	// ErrInvalidTritsLength gets returned when the trits length are invalid for the given operation.
	ErrInvalidTritsLength = errors.New("invalid trits length")
	// ErrInvalidTrytesLength gets returned when the trytes length are invalid for the given operation.
	ErrInvalidTrytesLength = errors.New("invalid trytes length")
	// ErrInvalidBytesLength gets returned when the bytes length are invalid for the given operation.
	ErrInvalidBytesLength = errors.New("invalid bytes length")
	// ErrInsufficientBalance gets returned when an operation needs a certain amount of balance to fulfill the operation.
	ErrInsufficientBalance = errors.New("insufficient balance")
	// ErrInvalidAddress gets returned for invalid address parameters.
	ErrInvalidAddress = errors.New("invalid address")
	// ErrInvalidRemainderAddress gets returned for invalid remainder address parameters.
	ErrInvalidRemainderAddress = errors.New("invalid remainder address")
	// ErrInvalidBranchTransaction gets returned for invalid branch transaction parameters.
	ErrInvalidBranchTransaction = errors.New("invalid branch transaction")
	// ErrInvalidBundle gets returned for Bundles which are schematically wrong or/and don't pass validation.
	ErrInvalidBundle = errors.New("invalid bundle")
	// ErrInvalidBundleTotalValue gets returned for Bundles whose total value would overflow/underflow from the total supply.
	ErrInvalidBundleTotalValue = errors.New("invalid bundle total value")
	// ErrInvalidBundleAddressValue gets returned for Bundles with balance mutations in an address that would overflow/underflow from the total supply.
	ErrInvalidBundleAddressValue = errors.New("invalid bundle address value")
	// ErrInvalidBundleHash gets returned for invalid bundle hash parameters.
	ErrInvalidBundleHash = errors.New("invalid bundle hash")
	// ErrInvalidSignature gets returned for bundles with invalid signatures.
	ErrInvalidSignature = errors.New("invalid signature")
	// ErrInvalidChecksum gets returned for addresses with invalid checksum.
	ErrInvalidChecksum = errors.New("invalid checksum")
	// ErrInvalidHash gets returned for invalid hash parameters.
	ErrInvalidHash = errors.New("invalid hash")
	// ErrInvalidValue gets returned for invalid values (e.g. upper 48 trits of the value field used).
	ErrInvalidValue = errors.New("invalid value")
	// ErrInvalidIndex gets returned for invalid index parameters.
	ErrInvalidIndex = errors.New("invalid index option")
	// ErrInvalidTotalOption gets returned for invalid total option parameters.
	ErrInvalidTotalOption = errors.New("invalid total option")
	// ErrInvalidInput gets returned for invalid input parameters.
	ErrInvalidInput = errors.New("invalid input")
	// ErrInvalidSecurityLevel gets returned for invalid security level parameters.
	ErrInvalidSecurityLevel = errors.New("invalid security option")
	// ErrInvalidSeed gets returned for invalid seed parameters.
	ErrInvalidSeed = errors.New("invalid seed")
	// ErrInvalidStartEndOptions gets returned for invalid end options.
	ErrInvalidStartEndOptions = errors.New("invalid end option")
	// ErrInvalidTag gets returned for invalid tags.
	ErrInvalidTag = errors.New("invalid tag")
	// ErrInvalidTransaction gets returned when transactions trits don't make up a valid transaction.
	ErrInvalidTransaction = errors.New("invalid transaction")
	// ErrInvalidTransactionTrytes gets returned for invalid transaction trytes.
	ErrInvalidTransactionTrytes = errors.New("invalid transaction trytes")
	// ErrInvalidAttachedTrytes gets returned for invalid attached transaction trytes.
	ErrInvalidAttachedTrytes = errors.New("invalid attached trytes")
	// ErrInvalidTransactionHash gets returned for invalid transaction hash parameters.
	ErrInvalidTransactionHash = errors.New("invalid transaction hash")
	// ErrInvalidTailTransaction gets returned for invalid tail transaction hashes.
	ErrInvalidTailTransaction = errors.New("invalid tail transaction")
	// ErrInvalidTransfer gets returned for invalid transfer parameters.
	ErrInvalidTransfer = errors.New("invalid transfer object")
	// ErrInvalidTrunkTransaction gets returned for invalid trunk transaction parameters.
	ErrInvalidTrunkTransaction = errors.New("invalid trunk transaction")
	// ErrInvalidReferenceHash gets returned for invalid reference hashes.
	ErrInvalidReferenceHash = errors.New("invalid reference hash")
	// ErrInvalidTrytes gets returned for invalid trytes.
	ErrInvalidTrytes = errors.New("invalid trytes")
	// ErrInvalidByte gets returned for an invalid byte for a to trits conversion (5 packed trits in 1 byte).
	ErrInvalidByte = errors.New("invalid byte")
	// ErrInvalidTrit gets returned for invalid trit.
	ErrInvalidTrit = errors.New("invalid trit")
	// ErrInvalidURI gets returned for invalid URIs.
	ErrInvalidURI = errors.New("invalid uri")
	// ErrInvalidASCIIInput gets returned for invalid ASCII input for to trytes conversion.
	ErrInvalidASCIIInput = errors.New("conversion to trytes requires type of input to be encoded in ascii")
	// ErrInvalidOddLength gets returned for odd trytes length for to ASCII conversion.
	ErrInvalidOddLength = errors.New("conversion from trytes requires length of trytes to be even")
	// ErrInvalidTryteEncodedJSON gets returned for invalid tryte encoded JSON messages.
	ErrInvalidTryteEncodedJSON = errors.New("invalid tryte encoded JSON message")
	// ErrSendingBackToInputs gets returned when a transfer sends back to an Input.
	ErrSendingBackToInputs = errors.New("one of the transaction inputs is used as output")
	// ErrNoRemainderSpecified gets returned when no remainder was specified for certain type of operations.
	ErrNoRemainderSpecified = errors.New("remainder address is needed on a transfer with remainder")
)

Functions

This section is empty.

Types

type SecurityLevel

type SecurityLevel int

SecurityLevel defines the security level used for input transactions or respectively, how many signature fragments will be generated for value transfers.

const (
	// SecurityLevelLow is for devices with low performance and only storing a small amount of value.
	SecurityLevelLow SecurityLevel = 1
	// SecurityLevelMedium is the standard security level for wallets and other applications.
	SecurityLevelMedium SecurityLevel = 2
	// SecurityLevelHigh is recommended for exchanges and other high security applications.
	SecurityLevelHigh SecurityLevel = 3
	// MaxSecurityLevel is the maximum security level.
	MaxSecurityLevel = 3
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL