Documentation
¶
Index ¶
- Constants
- func OAdd(a uint64, b uint64) (res uint64, overflowed bool)
- func OAdd16(a uint16, b uint16) (res uint16, overflowed bool)
- func OMul(a uint64, b uint64) (res uint64, overflowed bool)
- func OSub(a uint64, b uint64) (res uint64, overflowed bool)
- type Address
- type AssetConfigTxnFields
- type AssetFreezeTxnFields
- type AssetID
- type AssetParams
- type AssetTransferTxnFields
- type Bid
- type Digest
- type Header
- type ItemStruct
- type KeyregTxnFields
- type LogicSig
- type MasterDerivationKey
- type MicroAlgos
- type MultisigSig
- type MultisigSubsig
- type NoteField
- type NoteFieldType
- type PaymentTxnFields
- type ReviewTxnFields
- type Round
- type Signature
- type SignedBid
- type SignedTxn
- type Transaction
- type TxGroup
- type TxType
- type VRFPK
- type VotePK
Constants ¶
const LogicSigMaxCost = 20000
LogicSigMaxCost is a max execution const of a TEAL program
const LogicSigMaxSize = 1000
LogicSigMaxSize is a max TEAL program size (with args)
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Address ¶
type Address [hashLenBytes]byte
Address represents an Algorand address.
func DecodeAddress ¶
DecodeAddress turns a checksum address string into an Address object. It checks that the checksum is correct, and returns an error if it's not.
type AssetConfigTxnFields ¶
type AssetConfigTxnFields struct {
// ConfigAsset is the asset being configured or destroyed.
// A zero value (including the creator address) means allocation.
ConfigAsset AssetID `codec:"caid"`
// AssetParams are the parameters for the asset being
// created or re-configured. A zero value means destruction.
AssetParams AssetParams `codec:"apar"`
// contains filtered or unexported fields
}
AssetConfigTxnFields captures the fields used for asset allocation, re-configuration, and destruction.
type AssetFreezeTxnFields ¶
type AssetFreezeTxnFields struct {
// FreezeAccount is the address of the account whose asset
// slot is being frozen or un-frozen.
FreezeAccount Address `codec:"fadd"`
// FreezeAsset is the asset ID being frozen or un-frozen.
FreezeAsset AssetID `codec:"faid"`
// AssetFrozen is the new frozen value.
AssetFrozen bool `codec:"afrz"`
// contains filtered or unexported fields
}
AssetFreezeTxnFields captures the fields used for freezing asset slots.
type AssetID ¶
type AssetID struct {
Creator Address `codec:"c"`
Index uint64 `codec:"i"`
// contains filtered or unexported fields
}
AssetID is a name of an asset.
type AssetParams ¶
type AssetParams struct {
// Total specifies the total number of units of this asset
// created.
Total uint64 `codec:"t"`
// DefaultFrozen specifies whether slots for this asset
// in user accounts are frozen by default or not.
DefaultFrozen bool `codec:"df"`
// UnitName specifies a hint for the name of a unit of
// this asset.
UnitName [assetUnitNameLen]byte `codec:"un"`
// AssetName specifies a hint for the name of the asset.
AssetName [assetNameLen]byte `codec:"an"`
// Manager specifies an account that is allowed to change the
// non-zero addresses in this AssetParams.
Manager Address `codec:"m"`
// Reserve specifies an account whose holdings of this asset
// should be reported as "not minted".
Reserve Address `codec:"r"`
// Freeze specifies an account that is allowed to change the
// frozen state of holdings of this asset.
Freeze Address `codec:"f"`
// Clawback specifies an account that is allowed to take units
// of this asset from any account.
Clawback Address `codec:"c"`
// contains filtered or unexported fields
}
AssetParams describes the parameters of an asset.
type AssetTransferTxnFields ¶
type AssetTransferTxnFields struct {
XferAsset AssetID `codec:"xaid"`
// AssetAmount is the amount of asset to transfer.
// A zero amount transferred to self allocates that asset
// in the account's Assets map.
AssetAmount uint64 `codec:"aamt"`
// AssetSender is the sender of the transfer. If this is not
// a zero value, the real transaction sender must be the Clawback
// address from the AssetParams. If this is the zero value,
// the asset is sent from the transaction's Sender.
AssetSender Address `codec:"asnd"`
// AssetReceiver is the recipient of the transfer.
AssetReceiver Address `codec:"arcv"`
// AssetCloseTo indicates that the asset should be removed
// from the account's Assets map, and specifies where the remaining
// asset holdings should be transferred. It's always valid to transfer
// remaining asset holdings to the AssetID account.
AssetCloseTo Address `codec:"aclose"`
// contains filtered or unexported fields
}
AssetTransferTxnFields captures the fields used for asset transfers.
type Bid ¶
type Bid struct {
// BidderKey identifies the bidder placing this bid.
BidderKey Address `codec:"bidder"`
// BidCurrency specifies how much external currency the bidder
// is putting in with this bid.
BidCurrency uint64 `codec:"cur"`
// MaxPrice specifies the maximum price, in units of external
// currency per Algo, that the bidder is willing to pay.
// This must be at least as high as the current price of the
// auction in the block in which this bid appears.
MaxPrice uint64 `codec:"price"`
// BidID identifies this bid. The first bid by a bidder (identified
// by BidderKey) with a particular BidID on the blockchain will be
// considered, preventing replay of bids. Specifying a different
// BidID allows the bidder to place multiple bids in an auction.
BidID uint64 `codec:"id"`
// AuctionKey specifies the auction for this bid.
AuctionKey Address `codec:"auc"`
// AuctionID identifies the auction for which this bid is intended.
AuctionID uint64 `codec:"aid"`
// contains filtered or unexported fields
}
Bid represents a bid by a user as part of an auction.
type Header ¶
type Header struct {
Sender Address `codec:"snd"`
Fee MicroAlgos `codec:"fee"`
FirstValid Round `codec:"fv"`
LastValid Round `codec:"lv"`
Note []byte `codec:"note"`
ReviewNote []byte `codec:"reviewnote"` // Uniqueness or app-level data about txn
ReviewRate uint64 `codec:"reviewrate"` // Uniqueness or app-level data about txn
ReviewEval uint64 `codec:"revieweval"` // Uniqueness or app-level data about txn
RepAdjust int64 `codec:"repadjust"`
ItemID int64 `codec:"itemid"`
ItemStruct ItemStruct `codec:"itemstruct"`
ItemIterat int64 `codec:"itemiteration"`
CategoryID int64 `codec:"categoryid"`
GenesisID string `codec:"gen"`
GenesisHash Digest `codec:"gh"`
// Group specifies that this transaction is part of a
// transaction group (and, if so, specifies the hash
// of a TxGroup).
Group Digest `codec:"grp"`
// contains filtered or unexported fields
}
Header captures the fields common to every transaction type.
type ItemStruct ¶
type ItemStruct struct {
ItemName []byte `codec:"itemname"`
CategoryNa []byte `codec:"categoryname"`
// contains filtered or unexported fields
}
ItemStruct holds basic properties and an additional 3 different byte data properties.
type KeyregTxnFields ¶
type KeyregTxnFields struct {
VotePK VotePK `codec:"votekey"`
SelectionPK VRFPK `codec:"selkey"`
VoteFirst Round `codec:"votefst"`
VoteLast Round `codec:"votelst"`
VoteKeyDilution uint64 `codec:"votekd"`
// contains filtered or unexported fields
}
KeyregTxnFields captures the fields used for key registration transactions.
type LogicSig ¶
type LogicSig struct {
// Logic signed by Sig or Msig
// OR hashed to be the Address of an account.
Logic []byte `codec:"l"`
Sig Signature `codec:"sig"`
Msig MultisigSig `codec:"msig"`
// Args are not signed, but checked by Logic
Args [][]byte `codec:"arg"`
// contains filtered or unexported fields
}
LogicSig contains logic for validating a transaction. LogicSig is signed by an account, allowing delegation of operations. OR LogicSig defines a contract account.
type MasterDerivationKey ¶
type MasterDerivationKey [masterDerivationKeyLenBytes]byte
MasterDerivationKey is the secret key used to derive keys in wallets
type MicroAlgos ¶
type MicroAlgos uint64
MicroAlgos are the base unit of currency in Algorand
func ToMicroAlgos ¶
func ToMicroAlgos(algos float64) MicroAlgos
ToMicroAlgos converts amount in Algos to microAlgos
func (MicroAlgos) ToAlgos ¶
func (microalgos MicroAlgos) ToAlgos() float64
ToAlgos converts amount in microAlgos to Algos
type MultisigSig ¶
type MultisigSig struct {
Version uint8 `codec:"v"`
Threshold uint8 `codec:"thr"`
Subsigs []MultisigSubsig `codec:"subsig"`
// contains filtered or unexported fields
}
MultisigSig holds multiple Subsigs, as well as threshold and version info
func (MultisigSig) Blank ¶
func (msig MultisigSig) Blank() bool
Blank returns true iff the msig is empty. We need this instead of just comparing with == MultisigSig{}, because Subsigs is a slice.
type MultisigSubsig ¶
type MultisigSubsig struct {
Key ed25519.PublicKey `codec:"pk"`
Sig Signature `codec:"s"`
// contains filtered or unexported fields
}
MultisigSubsig contains a single public key and, optionally, a signature
type NoteField ¶
type NoteField struct {
// Type indicates which type of a message this is
Type NoteFieldType `codec:"t"`
// SignedBid, for NoteBid type
SignedBid SignedBid `codec:"b"`
// contains filtered or unexported fields
}
NoteField is the struct that represents an auction message.
type NoteFieldType ¶
type NoteFieldType string
NoteFieldType indicates a type of auction message encoded into a transaction's Note field.
const ( // NoteDeposit indicates a SignedDeposit message. NoteDeposit NoteFieldType = "d" // NoteBid indicates a SignedBid message. NoteBid NoteFieldType = "b" // NoteSettlement indicates a SignedSettlement message. NoteSettlement NoteFieldType = "s" // NoteParams indicates a SignedParams message. NoteParams NoteFieldType = "p" )
type PaymentTxnFields ¶
type PaymentTxnFields struct {
Receiver Address `codec:"rcv"`
Amount MicroAlgos `codec:"amt"`
// When CloseRemainderTo is set, it indicates that the
// transaction is requesting that the account should be
// closed, and all remaining funds be transferred to this
// address.
CloseRemainderTo Address `codec:"close"`
// contains filtered or unexported fields
}
PaymentTxnFields captures the fields used by payment transactions.
type ReviewTxnFields ¶
type ReviewTxnFields struct {
ReceiverReview Address `codec:"rcv"`
AmountReview MicroAlgos `codec:"amt"`
// When CloseRemainderToReview is set, it indicates that the
// transaction is requesting that the account should be
// closed, and all remaining funds be transferred to this
// address.
CloseRemainderToReview Address `codec:"close"`
// contains filtered or unexported fields
}
ReviewTxnFields captures the fields used by review transactions.
type SignedBid ¶
type SignedBid struct {
// Bid contains information about the bid.
Bid Bid `codec:"bid"`
// Sig is a signature by the bidder, as identified in the bid
// (Bid.BidderKey) over the hash of the Bid.
Sig Signature `codec:"sig"`
// contains filtered or unexported fields
}
SignedBid represents a signed bid by a bidder.
type SignedTxn ¶
type SignedTxn struct {
Sig Signature `codec:"sig"`
Msig MultisigSig `codec:"msig"`
Lsig LogicSig `codec:"lsig"`
Txn Transaction `codec:"txn"`
// contains filtered or unexported fields
}
SignedTxn wraps a transaction and a signature. The encoding of this struct is suitable to broadcast on the network
type Transaction ¶
type Transaction struct {
// Type of transaction
Type TxType `codec:"type"`
// Common fields for all types of transactions
Header
// Fields for different types of transactions
KeyregTxnFields
PaymentTxnFields
ReviewTxnFields
AssetConfigTxnFields
AssetTransferTxnFields
AssetFreezeTxnFields
// contains filtered or unexported fields
}
Transaction describes a transaction that can appear in a block.
type TxGroup ¶
type TxGroup struct {
// TxGroupHashes specifies a list of hashes of transactions that must appear
// together, sequentially, in a block in order for the group to be
// valid. Each hash in the list is a hash of a transaction with
// the `Group` field omitted.
TxGroupHashes []Digest `codec:"txlist"`
// contains filtered or unexported fields
}
TxGroup describes a group of transactions that must appear together in a specific order in a block.
type TxType ¶
type TxType string
TxType identifies the type of the transaction
const ( // ReviewTx is the TxType for review transactions ReviewTx TxType = "review" // PaymentTx is the TxType for payment transactions PaymentTx TxType = "pay" // KeyRegistrationTx is the TxType for key registration transactions KeyRegistrationTx TxType = "keyreg" // AssetConfigTx creates, re-configures, or destroys an asset AssetConfigTx TxType = "acfg" // AssetTransferTx transfers assets between accounts (optionally closing) AssetTransferTx TxType = "axfer" // AssetFreezeTx changes the freeze status of an asset AssetFreezeTx TxType = "afrz" )
type VRFPK ¶
type VRFPK [ed25519.PublicKeySize]byte
VRFPK is the VRF public key used in key registration transactions
type VotePK ¶
type VotePK [ed25519.PublicKeySize]byte
VotePK is the participation public key used in key registration transactions