Documentation ¶
Overview ¶
Package build implements a builder system for constructing various xdr structures used by the stellar network, most importanly transactions.
At the core of this package is the *Builder and *Mutator types. A Builder object (ex. PaymentBuilder, TransactionBuilder) contain an underlying xdr struct that is being iteratively built by having zero or more Mutator structs applied to it. See ExampleTransactionBuilder in main_test.go for an example.
Index ¶
- Constants
- Variables
- type AccountMergeBuilder
- type AccountMergeMutator
- type AllowTrustAsset
- type AllowTrustBuilder
- type AllowTrustMutator
- type Amount
- type Asset
- type Authorize
- type AutoSequence
- type BaseFee
- type BumpSequenceBuilder
- type BumpSequenceMutator
- type BumpTo
- type ChangeTrustBuilder
- type ChangeTrustMutator
- type ClearFlag
- type CreateAccountBuilder
- type CreateAccountMutator
- type CreditAmount
- type Defaults
- type Destination
- type HomeDomain
- type InflationBuilder
- type InflationDest
- type Limit
- type LiquidationBuilder
- type ManageDataBuilder
- type ManageOfferBuilder
- func CreateMarginOffer(rate Rate, amount Amount) (result ManageOfferBuilder)
- func CreateOffer(rate Rate, amount Amount) (result ManageOfferBuilder)
- func CreatePassiveOffer(rate Rate, amount Amount) (result ManageOfferBuilder)
- func DeleteOffer(rate Rate, offerID OfferID) (result ManageOfferBuilder)
- func ManageOffer(passiveOffer bool, marginOffer bool, muts ...interface{}) (result ManageOfferBuilder)
- func UpdateOffer(rate Rate, amount Amount, offerID OfferID) (result ManageOfferBuilder)
- type ManageOfferMutator
- type MasterWeight
- type MemoHash
- type MemoID
- type MemoReturn
- type MemoText
- type MockSequenceProvider
- type NativeAmount
- type Network
- type OfferID
- type OperationMutator
- type PayWithPath
- type PaymentBuilder
- type PaymentMutator
- type Price
- type Rate
- type Sequence
- type SequenceProvider
- type SetFlag
- type SetOptionsBuilder
- type SetOptionsMutator
- type Sign
- type Signer
- type SourceAccount
- type Thresholds
- type Timebounds
- type TransactionBuilder
- func (b *TransactionBuilder) Hash() ([32]byte, error)
- func (b *TransactionBuilder) HashHex() (string, error)
- func (b *TransactionBuilder) Mutate(muts ...TransactionMutator) error
- func (m *TransactionBuilder) MutateTransactionEnvelope(txe *TransactionEnvelopeBuilder) error
- func (b *TransactionBuilder) Sign(signers ...string) (TransactionEnvelopeBuilder, error)
- type TransactionEnvelopeBuilder
- func (b *TransactionEnvelopeBuilder) Base64() (string, error)
- func (b *TransactionEnvelopeBuilder) Bytes() ([]byte, error)
- func (b *TransactionEnvelopeBuilder) Init()
- func (b *TransactionEnvelopeBuilder) Mutate(muts ...TransactionEnvelopeMutator) error
- func (b *TransactionEnvelopeBuilder) MutateTX(muts ...TransactionMutator) error
- type TransactionEnvelopeMutator
- type TransactionMutator
- type Trustor
Examples ¶
Constants ¶
const ( // MemoTextMaxLength represents the maximum number of bytes a valid memo of // type "MEMO_TEXT" can be. MemoTextMaxLength = 28 )
Variables ¶
var ( // PublicNetwork is a mutator that configures the transaction for submission // to the main public stellar network. PublicNetwork = Network{network.PublicNetworkPassphrase} // TestNetwork is a mutator that configures the transaction for submission // to the test stellar network (often called testnet). TestNetwork = Network{network.TestNetworkPassphrase} // DefaultNetwork is a mutator that configures the // transaction for submission to the default stellar // network. Integrators may change this value to // another `Network` mutator if they would like to // effect the default in a process-global manner. // Replace or set your own custom passphrase on this // var to set the default network for the process. DefaultNetwork = Network{} )
var DefaultBaseFee uint64 = 100
DefaultBaseFee is used to calculate the transaction fee by default
MaxLimit represents the maximum value that can be passed as trutline Limit
Functions ¶
This section is empty.
Types ¶
type AccountMergeBuilder ¶
AccountMergeBuilder represents a transaction that is being built.
func AccountMerge ¶
func AccountMerge(muts ...interface{}) (result AccountMergeBuilder)
AccountMerge groups the creation of a new AccountMergeBuilder with a call to Mutate.
Example ¶
ExampleAccountMerge creates and signs a simple transaction with AccountMerge operation, and then encodes it into a base64 string capable of being submitted to stellar-core.
seed := "SDOTALIMPAM2IV65IOZA7KZL7XWZI5BODFXTRVLIHLQZQCKK57PH5F3H" tx, err := Transaction( SourceAccount{seed}, Sequence{1}, TestNetwork, AccountMerge( Destination{"GBDT3K42LOPSHNAEHEJ6AVPADIJ4MAR64QEKKW2LQPBSKLYD22KUEH4P"}, ), ) if err != nil { fmt.Println(err) return } txe, err := tx.Sign(seed) if err != nil { fmt.Println(err) return } txeB64, err := txe.Base64() if err != nil { fmt.Println(err) return } fmt.Printf("tx base64: %s", txeB64)
Output: tx base64: AAAAADZY/nWY0gx6beMpf4S8Ur0qHsjA8fbFtBzBx1cbQzHwAAAAZAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAgAAAAARz2rmlufI7QEORPgVeAaE8YCPuQIpVtLg8MlLwPWlUIAAAAAAAAAARtDMfAAAABAh3qZrP5T9Xg0LdzwOLx/eA/B7bzj+8j+s9eXNuu7/Ldch7I6kW5iYz6Vfy32FVnKNtoykToB7nQY2o2vo1tqAw==
func (*AccountMergeBuilder) Mutate ¶
func (b *AccountMergeBuilder) Mutate(muts ...interface{})
Mutate applies the provided mutators to this builder's payment or operation.
func (AccountMergeBuilder) MutateTransaction ¶
func (m AccountMergeBuilder) MutateTransaction(o *TransactionBuilder) error
MutateTransaction for AccountMergeBuilder causes the underylying Destination to be added to the operation list for the provided transaction
type AccountMergeMutator ¶
type AccountMergeMutator interface {
MutateAccountMerge(*AccountMergeBuilder) error
}
AccountMergeMutator is a interface that wraps the MutateAccountMerge operation. types may implement this interface to specify how they modify an xdr.AccountMergeBuilder object
type AllowTrustAsset ¶
type AllowTrustAsset struct {
Code string
}
AllowTrustAsset is a mutator capable of setting the asset on an operations that have one.
func (AllowTrustAsset) MutateAllowTrust ¶
func (m AllowTrustAsset) MutateAllowTrust(o *xdr.AllowTrustOp) (err error)
MutateAllowTrust for Asset sets the AllowTrustOp's Asset field
type AllowTrustBuilder ¶
type AllowTrustBuilder struct { O xdr.Operation AT xdr.AllowTrustOp Err error }
AllowTrustBuilder represents a transaction that is being built.
func AllowTrust ¶
func AllowTrust(muts ...interface{}) (result AllowTrustBuilder)
AllowTrust groups the creation of a new AllowTrustBuilder with a call to Mutate.
func (*AllowTrustBuilder) Mutate ¶
func (b *AllowTrustBuilder) Mutate(muts ...interface{})
Mutate applies the provided mutators to this builder's payment or operation.
func (AllowTrustBuilder) MutateTransaction ¶
func (m AllowTrustBuilder) MutateTransaction(o *TransactionBuilder) error
MutateTransaction for AllowTrustBuilder causes the underylying AllowTrustOp to be added to the operation list for the provided transaction
type AllowTrustMutator ¶
type AllowTrustMutator interface {
MutateAllowTrust(*xdr.AllowTrustOp) error
}
AllowTrustMutator is a interface that wraps the MutateAllowTrust operation. types may implement this interface to specify how they modify an xdr.AllowTrustOp object
type Amount ¶
type Amount string
Amount is a mutator capable of setting the amount
func (Amount) MutateManageOffer ¶
MutateManageOffer for Amount sets the ManageOfferOp's Amount field
type Asset ¶
Asset is struct used in path_payment mutators
func CreditAsset ¶
CreditAsset is a helper method to create credit Asset object
func NativeAsset ¶
func NativeAsset() Asset
NativeAsset is a helper method to create native Asset object
func (Asset) MutateChangeTrust ¶
func (m Asset) MutateChangeTrust(o *xdr.ChangeTrustOp) (err error)
MutateChangeTrust for Asset sets the ChangeTrustOp's Line field
type Authorize ¶
type Authorize struct {
Value bool
}
Authorize is a mutator capable of setting the `authorize` flag
func (Authorize) MutateAllowTrust ¶
func (m Authorize) MutateAllowTrust(o *xdr.AllowTrustOp) error
MutateAllowTrust for Authorize sets the AllowTrustOp's Authorize field
type AutoSequence ¶
type AutoSequence struct {
SequenceProvider
}
AutoSequence loads the sequence to use for the transaction from an external provider.
func (AutoSequence) MutateTransaction ¶
func (m AutoSequence) MutateTransaction(o *TransactionBuilder) error
MutateTransaction for AutoSequence loads the sequence and sets it on the tx. NOTE: this mutator assumes that the source account has already been set on the transaction and will error if that has not occurred.
type BaseFee ¶
type BaseFee struct {
Amount uint64
}
BaseFee is a mutator capable of setting the base fee
func (BaseFee) MutateTransaction ¶
func (m BaseFee) MutateTransaction(o *TransactionBuilder) error
MutateTransaction for BaseFee sets the base fee
type BumpSequenceBuilder ¶
type BumpSequenceBuilder struct { O xdr.Operation BS xdr.BumpSequenceOp Err error }
BumpSequenceBuilder helps to build BumpSequenceOp structs.
func BumpSequence ¶
func BumpSequence(muts ...interface{}) (result BumpSequenceBuilder)
BumpSequence groups the creation of a new BumpSequenceBuilder with a call to Mutate. Requires the BumpTo mutator to be set.
Example ¶
ExampleBumpSequence creates a transaction to bump sequence of a given account. It then encodes the transaction into a base64 string capable of being submitted to stellar-core. It uses the transaction builder system.
seed := "SDOTALIMPAM2IV65IOZA7KZL7XWZI5BODFXTRVLIHLQZQCKK57PH5F3H" tx, err := Transaction( SourceAccount{seed}, Sequence{1}, TestNetwork, BumpSequence( BumpTo(5), ), ) if err != nil { fmt.Println(err) return } txe, err := tx.Sign(seed) if err != nil { fmt.Println(err) return } txeB64, err := txe.Base64() if err != nil { fmt.Println(err) return } fmt.Printf("tx base64: %s", txeB64)
Output: tx base64: AAAAADZY/nWY0gx6beMpf4S8Ur0qHsjA8fbFtBzBx1cbQzHwAAAAZAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAsAAAAAAAAABQAAAAAAAAABG0Mx8AAAAEAZkMhF/4tin/eiAw+yj13iQ9xApg0wadSyIMdk2D73RvwvgxwqfAGF6qmL1d8qqrjClZ7Vi0MYBDPxOQchwMQA
func (*BumpSequenceBuilder) Mutate ¶
func (b *BumpSequenceBuilder) Mutate(muts ...interface{})
Mutate applies the provided mutators to this builder's payment or operation.
func (BumpSequenceBuilder) MutateTransaction ¶
func (m BumpSequenceBuilder) MutateTransaction(o *TransactionBuilder) error
MutateTransaction for BumpSequenceBuilder causes the underylying BumpSequenceOp to be added to the operation list for the provided transaction
type BumpSequenceMutator ¶
type BumpSequenceMutator interface {
MutateBumpSequence(*xdr.BumpSequenceOp) error
}
BumpSequenceMutator is a interface that wraps the MutateBumpSequence operation. types may implement this interface to specify how they modify an xdr.BumpSequenceOp object
type BumpTo ¶
type BumpTo int64
BumpTo sets sequence number on BumpSequence operation
func (BumpTo) MutateBumpSequence ¶
func (m BumpTo) MutateBumpSequence(o *xdr.BumpSequenceOp) (err error)
MutateBumpSequence for BumpTo sets the BumpSequenceOp's StartingBalance field
type ChangeTrustBuilder ¶
type ChangeTrustBuilder struct { O xdr.Operation CT xdr.ChangeTrustOp Err error }
ChangeTrustBuilder represents a transaction that is being built.
func ChangeTrust ¶
func ChangeTrust(muts ...interface{}) (result ChangeTrustBuilder)
ChangeTrust groups the creation of a new ChangeTrustBuilder with a call to Mutate.
Example ¶
ExampleChangeTrust creates and signs a simple transaction with ChangeTrust operation, and then encodes it into a base64 string capable of being submitted to stellar-core.
seed := "SDOTALIMPAM2IV65IOZA7KZL7XWZI5BODFXTRVLIHLQZQCKK57PH5F3H" tx, err := Transaction( SourceAccount{seed}, Sequence{1}, TestNetwork, Trust("USD", "GAWSI2JO2CF36Z43UGMUJCDQ2IMR5B3P5TMS7XM7NUTU3JHG3YJUDQXA", Limit("100.25")), ) if err != nil { fmt.Println(err) return } txe, err := tx.Sign(seed) if err != nil { fmt.Println(err) return } txeB64, err := txe.Base64() if err != nil { fmt.Println(err) return } fmt.Printf("tx base64: %s", txeB64)
Output: tx base64: AAAAADZY/nWY0gx6beMpf4S8Ur0qHsjA8fbFtBzBx1cbQzHwAAAAZAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAYAAAABVVNEAAAAAAAtJGku0Iu/Z5uhmUSIcNIZHodv7Nkv3Z9tJ02k5t4TQQAAAAA7wO+gAAAAAAAAAAEbQzHwAAAAQOIy19X38Y3jcFzvhDsmXu6iDzrzb4iwfS2NAq9GGAFiRJUGoFX85vKtlNcXzQppF4X8oIMNPEb74fuZE/N+GAE=
Example (MaxLimit) ¶
ExampleChangeTrust_maxLimit creates and signs a simple transaction with ChangeTrust operation (maximum limit), and then encodes it into a base64 string capable of being submitted to stellar-core.
seed := "SDOTALIMPAM2IV65IOZA7KZL7XWZI5BODFXTRVLIHLQZQCKK57PH5F3H" tx, err := Transaction( SourceAccount{seed}, Sequence{1}, TestNetwork, Trust("USD", "GAWSI2JO2CF36Z43UGMUJCDQ2IMR5B3P5TMS7XM7NUTU3JHG3YJUDQXA"), ) if err != nil { fmt.Println(err) return } txe, err := tx.Sign(seed) if err != nil { fmt.Println(err) return } txeB64, err := txe.Base64() if err != nil { fmt.Println(err) return } fmt.Printf("tx base64: %s", txeB64)
Output: tx base64: AAAAADZY/nWY0gx6beMpf4S8Ur0qHsjA8fbFtBzBx1cbQzHwAAAAZAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAYAAAABVVNEAAAAAAAtJGku0Iu/Z5uhmUSIcNIZHodv7Nkv3Z9tJ02k5t4TQX//////////AAAAAAAAAAEbQzHwAAAAQJQC6R3RqNaw5rOmaxqpAE0lD5onM/njn9I2RVlhtS2SGi2Z7xm65USYVWXTJFVqTCfTwwu+QXFcOuqgJjVtHAk=
func RemoveTrust ¶
func RemoveTrust(code, issuer string, args ...interface{}) (result ChangeTrustBuilder)
RemoveTrust is a helper that creates ChangeTrustBuilder
Example ¶
ExampleRemoveTrust creates and signs a simple transaction with ChangeTrust operation (remove trust), and then encodes it into a base64 string capable of being submitted to stellar-core.
seed := "SDOTALIMPAM2IV65IOZA7KZL7XWZI5BODFXTRVLIHLQZQCKK57PH5F3H" operationSource := "GCVJCNUHSGKOTBBSXZJ7JJZNOSE2YDNGRLIDPMQDUEQWJQSE6QZSDPNU" tx, err := Transaction( SourceAccount{seed}, Sequence{1}, TestNetwork, RemoveTrust( "USD", "GAWSI2JO2CF36Z43UGMUJCDQ2IMR5B3P5TMS7XM7NUTU3JHG3YJUDQXA", SourceAccount{operationSource}, ), ) if err != nil { fmt.Println(err) return } txe, err := tx.Sign(seed) if err != nil { fmt.Println(err) return } txeB64, err := txe.Base64() if err != nil { fmt.Println(err) return } fmt.Printf("tx base64: %s", txeB64)
Output: tx base64: AAAAADZY/nWY0gx6beMpf4S8Ur0qHsjA8fbFtBzBx1cbQzHwAAAAZAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAQAAAACqkTaHkZTphDK+U/SnLXSJrA2mitA3sgOhIWTCRPQzIQAAAAYAAAABVVNEAAAAAAAtJGku0Iu/Z5uhmUSIcNIZHodv7Nkv3Z9tJ02k5t4TQQAAAAAAAAAAAAAAAAAAAAEbQzHwAAAAQD5FeGBEwJyeauK+WKfcxYBeKw62EtCqvC0p9Z+1cY32fKQ+5Jz9uE1LaDsHW5NurtStKcUTiG5j2qNDf1QpYgw=
func Trust ¶
func Trust(code, issuer string, args ...interface{}) (result ChangeTrustBuilder)
Trust is a helper that creates ChangeTrustBuilder
func (*ChangeTrustBuilder) Mutate ¶
func (b *ChangeTrustBuilder) Mutate(muts ...interface{})
Mutate applies the provided mutators to this builder's payment or operation.
func (ChangeTrustBuilder) MutateTransaction ¶
func (m ChangeTrustBuilder) MutateTransaction(o *TransactionBuilder) error
MutateTransaction for ChangeTrustBuilder causes the underylying CreateAccountOp to be added to the operation list for the provided transaction
type ChangeTrustMutator ¶
type ChangeTrustMutator interface {
MutateChangeTrust(*xdr.ChangeTrustOp) error
}
ChangeTrustMutator is a interface that wraps the MutateChangeTrust operation. types may implement this interface to specify how they modify an xdr.ChangeTrustOp object
type ClearFlag ¶
type ClearFlag int32
ClearFlag is a mutator capable of clearing account flags
func ClearAuthImmutable ¶
func ClearAuthImmutable() ClearFlag
ClearAuthImmutable clears AuthImmutableFlag on SetOptions operation
func ClearAuthRequired ¶
func ClearAuthRequired() ClearFlag
ClearAuthRequired clears AuthRequiredFlag on SetOptions operation
func ClearAuthRevocable ¶
func ClearAuthRevocable() ClearFlag
ClearAuthRevocable clears AuthRevocableFlag on SetOptions operation
func ClearBaseAsset ¶
func ClearBaseAsset() ClearFlag
ClearBaseAsset clears BaseAssetFlag on SetOptions operation
func (ClearFlag) MutateSetOptions ¶
func (m ClearFlag) MutateSetOptions(o *xdr.SetOptionsOp) (err error)
MutateSetOptions for ClearFlag sets the SetOptionsOp's ClearFlags field
func (ClearFlag) MutateTransaction ¶
func (m ClearFlag) MutateTransaction(t *TransactionBuilder) error
MutateTransaction for ClearFlag allows creating an operation using a single mutator
type CreateAccountBuilder ¶
type CreateAccountBuilder struct { O xdr.Operation CA xdr.CreateAccountOp Err error }
CreateAccountBuilder helps to build CreateAccountOp structs.
func CreateAccount ¶
func CreateAccount(muts ...interface{}) (result CreateAccountBuilder)
CreateAccount groups the creation of a new CreateAccountBuilder with a call to Mutate. Requires the Destination and NativeAmount mutators to be set.
Example ¶
ExampleCreateAccount creates a transaction to fund a new stallar account with a balance. It then encodes the transaction into a base64 string capable of being submitted to stellar-core. It uses the transaction builder system.
seed := "SDOTALIMPAM2IV65IOZA7KZL7XWZI5BODFXTRVLIHLQZQCKK57PH5F3H" tx, err := Transaction( SourceAccount{seed}, Sequence{1}, TestNetwork, CreateAccount( Destination{"GAWSI2JO2CF36Z43UGMUJCDQ2IMR5B3P5TMS7XM7NUTU3JHG3YJUDQXA"}, NativeAmount{"50"}, ), ) if err != nil { fmt.Println(err) return } txe, err := tx.Sign(seed) if err != nil { fmt.Println(err) return } txeB64, err := txe.Base64() if err != nil { fmt.Println(err) return } fmt.Printf("tx base64: %s", txeB64)
Output: tx base64: AAAAADZY/nWY0gx6beMpf4S8Ur0qHsjA8fbFtBzBx1cbQzHwAAAAZAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAALSRpLtCLv2eboZlEiHDSGR6Hb+zZL92fbSdNpObeE0EAAAAAHc1lAAAAAAAAAAABG0Mx8AAAAEDiHQEurLITX87zmkEi8Rrcf5wGp1JrLnSDoTJiN+yNjJZVF3WcBJgoGyIJ3NJo+tNmTqALVrJziiiZGdoukxcN
func (*CreateAccountBuilder) Mutate ¶
func (b *CreateAccountBuilder) Mutate(muts ...interface{})
Mutate applies the provided mutators to this builder's payment or operation.
func (CreateAccountBuilder) MutateTransaction ¶
func (m CreateAccountBuilder) MutateTransaction(o *TransactionBuilder) error
MutateTransaction for CreateAccountBuilder causes the underylying CreateAccountOp to be added to the operation list for the provided transaction
type CreateAccountMutator ¶
type CreateAccountMutator interface {
MutateCreateAccount(*xdr.CreateAccountOp) error
}
CreateAccountMutator is a interface that wraps the MutateCreateAccount operation. types may implement this interface to specify how they modify an xdr.PaymentOp object
type CreditAmount ¶
CreditAmount is a mutator that configures a payment to be using credit asset and have the amount provided.
func (CreditAmount) MutatePayment ¶
func (m CreditAmount) MutatePayment(o interface{}) (err error)
MutatePayment for Asset sets the PaymentOp's Asset field
type Defaults ¶
type Defaults struct{}
Defaults is a mutator that sets defaults
func (Defaults) MutateTransaction ¶
func (m Defaults) MutateTransaction(o *TransactionBuilder) error
MutateTransaction for Defaults sets reasonable defaults on the transaction being built
type Destination ¶
type Destination struct {
AddressOrSeed string
}
Destination is a mutator capable of setting the destination on an operations that have one.
func (Destination) MutateAccountMerge ¶
func (m Destination) MutateAccountMerge(o *AccountMergeBuilder) error
MutateAccountMerge for Destination sets the AccountMergeBuilder's Destination field
func (Destination) MutateCreateAccount ¶
func (m Destination) MutateCreateAccount(o *xdr.CreateAccountOp) error
MutateCreateAccount for Destination sets the CreateAccountOp's Destination field
func (Destination) MutatePayment ¶
func (m Destination) MutatePayment(o interface{}) error
MutatePayment for Destination sets the PaymentOp's Destination field
type HomeDomain ¶
type HomeDomain string
HomeDomain is a mutator capable of setting home domain of the account
func (HomeDomain) MutateSetOptions ¶
func (m HomeDomain) MutateSetOptions(o *xdr.SetOptionsOp) (err error)
MutateSetOptions for HomeDomain sets the SetOptionsOp's HomeDomain field
func (HomeDomain) MutateTransaction ¶
func (m HomeDomain) MutateTransaction(t *TransactionBuilder) error
MutateTransaction for HomeDomain allows creating an operation using a single mutator
type InflationBuilder ¶
InflationBuilder represents an operation that is being built.
func Inflation ¶
func Inflation(muts ...interface{}) (result InflationBuilder)
Inflation groups the creation of a new InflationBuilder with a call to Mutate.
Example ¶
ExampleInflation creates and signs a simple transaction with Inflation operation, and then encodes it into a base64 string capable of being submitted to stellar-core.
seed := "SDOTALIMPAM2IV65IOZA7KZL7XWZI5BODFXTRVLIHLQZQCKK57PH5F3H" tx, err := Transaction( SourceAccount{seed}, Sequence{1}, TestNetwork, Inflation(), ) if err != nil { fmt.Println(err) return } txe, err := tx.Sign(seed) if err != nil { fmt.Println(err) return } txeB64, err := txe.Base64() if err != nil { fmt.Println(err) return } fmt.Printf("tx base64: %s", txeB64)
Output: tx base64: AAAAADZY/nWY0gx6beMpf4S8Ur0qHsjA8fbFtBzBx1cbQzHwAAAAZAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAkAAAAAAAAAARtDMfAAAABAzzDG4V7KzynWY0ER/V4HH0WgDvl3hrIizDcKW3qEQY4Ib3yXufVvdbzsET/Dj5js5dgDkcYgikHwRCpqi/J8BQ==
func (*InflationBuilder) Mutate ¶
func (b *InflationBuilder) Mutate(muts ...interface{})
Mutate applies the provided mutators to this builder's operation.
func (InflationBuilder) MutateTransaction ¶
func (m InflationBuilder) MutateTransaction(o *TransactionBuilder) error
MutateTransaction for InflationBuilder causes the underylying InflationOp to be added to the operation list for the provided transaction
type InflationDest ¶
type InflationDest string
InflationDest is a mutator capable of setting the inflation destination
func (InflationDest) MutateSetOptions ¶
func (m InflationDest) MutateSetOptions(o *xdr.SetOptionsOp) (err error)
MutateSetOptions for InflationDest sets the SetOptionsOp's InflationDest field
func (InflationDest) MutateTransaction ¶
func (m InflationDest) MutateTransaction(t *TransactionBuilder) error
MutateTransaction for InflationDest allows creating an operation using a single mutator
type Limit ¶
type Limit Amount
Limit is a mutator that sets a limit on the change_trust operation
func (Limit) MutateChangeTrust ¶
func (m Limit) MutateChangeTrust(o *xdr.ChangeTrustOp) (err error)
MutateChangeTrust for Limit sets the ChangeTrustOp's Limit field
type LiquidationBuilder ¶
InflationBuilder represents an operation that is being built.
func Liquidation ¶
func Liquidation(muts ...interface{}) (result LiquidationBuilder)
Liquidation groups the creation of a new LiquidationBuilder with a call to Mutate.
func (*LiquidationBuilder) Mutate ¶
func (b *LiquidationBuilder) Mutate(muts ...interface{})
Mutate applies the provided mutators to this builder's operation.
func (LiquidationBuilder) MutateTransaction ¶
func (m LiquidationBuilder) MutateTransaction(o *TransactionBuilder) error
MutateTransaction for LiquidationBuilder causes the underylying LiquidationOp to be added to the operation list for the provided transaction
type ManageDataBuilder ¶
type ManageDataBuilder struct { O xdr.Operation MD xdr.ManageDataOp Err error }
ManageDataBuilder helps to build ManageDataOp structs.
func ClearData ¶
func ClearData(name string, muts ...interface{}) (result ManageDataBuilder)
ClearData removes a key/value pair associated with the source account
func SetData ¶
func SetData(name string, value []byte, muts ...interface{}) (result ManageDataBuilder)
SetData sets a key/value pair associated with the source account, updating it if one already exists.
func (*ManageDataBuilder) Mutate ¶
func (b *ManageDataBuilder) Mutate(muts ...interface{})
Mutate applies the provided mutators to this builder's payment or operation.
func (ManageDataBuilder) MutateTransaction ¶
func (m ManageDataBuilder) MutateTransaction(o *TransactionBuilder) error
MutateTransaction for ManageDataBuilder causes the underylying ManageData to be added to the operation list for the provided transaction
type ManageOfferBuilder ¶
type ManageOfferBuilder struct { PassiveOffer bool MarginOffer bool O xdr.Operation MO xdr.ManageOfferOp PO xdr.CreatePassiveOfferOp MAO xdr.CreateMarginOfferOp Err error }
ManageOfferBuilder represents a transaction that is being built.
func CreateMarginOffer ¶
func CreateMarginOffer(rate Rate, amount Amount) (result ManageOfferBuilder)
CreateMarginOffer creates a new margin offer
func CreateOffer ¶
func CreateOffer(rate Rate, amount Amount) (result ManageOfferBuilder)
CreateOffer creates a new offer
func CreatePassiveOffer ¶
func CreatePassiveOffer(rate Rate, amount Amount) (result ManageOfferBuilder)
CreatePassiveOffer creates a new passive offer
Example ¶
ExampleCreatePassiveOffer creates and signs a simple transaction with CreatePassiveOffer operation, and then encodes it into a base64 string capable of being submitted to stellar-core.
rate := Rate{ Selling: NativeAsset(), Buying: CreditAsset("USD", "GAWSI2JO2CF36Z43UGMUJCDQ2IMR5B3P5TMS7XM7NUTU3JHG3YJUDQXA"), Price: Price("125.12"), } seed := "SDOTALIMPAM2IV65IOZA7KZL7XWZI5BODFXTRVLIHLQZQCKK57PH5F3H" tx, err := Transaction( SourceAccount{seed}, Sequence{1}, TestNetwork, CreatePassiveOffer(rate, "20"), ) if err != nil { fmt.Println(err) return } txe, err := tx.Sign(seed) if err != nil { fmt.Println(err) return } txeB64, err := txe.Base64() if err != nil { fmt.Println(err) return } fmt.Printf("tx base64: %s", txeB64)
Output: tx base64: AAAAADZY/nWY0gx6beMpf4S8Ur0qHsjA8fbFtBzBx1cbQzHwAAAAZAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAQAAAAAAAAAAVVTRAAAAAAALSRpLtCLv2eboZlEiHDSGR6Hb+zZL92fbSdNpObeE0EAAAAAC+vCAAAADDgAAAAZAAAAAAAAAAEbQzHwAAAAQHv/1xLn+ArfIUoWjn3V0zVka6tulqMYx4zJZhGqdmTw8iCXY0ZtHS+y+7YGgR3vM1DpKOdvWTmhee+sCXIppQA=
func DeleteOffer ¶
func DeleteOffer(rate Rate, offerID OfferID) (result ManageOfferBuilder)
DeleteOffer deletes an existing offer
func ManageOffer ¶
func ManageOffer(passiveOffer bool, marginOffer bool, muts ...interface{}) (result ManageOfferBuilder)
ManageOffer groups the creation of a new ManageOfferBuilder with a call to Mutate.
Example ¶
ExampleManageOffer creates and signs a simple transaction with ManageOffer operations, and then encodes it into a base64 string capable of being submitted to stellar-core.
rate := Rate{ Selling: NativeAsset(), Buying: CreditAsset("USD", "GAWSI2JO2CF36Z43UGMUJCDQ2IMR5B3P5TMS7XM7NUTU3JHG3YJUDQXA"), Price: Price("125.12"), } seed := "SDOTALIMPAM2IV65IOZA7KZL7XWZI5BODFXTRVLIHLQZQCKK57PH5F3H" tx, err := Transaction( SourceAccount{seed}, Sequence{1}, TestNetwork, CreateOffer(rate, "20"), UpdateOffer(rate, "40", OfferID(2)), DeleteOffer(rate, OfferID(1)), ) if err != nil { fmt.Println(err) return } txe, err := tx.Sign(seed) if err != nil { fmt.Println(err) return } txeB64, err := txe.Base64() if err != nil { fmt.Println(err) return } fmt.Printf("tx base64: %s", txeB64)
Output: tx base64: AAAAADZY/nWY0gx6beMpf4S8Ur0qHsjA8fbFtBzBx1cbQzHwAAABLAAAAAAAAAABAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAVVTRAAAAAAALSRpLtCLv2eboZlEiHDSGR6Hb+zZL92fbSdNpObeE0EAAAAAC+vCAAAADDgAAAAZAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABVVNEAAAAAAAtJGku0Iu/Z5uhmUSIcNIZHodv7Nkv3Z9tJ02k5t4TQQAAAAAX14QAAAAMOAAAABkAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAFVU0QAAAAAAC0kaS7Qi79nm6GZRIhw0hkeh2/s2S/dn20nTaTm3hNBAAAAAAAAAAAAAAw4AAAAGQAAAAAAAAABAAAAAAAAAAEbQzHwAAAAQBfosk+t8qpULHP4ppNX2xVPih8lmnbHFZdeuxSP6pgpCCX05S7zZ4PsjVQY2nOnLru6mBTc1r8So+vxHs3FXAc=
func UpdateOffer ¶
func UpdateOffer(rate Rate, amount Amount, offerID OfferID) (result ManageOfferBuilder)
UpdateOffer updates an existing offer
func (*ManageOfferBuilder) Mutate ¶
func (b *ManageOfferBuilder) Mutate(muts ...interface{})
Mutate applies the provided mutators to this builder's offer or operation.
func (ManageOfferBuilder) MutateTransaction ¶
func (m ManageOfferBuilder) MutateTransaction(o *TransactionBuilder) error
MutateTransaction for ManageOfferBuilder causes the underylying ManageData to be added to the operation list for the provided transaction
type ManageOfferMutator ¶
type ManageOfferMutator interface {
MutateManageOffer(interface{}) error
}
ManageOfferMutator is a interface that wraps the MutateManageOffer operation. types may implement this interface to specify how they modify an xdr.ManageOfferOp object
type MasterWeight ¶
type MasterWeight uint32
MasterWeight is a mutator that sets account's master weight
func (MasterWeight) MutateSetOptions ¶
func (m MasterWeight) MutateSetOptions(o *xdr.SetOptionsOp) (err error)
MutateSetOptions for MasterWeight sets the SetOptionsOp's MasterWeight field
func (MasterWeight) MutateTransaction ¶
func (m MasterWeight) MutateTransaction(t *TransactionBuilder) error
MutateTransaction for MasterWeight allows creating an operation using a single mutator
type MemoHash ¶
MemoHash is a mutator that sets a memo on the mutated transaction of type MEMO_HASH.
func (MemoHash) MutateTransaction ¶
func (m MemoHash) MutateTransaction(o *TransactionBuilder) (err error)
MutateTransaction for MemoHash sets the memo.
type MemoID ¶
type MemoID struct {
Value uint64
}
MemoID is a mutator that sets a memo on the mutated transaction of type MEMO_ID.
func (MemoID) MutateTransaction ¶
func (m MemoID) MutateTransaction(o *TransactionBuilder) (err error)
MutateTransaction for MemoID sets the memo.
type MemoReturn ¶
MemoReturn is a mutator that sets a memo on the mutated transaction of type MEMO_RETURN.
func (MemoReturn) MutateTransaction ¶
func (m MemoReturn) MutateTransaction(o *TransactionBuilder) (err error)
MutateTransaction for MemoReturn sets the memo.
type MemoText ¶
type MemoText struct {
Value string
}
MemoText is a mutator that sets a memo on the mutated transaction of type MEMO_TEXT.
func (MemoText) MutateTransaction ¶
func (m MemoText) MutateTransaction(o *TransactionBuilder) (err error)
MutateTransaction for MemoText sets the memo.
type MockSequenceProvider ¶
type MockSequenceProvider struct {
Data map[string]xdr.SequenceNumber
}
MockSequenceProvider is a mock sequence provider.
func (*MockSequenceProvider) SequenceForAccount ¶
func (sp *MockSequenceProvider) SequenceForAccount( accountID string, ) (xdr.SequenceNumber, error)
SequenceForAccount implements `SequenceProvider`
type NativeAmount ¶
type NativeAmount struct {
Amount string
}
NativeAmount is a mutator that configures a payment to be using native currency and have the amount provided (in lumens).
func (NativeAmount) MutateCreateAccount ¶
func (m NativeAmount) MutateCreateAccount(o *xdr.CreateAccountOp) (err error)
MutateCreateAccount for NativeAmount sets the CreateAccountOp's StartingBalance field
func (NativeAmount) MutatePayment ¶
func (m NativeAmount) MutatePayment(o interface{}) (err error)
MutatePayment for NativeAmount sets the PaymentOp's currency field to native and sets its amount to the provided integer
type Network ¶
type Network struct {
Passphrase string
}
Network establishes the stellar network that a transaction should apply to. This modifier influences how a transaction is hashed for the purposes of signature generation.
func (Network) MutateTransaction ¶
func (m Network) MutateTransaction(o *TransactionBuilder) error
MutateTransaction for Network sets the Network ID to use when signing this transaction
type OfferID ¶
type OfferID uint64
OfferID is a mutator that sets offer ID on offer operations
func (OfferID) MutateManageOffer ¶
MutateManageOffer for OfferID sets the ManageOfferOp's OfferID field
type OperationMutator ¶
OperationMutator is a interface that wraps the MutateOperation operation. types may implement this interface to specify how they modify an xdr.Operation object
type PayWithPath ¶
PayWithPath is a mutator that configures a path_payment's send asset and max amount
func PayWith ¶
func PayWith(sendAsset Asset, maxAmount string) PayWithPath
PayWith is a helper to create PayWithPath struct
func (PayWithPath) MutatePayment ¶
func (m PayWithPath) MutatePayment(o interface{}) (err error)
MutatePayment for PayWithPath sets the PathPaymentOp's SendAsset, SendMax and Path fields
func (PayWithPath) Through ¶
func (pathSend PayWithPath) Through(asset Asset) PayWithPath
Through appends a new asset to the path
type PaymentBuilder ¶
type PaymentBuilder struct { PathPayment bool O xdr.Operation P xdr.PaymentOp PP xdr.PathPaymentOp Err error }
PaymentBuilder represents a transaction that is being built.
func Payment ¶
func Payment(muts ...interface{}) (result PaymentBuilder)
Payment groups the creation of a new PaymentBuilder with a call to Mutate. Requires the Destination and NativeAmount mutators to be set.
Example ¶
ExamplePayment creates and signs a native-asset Payment, encodes it into a base64 string capable of being submitted to stellar-core. It uses the transaction builder system.
seed := "SDOTALIMPAM2IV65IOZA7KZL7XWZI5BODFXTRVLIHLQZQCKK57PH5F3H" tx, err := Transaction( SourceAccount{seed}, Sequence{1}, TestNetwork, Payment( Destination{"GAWSI2JO2CF36Z43UGMUJCDQ2IMR5B3P5TMS7XM7NUTU3JHG3YJUDQXA"}, NativeAmount{"50"}, ), ) if err != nil { fmt.Println(err) return } txe, err := tx.Sign(seed) if err != nil { fmt.Println(err) return } txeB64, err := txe.Base64() if err != nil { fmt.Println(err) return } fmt.Printf("tx base64: %s", txeB64)
Output: tx base64: AAAAADZY/nWY0gx6beMpf4S8Ur0qHsjA8fbFtBzBx1cbQzHwAAAAZAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAALSRpLtCLv2eboZlEiHDSGR6Hb+zZL92fbSdNpObeE0EAAAAAAAAAAB3NZQAAAAAAAAAAARtDMfAAAABA2oIeQxoJl53RMRWFeLB865zcky39f2gf2PmUubCuJYccEePRSrTC8QQrMOgGwD8a6oe8dgltvezdDsmmXBPyBw==
func (*PaymentBuilder) Mutate ¶
func (b *PaymentBuilder) Mutate(muts ...interface{})
Mutate applies the provided mutators to this builder's payment or operation.
func (PaymentBuilder) MutateTransaction ¶
func (m PaymentBuilder) MutateTransaction(o *TransactionBuilder) error
MutateTransaction for PaymentBuilder causes the underylying PaymentOp or PathPaymentOp to be added to the operation list for the provided transaction
type PaymentMutator ¶
type PaymentMutator interface {
MutatePayment(interface{}) error
}
PaymentMutator is a interface that wraps the MutatePayment operation. types may implement this interface to specify how they modify an xdr.PaymentOp object
type Rate ¶
Rate is a mutator that sets selling/buying asset and price on offer operations
func (Rate) MutateManageOffer ¶
MutateManageOffer for Rate sets the ManageOfferOp's selling, buying and price fields
type Sequence ¶
type Sequence struct {
Sequence uint64
}
Sequence is a mutator that sets the sequence number on a transaction
func (Sequence) MutateTransaction ¶
func (m Sequence) MutateTransaction(o *TransactionBuilder) error
MutateTransaction for Sequence sets the SeqNum on the transaction.
type SequenceProvider ¶
type SequenceProvider interface {
SequenceForAccount(aid string) (xdr.SequenceNumber, error)
}
SequenceProvider is the interface that other packages may implement to be used with the `AutoSequence` mutator.
type SetFlag ¶
type SetFlag int32
SetFlag is a mutator capable of setting account flags
func SetAuthImmutable ¶
func SetAuthImmutable() SetFlag
SetAuthImmutable sets AuthImmutableFlag on SetOptions operation
func SetAuthRequired ¶
func SetAuthRequired() SetFlag
SetAuthRequired sets AuthRequiredFlag on SetOptions operation
func SetAuthRevocable ¶
func SetAuthRevocable() SetFlag
SetAuthRevocable sets AuthRevocableFlag on SetOptions operation
func SetBaseAsset ¶
func SetBaseAsset() SetFlag
SetBaseAsset sets BaseAssetFlag on SetOptions operation
func (SetFlag) MutateSetOptions ¶
func (m SetFlag) MutateSetOptions(o *xdr.SetOptionsOp) (err error)
MutateSetOptions for SetFlag sets the SetOptionsOp's SetFlags field
func (SetFlag) MutateTransaction ¶
func (m SetFlag) MutateTransaction(t *TransactionBuilder) error
MutateTransaction for SetFlag allows creating an operation using a single mutator
type SetOptionsBuilder ¶
type SetOptionsBuilder struct { O xdr.Operation SO xdr.SetOptionsOp Err error }
SetOptionsBuilder represents a transaction that is being built.
func SetOptions ¶
func SetOptions(muts ...interface{}) (result SetOptionsBuilder)
SetOptions groups the creation of a new SetOptions with a call to Mutate.
Example ¶
ExampleSetOptions creates and signs a simple transaction with SetOptions operation, and then encodes it into a base64 string capable of being submitted to stellar-core.
seed := "SDOTALIMPAM2IV65IOZA7KZL7XWZI5BODFXTRVLIHLQZQCKK57PH5F3H" tx, err := Transaction( SourceAccount{seed}, Sequence{1}, TestNetwork, SetOptions( InflationDest("GCT7S5BA6ZC7SV7GGEMEYJTWOBYTBOA7SC4JEYP7IAEDG7HQNIWKRJ4G"), SetAuthRequired(), SetAuthRevocable(), SetAuthImmutable(), ClearAuthRequired(), ClearAuthRevocable(), ClearAuthImmutable(), MasterWeight(1), SetThresholds(2, 3, 4), HomeDomain("stellar.org"), AddSigner("GC6DDGPXVWXD5V6XOWJ7VUTDYI7VKPV2RAJWBVBHR47OPV5NASUNHTJW", 5), ), ) if err != nil { fmt.Println(err) return } txe, err := tx.Sign(seed) if err != nil { fmt.Println(err) return } txeB64, err := txe.Base64() if err != nil { fmt.Println(err) return } fmt.Printf("tx base64: %s", txeB64)
Output: tx base64: AAAAADZY/nWY0gx6beMpf4S8Ur0qHsjA8fbFtBzBx1cbQzHwAAAAZAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAUAAAABAAAAAKf5dCD2RflX5jEYTCZ2cHEwuB+QuJJh/0AIM3zwaiyoAAAAAQAAAAcAAAABAAAABwAAAAEAAAABAAAAAQAAAAIAAAABAAAAAwAAAAEAAAAEAAAAAQAAAAtzdGVsbGFyLm9yZwAAAAABAAAAALwxmfetrj7X13WT+tJjwj9VPrqIE2DUJ48+59etBKjTAAAABQAAAAAAAAABG0Mx8AAAAECZF17pOfZcyc7YJXMyx++PMydIvL6g2yZcPDY8h4+tmlz+3rsE6uuX0R6xfgNnuMntvK4YMmaOvp4DvaZMMNoA
Example (ManyOperations) ¶
ExampleSetOptions_manyOperations creates and signs a simple transaction with many SetOptions operations, and then encodes it into a base64 string capable of being submitted to stellar-core.
seed := "SDOTALIMPAM2IV65IOZA7KZL7XWZI5BODFXTRVLIHLQZQCKK57PH5F3H" tx, err := Transaction( SourceAccount{seed}, Sequence{1}, TestNetwork, InflationDest("GCT7S5BA6ZC7SV7GGEMEYJTWOBYTBOA7SC4JEYP7IAEDG7HQNIWKRJ4G"), SetAuthRequired(), SetAuthRevocable(), SetAuthImmutable(), ClearAuthRequired(), ClearAuthRevocable(), ClearAuthImmutable(), MasterWeight(1), SetThresholds(2, 3, 4), HomeDomain("stellar.org"), RemoveSigner("GC6DDGPXVWXD5V6XOWJ7VUTDYI7VKPV2RAJWBVBHR47OPV5NASUNHTJW"), ) if err != nil { fmt.Println(err) return } txe, err := tx.Sign(seed) if err != nil { fmt.Println(err) return } txeB64, err := txe.Base64() if err != nil { fmt.Println(err) return } fmt.Printf("tx base64: %s", txeB64)
Output: tx base64: AAAAADZY/nWY0gx6beMpf4S8Ur0qHsjA8fbFtBzBx1cbQzHwAAAETAAAAAAAAAABAAAAAAAAAAAAAAALAAAAAAAAAAUAAAABAAAAAKf5dCD2RflX5jEYTCZ2cHEwuB+QuJJh/0AIM3zwaiyoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAABAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAABAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAEAAAADAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAALc3RlbGxhci5vcmcAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAALwxmfetrj7X13WT+tJjwj9VPrqIE2DUJ48+59etBKjTAAAAAAAAAAAAAAABG0Mx8AAAAEAOXsLbFo3e8fpqyeZEHGP9o/IrQDQRyof+DA1EeUkvUGbNhy57xXcpMhZpRtwXThWBYx4za4q+TRrnoZQtezgN
func (*SetOptionsBuilder) Mutate ¶
func (b *SetOptionsBuilder) Mutate(muts ...interface{})
Mutate applies the provided mutators to this builder's payment or operation.
func (SetOptionsBuilder) MutateTransaction ¶
func (m SetOptionsBuilder) MutateTransaction(o *TransactionBuilder) error
MutateTransaction for SetOptionsBuilder causes the underylying SetOptionsOp to be added to the operation list for the provided transaction
type SetOptionsMutator ¶
type SetOptionsMutator interface {
MutateSetOptions(*xdr.SetOptionsOp) error
}
SetOptionsMutator is a interface that wraps the MutateSetOptions operation. types may implement this interface to specify how they modify an xdr.SetOptionsOp object
type Sign ¶
type Sign struct {
Seed string
}
Sign is a mutator that contributes a signature of the provided envelope's transaction with the configured key
func (Sign) MutateTransactionEnvelope ¶
func (m Sign) MutateTransactionEnvelope(txe *TransactionEnvelopeBuilder) error
MutateTransactionEnvelope adds a signature to the provided envelope
type Signer ¶
Signer is a mutator capable of adding, updating and deleting an account signer
func RemoveSigner ¶
RemoveSigner creates Signer mutator that removes account's signer
func (Signer) MutateSetOptions ¶
func (m Signer) MutateSetOptions(o *xdr.SetOptionsOp) error
MutateSetOptions for Signer sets the SetOptionsOp's signer field
func (Signer) MutateTransaction ¶
func (m Signer) MutateTransaction(t *TransactionBuilder) error
MutateTransaction for Signer allows creating an operation using a single mutator
type SourceAccount ¶
type SourceAccount struct {
AddressOrSeed string
}
SourceAccount is a mutator capable of setting the source account on an xdr.Operation and an xdr.Transaction
func (SourceAccount) MutateOperation ¶
func (m SourceAccount) MutateOperation(o *xdr.Operation) error
MutateOperation for SourceAccount sets the operation's SourceAccount to the pubilic key for the address provided
func (SourceAccount) MutateTransaction ¶
func (m SourceAccount) MutateTransaction(o *TransactionBuilder) error
MutateTransaction for SourceAccount sets the transaction's SourceAccount to the pubilic key for the address provided
type Thresholds ¶
Thresholds is a mutator capable of setting account thresholds
func SetHighThreshold ¶
func SetHighThreshold(value uint32) Thresholds
SetHighThreshold creates Thresholds mutator that sets account's high threshold
func SetLowThreshold ¶
func SetLowThreshold(value uint32) Thresholds
SetLowThreshold creates Thresholds mutator that sets account's low threshold
func SetMediumThreshold ¶
func SetMediumThreshold(value uint32) Thresholds
SetMediumThreshold creates Thresholds mutator that sets account's medium threshold
func SetThresholds ¶
func SetThresholds(low, medium, high uint32) Thresholds
SetThresholds creates Thresholds mutator
func (Thresholds) MutateSetOptions ¶
func (m Thresholds) MutateSetOptions(o *xdr.SetOptionsOp) (err error)
MutateSetOptions for Thresholds sets the SetOptionsOp's thresholds fields
func (Thresholds) MutateTransaction ¶
func (m Thresholds) MutateTransaction(t *TransactionBuilder) error
MutateTransaction for Thresholds allows creating an operation using a single mutator
type Timebounds ¶
func (Timebounds) MutateTransaction ¶
func (m Timebounds) MutateTransaction(o *TransactionBuilder) error
type TransactionBuilder ¶
type TransactionBuilder struct { TX *xdr.Transaction NetworkPassphrase string BaseFee uint64 }
TransactionBuilder represents a Transaction that is being constructed.
Example ¶
ExampleTransactionBuilder creates and signs a simple transaction, and then encodes it into a base64 string capable of being submitted to stellar-core.
It uses the transaction builder system
seed := "SDOTALIMPAM2IV65IOZA7KZL7XWZI5BODFXTRVLIHLQZQCKK57PH5F3H" tx, err := Transaction( SourceAccount{seed}, Sequence{1}, TestNetwork, Payment( Destination{"GAWSI2JO2CF36Z43UGMUJCDQ2IMR5B3P5TMS7XM7NUTU3JHG3YJUDQXA"}, NativeAmount{"50"}, ), ) if err != nil { fmt.Println(err) return } txe, err := tx.Sign(seed) if err != nil { fmt.Println(err) return } txeB64, err := txe.Base64() if err != nil { fmt.Println(err) return } fmt.Printf("tx base64: %s", txeB64)
Output: tx base64: AAAAADZY/nWY0gx6beMpf4S8Ur0qHsjA8fbFtBzBx1cbQzHwAAAAZAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAALSRpLtCLv2eboZlEiHDSGR6Hb+zZL92fbSdNpObeE0EAAAAAAAAAAB3NZQAAAAAAAAAAARtDMfAAAABA2oIeQxoJl53RMRWFeLB865zcky39f2gf2PmUubCuJYccEePRSrTC8QQrMOgGwD8a6oe8dgltvezdDsmmXBPyBw==
func Transaction ¶
func Transaction(muts ...TransactionMutator) (*TransactionBuilder, error)
Transaction groups the creation of a new TransactionBuilder with a call to Mutate.
func (*TransactionBuilder) Hash ¶
func (b *TransactionBuilder) Hash() ([32]byte, error)
Hash returns the hash of this builder's transaction.
func (*TransactionBuilder) HashHex ¶
func (b *TransactionBuilder) HashHex() (string, error)
HashHex returns the hex-encoded hash of this builder's transaction
func (*TransactionBuilder) Mutate ¶
func (b *TransactionBuilder) Mutate(muts ...TransactionMutator) error
Mutate applies the provided TransactionMutators to this builder's transaction
func (*TransactionBuilder) MutateTransactionEnvelope ¶
func (m *TransactionBuilder) MutateTransactionEnvelope(txe *TransactionEnvelopeBuilder) error
MutateTransactionEnvelope for TransactionBuilder causes the underylying transaction to be set as the provided envelope's Tx field
func (*TransactionBuilder) Sign ¶
func (b *TransactionBuilder) Sign(signers ...string) (TransactionEnvelopeBuilder, error)
Sign returns an new TransactionEnvelopeBuilder using this builder's transaction as the basis and with signatures of that transaction from the provided Signers.
type TransactionEnvelopeBuilder ¶
type TransactionEnvelopeBuilder struct { E *xdr.TransactionEnvelope // contains filtered or unexported fields }
TransactionEnvelopeBuilder helps you build a TransactionEnvelope
func (*TransactionEnvelopeBuilder) Base64 ¶
func (b *TransactionEnvelopeBuilder) Base64() (string, error)
Base64 returns a string which is the xdr-then-base64-encoded form of the builder's underlying transaction envelope
func (*TransactionEnvelopeBuilder) Bytes ¶
func (b *TransactionEnvelopeBuilder) Bytes() ([]byte, error)
Bytes encodes the builder's underlying envelope to XDR
func (*TransactionEnvelopeBuilder) Init ¶
func (b *TransactionEnvelopeBuilder) Init()
func (*TransactionEnvelopeBuilder) Mutate ¶
func (b *TransactionEnvelopeBuilder) Mutate(muts ...TransactionEnvelopeMutator) error
Mutate applies the provided TransactionEnvelopeMutators to this builder's envelope
func (*TransactionEnvelopeBuilder) MutateTX ¶
func (b *TransactionEnvelopeBuilder) MutateTX(muts ...TransactionMutator) error
MutateTX runs Mutate on the underlying transaction using the provided mutators.
type TransactionEnvelopeMutator ¶
type TransactionEnvelopeMutator interface {
MutateTransactionEnvelope(*TransactionEnvelopeBuilder) error
}
TransactionEnvelopeMutator is a interface that wraps the MutateTransactionEnvelope operation. types may implement this interface to specify how they modify an xdr.TransactionEnvelope object
type TransactionMutator ¶
type TransactionMutator interface {
MutateTransaction(*TransactionBuilder) error
}
TransactionMutator is a interface that wraps the MutateTransaction operation. types may implement this interface to specify how they modify an xdr.Transaction object
type Trustor ¶
type Trustor struct {
Address string
}
Trustor is a mutator capable of setting the trustor on allow_trust operation.
func (Trustor) MutateAllowTrust ¶
func (m Trustor) MutateAllowTrust(o *xdr.AllowTrustOp) error
MutateAllowTrust for Trustor sets the AllowTrustOp's Trustor field