Documentation ¶
Overview ¶
Package transaction is a guide and assistant in working with fields and types of transactions,creating signatures, encoding and decoding with RLP.
Index ¶
- func BipToPip(bip *big.Int) *big.Int
- func FloatBipToPip(bip float64) *big.Int
- func IsValidBigInt(s string) bool
- func MaxCoinSupply() *big.Int
- func MultisigAddress(owner string, nonce uint64) string
- func StringToBigInt(s string) *big.Int
- type AddLimitOrderData
- func (d *AddLimitOrderData) Encode() ([]byte, error)
- func (d *AddLimitOrderData) SetCoinToBuy(coin CoinID) *AddLimitOrderData
- func (d *AddLimitOrderData) SetCoinToSell(coin CoinID) *AddLimitOrderData
- func (d *AddLimitOrderData) SetValueToBuy(value *big.Int) *AddLimitOrderData
- func (d *AddLimitOrderData) SetValueToSell(value *big.Int) *AddLimitOrderData
- func (d *AddLimitOrderData) Type() Type
- type AddLiquidityData
- func (d *AddLiquidityData) Encode() ([]byte, error)
- func (d *AddLiquidityData) SetCoin0(id uint64) *AddLiquidityData
- func (d *AddLiquidityData) SetCoin1(id uint64) *AddLiquidityData
- func (d *AddLiquidityData) SetMaximumVolume1(maximumVolume1 *big.Int) *AddLiquidityData
- func (d *AddLiquidityData) SetVolume0(value0 *big.Int) *AddLiquidityData
- func (d *AddLiquidityData) Type() Type
- type Address
- type Builder
- type BurnTokenData
- type BuyCoinData
- func (d *BuyCoinData) Encode() ([]byte, error)
- func (d *BuyCoinData) SetCoinToBuy(id uint64) *BuyCoinData
- func (d *BuyCoinData) SetCoinToSell(id uint64) *BuyCoinData
- func (d *BuyCoinData) SetMaximumValueToSell(value *big.Int) *BuyCoinData
- func (d *BuyCoinData) SetValueToBuy(value *big.Int) *BuyCoinData
- func (d *BuyCoinData) Type() Type
- type BuySwapPoolData
- func (d *BuySwapPoolData) AddCoin(ids ...uint64) *BuySwapPoolData
- func (d *BuySwapPoolData) Encode() ([]byte, error)
- func (d *BuySwapPoolData) SetMaximumValueToSell(value *big.Int) *BuySwapPoolData
- func (d *BuySwapPoolData) SetValueToBuy(value *big.Int) *BuySwapPoolData
- func (d *BuySwapPoolData) Type() Type
- type ChainID
- type Check
- type CheckAddress
- type CheckData
- type CoinID
- type CoinSymbol
- type CreateCoinData
- func (d *CreateCoinData) Encode() ([]byte, error)
- func (d *CreateCoinData) SetConstantReserveRatio(ratio uint32) *CreateCoinData
- func (d *CreateCoinData) SetInitialAmount(value *big.Int) *CreateCoinData
- func (d *CreateCoinData) SetInitialReserve(value *big.Int) *CreateCoinData
- func (d *CreateCoinData) SetMaxSupply(maxSupply *big.Int) *CreateCoinData
- func (d *CreateCoinData) SetName(name string) *CreateCoinData
- func (d *CreateCoinData) SetSymbol(symbol string) *CreateCoinData
- func (d *CreateCoinData) Type() Type
- type CreateMultisigData
- func (d *CreateMultisigData) AddSigData(address string, weight uint32) (*CreateMultisigData, error)
- func (d *CreateMultisigData) Encode() ([]byte, error)
- func (d *CreateMultisigData) MustAddSigData(address string, weight uint32) *CreateMultisigData
- func (d *CreateMultisigData) SetThreshold(threshold uint32) *CreateMultisigData
- func (d *CreateMultisigData) Type() Type
- type CreateSwapPoolData
- func (d *CreateSwapPoolData) Encode() ([]byte, error)
- func (d *CreateSwapPoolData) SetCoin0(id uint64) *CreateSwapPoolData
- func (d *CreateSwapPoolData) SetCoin1(id uint64) *CreateSwapPoolData
- func (d *CreateSwapPoolData) SetVolume0(value0 *big.Int) *CreateSwapPoolData
- func (d *CreateSwapPoolData) SetVolume1(value1 *big.Int) *CreateSwapPoolData
- func (d *CreateSwapPoolData) Type() Type
- type CreateTokenData
- func (d *CreateTokenData) Encode() ([]byte, error)
- func (d *CreateTokenData) SetBurnable(burnable bool) *CreateTokenData
- func (d *CreateTokenData) SetInitialAmount(value *big.Int) *CreateTokenData
- func (d *CreateTokenData) SetMaxSupply(maxSupply *big.Int) *CreateTokenData
- func (d *CreateTokenData) SetMintable(mintable bool) *CreateTokenData
- func (d *CreateTokenData) SetName(name string) *CreateTokenData
- func (d *CreateTokenData) SetSymbol(symbol string) *CreateTokenData
- func (d *CreateTokenData) Type() Type
- type Data
- type DeclareCandidacyData
- func (d *DeclareCandidacyData) Encode() ([]byte, error)
- func (d *DeclareCandidacyData) MustSetAddress(address string) *DeclareCandidacyData
- func (d *DeclareCandidacyData) MustSetPubKey(key string) *DeclareCandidacyData
- func (d *DeclareCandidacyData) SetAddress(address string) (*DeclareCandidacyData, error)
- func (d *DeclareCandidacyData) SetCoin(id uint64) *DeclareCandidacyData
- func (d *DeclareCandidacyData) SetCommission(value uint32) *DeclareCandidacyData
- func (d *DeclareCandidacyData) SetPubKey(key string) (*DeclareCandidacyData, error)
- func (d *DeclareCandidacyData) SetStake(value *big.Int) *DeclareCandidacyData
- func (d *DeclareCandidacyData) Type() Type
- type DeepLink
- func (d *DeepLink) CreateLink(pass string) (string, error)
- func (d *DeepLink) Encode() (string, error)
- func (d *DeepLink) MustSetUrl(value string) *DeepLink
- func (d *DeepLink) SetGasCoin(id uint64) *DeepLink
- func (d *DeepLink) SetGasPrice(gasPrice uint32) *DeepLink
- func (d *DeepLink) SetNonce(nonce uint32) *DeepLink
- func (d *DeepLink) SetPayload(payload []byte) *DeepLink
- func (d *DeepLink) SetUrl(value string) (*DeepLink, error)
- type DelegateData
- func (d *DelegateData) Encode() ([]byte, error)
- func (d *DelegateData) MustSetPubKey(key string) *DelegateData
- func (d *DelegateData) SetCoin(id uint64) *DelegateData
- func (d *DelegateData) SetPubKey(key string) (*DelegateData, error)
- func (d *DelegateData) SetValue(value *big.Int) *DelegateData
- func (d *DelegateData) Type() Type
- type EditCandidateCommissionData
- func (d *EditCandidateCommissionData) Encode() ([]byte, error)
- func (d *EditCandidateCommissionData) MustSetPubKey(key string) *EditCandidateCommissionData
- func (d *EditCandidateCommissionData) SetCommission(commission uint32) *EditCandidateCommissionData
- func (d *EditCandidateCommissionData) SetPubKey(key string) (*EditCandidateCommissionData, error)
- func (d *EditCandidateCommissionData) Type() Type
- type EditCandidateData
- func (d *EditCandidateData) Encode() ([]byte, error)
- func (d *EditCandidateData) MustSetControlAddress(address string) *EditCandidateData
- func (d *EditCandidateData) MustSetOwnerAddress(address string) *EditCandidateData
- func (d *EditCandidateData) MustSetPubKey(key string) *EditCandidateData
- func (d *EditCandidateData) MustSetRewardAddress(address string) *EditCandidateData
- func (d *EditCandidateData) SetControlAddress(address string) (*EditCandidateData, error)
- func (d *EditCandidateData) SetOwnerAddress(address string) (*EditCandidateData, error)
- func (d *EditCandidateData) SetPubKey(key string) (*EditCandidateData, error)
- func (d *EditCandidateData) SetRewardAddress(address string) (*EditCandidateData, error)
- func (d *EditCandidateData) Type() Type
- type EditCandidatePublicKeyData
- func (d *EditCandidatePublicKeyData) Encode() ([]byte, error)
- func (d *EditCandidatePublicKeyData) MustSetNewPubKey(key string) *EditCandidatePublicKeyData
- func (d *EditCandidatePublicKeyData) MustSetPubKey(key string) *EditCandidatePublicKeyData
- func (d *EditCandidatePublicKeyData) SetNewPubKey(key string) (*EditCandidatePublicKeyData, error)
- func (d *EditCandidatePublicKeyData) SetPubKey(key string) (*EditCandidatePublicKeyData, error)
- func (d *EditCandidatePublicKeyData) Type() Type
- type EditCoinOwnerData
- func (d *EditCoinOwnerData) Encode() ([]byte, error)
- func (d *EditCoinOwnerData) MustSetNewOwner(address string) *EditCoinOwnerData
- func (d *EditCoinOwnerData) SetNewOwner(address string) (*EditCoinOwnerData, error)
- func (d *EditCoinOwnerData) SetSymbol(symbol string) *EditCoinOwnerData
- func (d *EditCoinOwnerData) Type() Type
- type EditMultisigData
- func (d *EditMultisigData) AddSigData(address string, weight uint32) (*EditMultisigData, error)
- func (d *EditMultisigData) Encode() ([]byte, error)
- func (d *EditMultisigData) MustAddSigData(address string, weight uint32) *EditMultisigData
- func (d *EditMultisigData) SetThreshold(threshold uint32) *EditMultisigData
- func (d *EditMultisigData) Type() Type
- type Interface
- type LockData
- type LockStakeData
- type MintTokenData
- type MoveStakeData
- func (d *MoveStakeData) Encode() ([]byte, error)
- func (d *MoveStakeData) MustSetFrom(key string) *MoveStakeData
- func (d *MoveStakeData) MustSetTo(key string) *MoveStakeData
- func (d *MoveStakeData) SetCoin(id uint64) *MoveStakeData
- func (d *MoveStakeData) SetFrom(key string) (*MoveStakeData, error)
- func (d *MoveStakeData) SetTo(key string) (*MoveStakeData, error)
- func (d *MoveStakeData) SetValue(value *big.Int) *MoveStakeData
- func (d *MoveStakeData) Type() Type
- type MultisendData
- type PriceVoteData
- type PublicKey
- type RecreateCoinData
- func (d *RecreateCoinData) Encode() ([]byte, error)
- func (d *RecreateCoinData) SetConstantReserveRatio(ratio uint32) *RecreateCoinData
- func (d *RecreateCoinData) SetInitialAmount(value *big.Int) *RecreateCoinData
- func (d *RecreateCoinData) SetInitialReserve(value *big.Int) *RecreateCoinData
- func (d *RecreateCoinData) SetMaxSupply(maxSupply *big.Int) *RecreateCoinData
- func (d *RecreateCoinData) SetName(name string) *RecreateCoinData
- func (d *RecreateCoinData) SetSymbol(symbol string) *RecreateCoinData
- func (d *RecreateCoinData) Type() Type
- type RecreateTokenData
- func (d *RecreateTokenData) Encode() ([]byte, error)
- func (d *RecreateTokenData) SetBurnable(burnable bool) *RecreateTokenData
- func (d *RecreateTokenData) SetInitialAmount(value *big.Int) *RecreateTokenData
- func (d *RecreateTokenData) SetMaxSupply(maxSupply *big.Int) *RecreateTokenData
- func (d *RecreateTokenData) SetMintable(mintable bool) *RecreateTokenData
- func (d *RecreateTokenData) SetName(name string) *RecreateTokenData
- func (d *RecreateTokenData) SetSymbol(symbol string) *RecreateTokenData
- func (d *RecreateTokenData) Type() Type
- type RedeemCheckData
- func (d *RedeemCheckData) Encode() ([]byte, error)
- func (d *RedeemCheckData) MustSetProof(proof string) *RedeemCheckData
- func (d *RedeemCheckData) MustSetRawCheck(raw string) *RedeemCheckData
- func (d *RedeemCheckData) SetProof(proof string) (*RedeemCheckData, error)
- func (d *RedeemCheckData) SetRawCheck(raw string) (*RedeemCheckData, error)
- func (d *RedeemCheckData) Type() Type
- type RemoveLimitOrderData
- type RemoveLiquidityData
- func (d *RemoveLiquidityData) Encode() ([]byte, error)
- func (d *RemoveLiquidityData) SetCoin0(id uint64) *RemoveLiquidityData
- func (d *RemoveLiquidityData) SetCoin1(id uint64) *RemoveLiquidityData
- func (d *RemoveLiquidityData) SetLiquidity(liquidity *big.Int) *RemoveLiquidityData
- func (d *RemoveLiquidityData) SetMinimumVolume0(minimumVolume0 *big.Int) *RemoveLiquidityData
- func (d *RemoveLiquidityData) SetMinimumVolume1(minimumVolume1 *big.Int) *RemoveLiquidityData
- func (d *RemoveLiquidityData) Type() Type
- type SellAllCoinData
- func (d *SellAllCoinData) Encode() ([]byte, error)
- func (d *SellAllCoinData) SetCoinToBuy(id uint64) *SellAllCoinData
- func (d *SellAllCoinData) SetCoinToSell(id uint64) *SellAllCoinData
- func (d *SellAllCoinData) SetMinimumValueToBuy(value *big.Int) *SellAllCoinData
- func (d *SellAllCoinData) Type() Type
- type SellAllSwapPoolData
- type SellCoinData
- func (d *SellCoinData) Encode() ([]byte, error)
- func (d *SellCoinData) SetCoinToBuy(id uint32) *SellCoinData
- func (d *SellCoinData) SetCoinToSell(id uint32) *SellCoinData
- func (d *SellCoinData) SetMinimumValueToBuy(value *big.Int) *SellCoinData
- func (d *SellCoinData) SetValueToSell(value *big.Int) *SellCoinData
- func (d *SellCoinData) Type() Type
- type SellSwapPoolData
- func (d *SellSwapPoolData) AddCoin(ids ...uint64) *SellSwapPoolData
- func (d *SellSwapPoolData) Encode() ([]byte, error)
- func (d *SellSwapPoolData) SetMinimumValueToBuy(value *big.Int) *SellSwapPoolData
- func (d *SellSwapPoolData) SetValueToSell(value *big.Int) *SellSwapPoolData
- func (d *SellSwapPoolData) Type() Type
- type SendData
- type SetCandidateOffData
- type SetCandidateOnData
- type SetHaltBlockData
- func (d *SetHaltBlockData) Encode() ([]byte, error)
- func (d *SetHaltBlockData) MustSetPubKey(key string) *SetHaltBlockData
- func (d *SetHaltBlockData) SetHeight(height uint64) *SetHaltBlockData
- func (d *SetHaltBlockData) SetPubKey(key string) (*SetHaltBlockData, error)
- func (d *SetHaltBlockData) Type() Type
- type Signature
- type SignatureMulti
- type SignatureSingle
- type SignatureType
- type Signed
- type Transaction
- type Type
- type UnbondData
- func (d *UnbondData) Encode() ([]byte, error)
- func (d *UnbondData) MustSetPubKey(key string) *UnbondData
- func (d *UnbondData) SetCoin(id uint64) *UnbondData
- func (d *UnbondData) SetPubKey(key string) (*UnbondData, error)
- func (d *UnbondData) SetValue(value *big.Int) *UnbondData
- func (d *UnbondData) Type() Type
- type VoteCommissionData
- func (d *VoteCommissionData) AddLimitOrderPrice() *big.Int
- func (d *VoteCommissionData) Encode() ([]byte, error)
- func (d *VoteCommissionData) FailedTxPrice() *big.Int
- func (d *VoteCommissionData) LockPrice() *big.Int
- func (d *VoteCommissionData) LockStakePrice() *big.Int
- func (d *VoteCommissionData) MoveStakePrice() *big.Int
- func (d *VoteCommissionData) MustSetPubKey(key string) *VoteCommissionData
- func (d *VoteCommissionData) RemoveLimitOrderPrice() *big.Int
- func (d *VoteCommissionData) SetCoin(id uint64) *VoteCommissionData
- func (d *VoteCommissionData) SetHeight(height uint64) *VoteCommissionData
- func (d *VoteCommissionData) SetPubKey(key string) (*VoteCommissionData, error)
- func (d *VoteCommissionData) Type() Type
- type VoteUpdateData
- func (d *VoteUpdateData) Encode() ([]byte, error)
- func (d *VoteUpdateData) MustSetPubKey(key string) *VoteUpdateData
- func (d *VoteUpdateData) SetHeight(height uint64) *VoteUpdateData
- func (d *VoteUpdateData) SetPubKey(key string) (*VoteUpdateData, error)
- func (d *VoteUpdateData) SetVersion(version string) *VoteUpdateData
- func (d *VoteUpdateData) Type() Type
Examples ¶
- Builder.NewTransaction (SignMultiSignatureAddSignature)
- Builder.NewTransaction (SignMultiSignature_dynamically_adding_private_keys)
- Builder.NewTransaction (SignMultiSignature_simultaneous_adding_private_keys)
- Builder.NewTransaction (SignSingleSignature_simple)
- CheckAddress.Proof
- Decode
- Decode (SignersOfMultiSignature)
- Decode (SignersOfSingleSignature)
- DecodeCheck
- DeepLink.CreateLink
- DeepLink.CreateLink (CustomHost)
- DeepLink.CreateLink (Swap)
- NewBuyCoinData
- NewCheck
- NewCreateCoinData
- NewCreateMultisigData
- NewDeclareCandidacyData
- NewDeepLink
- NewDelegateData
- NewEditCandidateData
- NewEditCandidatePublicKeyData
- NewEditCoinOwnerData
- NewEditMultisigData
- NewLockStakeData
- NewMultisendData
- NewPriceVoteData
- NewRecreateCoinData
- NewRedeemCheckData
- NewSellAllCoinData
- NewSellCoinData
- NewSendData
- NewSetCandidateOffData
- NewSetCandidateOnData
- NewSetHaltBlockData
- NewUnbondData
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FloatBipToPip ¶ added in v2.4.0
FloatBipToPip converts BIP to PIP (multiplies input by 1e18)
func IsValidBigInt ¶ added in v2.4.0
IsValidBigInt verifies that string is a valid int
func MaxCoinSupply ¶ added in v2.2.0
MaxCoinSupply returns max available coin supply
func MultisigAddress ¶
MultisigAddress returns multisig address created by the sender at the block height.
func StringToBigInt ¶ added in v2.4.0
StringToBigInt converts string to BigInt, panics on empty strings and errors
Types ¶
type AddLimitOrderData ¶ added in v2.4.0
type AddLimitOrderData struct { CoinToSell CoinID // ID of a coin to sell ValueToSell *big.Int // Amount of CoinToSell to sell CoinToBuy CoinID // ID of a coin to buy ValueToBuy *big.Int // Amount of CoinToSell to buy }
AddLimitOrderData is a Data of Transaction for setting orders for sale in liquidity pool.
func NewAddLimitOrderData ¶ added in v2.4.0
func NewAddLimitOrderData() *AddLimitOrderData
func (*AddLimitOrderData) Encode ¶ added in v2.4.0
func (d *AddLimitOrderData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*AddLimitOrderData) SetCoinToBuy ¶ added in v2.4.0
func (d *AddLimitOrderData) SetCoinToBuy(coin CoinID) *AddLimitOrderData
SetCoinToBuy sets ...
func (*AddLimitOrderData) SetCoinToSell ¶ added in v2.4.0
func (d *AddLimitOrderData) SetCoinToSell(coin CoinID) *AddLimitOrderData
SetCoinToSell sets ...
func (*AddLimitOrderData) SetValueToBuy ¶ added in v2.4.0
func (d *AddLimitOrderData) SetValueToBuy(value *big.Int) *AddLimitOrderData
SetValueToBuy sets value to buy
func (*AddLimitOrderData) SetValueToSell ¶ added in v2.4.0
func (d *AddLimitOrderData) SetValueToSell(value *big.Int) *AddLimitOrderData
SetValueToSell sets value to sell
func (*AddLimitOrderData) Type ¶ added in v2.4.0
func (d *AddLimitOrderData) Type() Type
Type returns Data type of the transaction.
type AddLiquidityData ¶ added in v2.2.0
type AddLiquidityData struct { Coin0 CoinID // ID of first coin to pair Coin1 CoinID // ID of second coin to pair Volume0 *big.Int // Volume to add to reserve of the swap pool of first coin MaximumVolume1 *big.Int // Maximum volume to add to reserve of the swap pool of second coin }
AddLiquidityData is a Data of Transaction for to add reserves of a pair of coins to the pool. To create liquidity through this pool.
func NewAddLiquidityData ¶ added in v2.2.0
func NewAddLiquidityData() *AddLiquidityData
NewAddLiquidityData creates AddLiquidityData
func (*AddLiquidityData) Encode ¶ added in v2.2.0
func (d *AddLiquidityData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*AddLiquidityData) SetCoin0 ¶ added in v2.2.0
func (d *AddLiquidityData) SetCoin0(id uint64) *AddLiquidityData
SetCoin0 sets first ID of coin to pair
func (*AddLiquidityData) SetCoin1 ¶ added in v2.2.0
func (d *AddLiquidityData) SetCoin1(id uint64) *AddLiquidityData
SetCoin1 sets second ID of coin to pair
func (*AddLiquidityData) SetMaximumVolume1 ¶ added in v2.2.0
func (d *AddLiquidityData) SetMaximumVolume1(maximumVolume1 *big.Int) *AddLiquidityData
SetMaximumVolume1 sets maximum volume to add to reserve of the swap pool of second coin
func (*AddLiquidityData) SetVolume0 ¶ added in v2.2.0
func (d *AddLiquidityData) SetVolume0(value0 *big.Int) *AddLiquidityData
SetVolume0 sets volume to add to reserve of the swap pool of first coin
func (*AddLiquidityData) Type ¶ added in v2.2.0
func (d *AddLiquidityData) Type() Type
Type returns Data type of the transaction.
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder is creator of Transaction.
func NewBuilder ¶
NewBuilder returns new Builder for creating Transaction.
func (*Builder) NewTransaction ¶
NewTransaction returns new transaction with Data.
Example (SignMultiSignatureAddSignature) ¶
You can collect all signatures in one place without revealing the private key.
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data, _ := transaction.NewSendData(). SetCoin(1). SetValue(transaction.BipToPip(big.NewInt(1))). SetTo("Mx1b685a7c1e78726c48f619c497a07ed75fe00483") tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).SetSignatureType(transaction.SignatureTypeMulti) msigAddress := "Mx0023aa9371e0779189ef5a7434456fc21a938945" signedTx1, _ := tx.Clone().Sign(msigAddress, "ae089b32e4e0976ca6888cb1023148bd1a9f1cc28c5d442e52e586754ff48d63") signedTx2, _ := tx.Clone().Sign(msigAddress, "b0a65cd84d57189b70d80fe0b3d5fa3ea6e02fa48041314a587a1f8fdba703d7") signedTx3, _ := tx.Clone().Sign(msigAddress, "4c8dbfb3258f383adf656c2131e5ed77ec482a36125db71fb49d29e0528ff2ba") simpleSignatureData1, _ := signedTx1.SingleSignatureData() simpleSignatureData2, _ := signedTx2.SingleSignatureData() simpleSignatureData3, _ := signedTx3.SingleSignatureData() signedTransaction, _ := tx.Clone().Sign(msigAddress) signedTx123, _ := signedTransaction.AddSignature(simpleSignatureData1, simpleSignatureData2, simpleSignatureData3) encode, _ := signedTx123.Encode() fmt.Println(encode) }
Output: 0xf901130102010101a0df01941b685a7c1e78726c48f619c497a07ed75fe00483880de0b6b3a7640000808002b8e8f8e6940023aa9371e0779189ef5a7434456fc21a938945f8cff8431ca07dd407fa5d2a161581d03cdeb7c94fcd5ade47d376af75f2c92d1483f821fe2ca00d16b6cdbceaadcd0fd72bd39ee17841871da333a571535fccfbcf6285881c2af8431ba07c2d063126024a1e19363e7e254312ca9ab37795b06102da25bd1c0dec81a934a043b7bec83db41c594ac7a8d416fca2f83f0e65ada1221fe659ba4dbe1f3c921af8431ba09318e56a242c39c10ce87ab51d10322cc62cf23885867bc89a24e8c3fa8483e9a04c82c1224d1b4efa7fba06623da2896745ce444d35ed77973759e6404b66bb95
Example (SignMultiSignature_dynamically_adding_private_keys) ¶
You can transfer the transaction to the remaining addresses.
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data, _ := transaction.NewSendData(). SetCoin(1). SetValue(transaction.BipToPip(big.NewInt(1))). SetTo("Mx1b685a7c1e78726c48f619c497a07ed75fe00483") tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).SetSignatureType(transaction.SignatureTypeMulti) msigAddress := "Mx0023aa9371e0779189ef5a7434456fc21a938945" signedTx1, _ := tx.Sign( msigAddress, "ae089b32e4e0976ca6888cb1023148bd1a9f1cc28c5d442e52e586754ff48d63", ) signedTx2, _ := signedTx1.Sign( msigAddress, "b0a65cd84d57189b70d80fe0b3d5fa3ea6e02fa48041314a587a1f8fdba703d7", ) signedTx3, _ := signedTx2.Sign( msigAddress, "4c8dbfb3258f383adf656c2131e5ed77ec482a36125db71fb49d29e0528ff2ba", ) encode, _ := signedTx3.Encode() fmt.Println(encode) }
Output: 0xf901130102010101a0df01941b685a7c1e78726c48f619c497a07ed75fe00483880de0b6b3a7640000808002b8e8f8e6940023aa9371e0779189ef5a7434456fc21a938945f8cff8431ca07dd407fa5d2a161581d03cdeb7c94fcd5ade47d376af75f2c92d1483f821fe2ca00d16b6cdbceaadcd0fd72bd39ee17841871da333a571535fccfbcf6285881c2af8431ba07c2d063126024a1e19363e7e254312ca9ab37795b06102da25bd1c0dec81a934a043b7bec83db41c594ac7a8d416fca2f83f0e65ada1221fe659ba4dbe1f3c921af8431ba09318e56a242c39c10ce87ab51d10322cc62cf23885867bc89a24e8c3fa8483e9a04c82c1224d1b4efa7fba06623da2896745ce444d35ed77973759e6404b66bb95
Example (SignMultiSignature_simultaneous_adding_private_keys) ¶
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data, _ := transaction.NewSendData(). SetCoin(1). SetValue(transaction.BipToPip(big.NewInt(1))). SetTo("Mx1b685a7c1e78726c48f619c497a07ed75fe00483") tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).SetSignatureType(transaction.SignatureTypeMulti).Sign( "Mxdb4f4b6942cb927e8d7e3a1f602d0f1fb43b5bd2", "ae089b32e4e0976ca6888cb1023148bd1a9f1cc28c5d442e52e586754ff48d63", "b0a65cd84d57189b70d80fe0b3d5fa3ea6e02fa48041314a587a1f8fdba703d7", "4c8dbfb3258f383adf656c2131e5ed77ec482a36125db71fb49d29e0528ff2ba", ) encode, _ := signedTx.Encode() fmt.Println(encode) // Result: 0xf901130102010101a0df01941b685a7c1e78726c48f619c497a07ed75fe00483880de0b6b3a7640000808002b8e8f8e694db4f4b6942cb927e8d7e3a1f602d0f1fb43b5bd2f8cff8431ca07dd407fa5d2a161581d03cdeb7c94fcd5ade47d376af75f2c92d1483f821fe2ca00d16b6cdbceaadcd0fd72bd39ee17841871da333a571535fccfbcf6285881c2af8431ba07c2d063126024a1e19363e7e254312ca9ab37795b06102da25bd1c0dec81a934a043b7bec83db41c594ac7a8d416fca2f83f0e65ada1221fe659ba4dbe1f3c921af8431ba09318e56a242c39c10ce87ab51d10322cc62cf23885867bc89a24e8c3fa8483e9a04c82c1224d1b4efa7fba06623da2896745ce444d35ed77973759e6404b66bb95 }
Output: 0xf901130102010101a0df01941b685a7c1e78726c48f619c497a07ed75fe00483880de0b6b3a7640000808002b8e8f8e694db4f4b6942cb927e8d7e3a1f602d0f1fb43b5bd2f8cff8431ca07dd407fa5d2a161581d03cdeb7c94fcd5ade47d376af75f2c92d1483f821fe2ca00d16b6cdbceaadcd0fd72bd39ee17841871da333a571535fccfbcf6285881c2af8431ba07c2d063126024a1e19363e7e254312ca9ab37795b06102da25bd1c0dec81a934a043b7bec83db41c594ac7a8d416fca2f83f0e65ada1221fe659ba4dbe1f3c921af8431ba09318e56a242c39c10ce87ab51d10322cc62cf23885867bc89a24e8c3fa8483e9a04c82c1224d1b4efa7fba06623da2896745ce444d35ed77973759e6404b66bb95
Example (SignSingleSignature_simple) ¶
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction( transaction.NewSendData(). SetCoin(1). SetValue(transaction.BipToPip(big.NewInt(1))). MustSetTo("Mx1b685a7c1e78726c48f619c497a07ed75fe00483"), ) signedTransaction, _ := tx. SetGasPrice(1). SetGasCoin(1). SetNonce(1). Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") senderAddress, _ := signedTransaction.SenderAddress() fmt.Println(senderAddress) hash, _ := signedTransaction.Hash() fmt.Println(hash) encode, _ := signedTransaction.Encode() fmt.Println(encode) }
Output: Mx31e61a05adbd13c6b625262704bc305bf7725026 Mtec2166cced36276426360a79934fbf49f29f9e48e9d1f06ef4afc4f557aa3767 0xf8700102010101a0df01941b685a7c1e78726c48f619c497a07ed75fe00483880de0b6b3a7640000808001b845f8431ba0fffc3f503ace8a5d0c87efe50cf33ad41e3475459120d9c6fd75bd796b192313a0243d643a799e844ad82382d41cee98137a1d0c5888ff13951919e5e241ab89e0
type BurnTokenData ¶ added in v2.2.0
BurnTokenData is a Data of Transaction for decreasing the token's supply. Can be applied to tokens only and is executed from the address of the user who has the necessary amount of this coin. The new supply must be more than or equal to 0.
func NewBurnTokenData ¶ added in v2.2.0
func NewBurnTokenData() *BurnTokenData
NewBurnTokenData creates BurnTokenData
func (*BurnTokenData) Encode ¶ added in v2.2.0
func (d *BurnTokenData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*BurnTokenData) SetCoin ¶ added in v2.2.0
func (d *BurnTokenData) SetCoin(id uint64) *BurnTokenData
func (*BurnTokenData) SetValue ¶ added in v2.2.0
func (d *BurnTokenData) SetValue(value *big.Int) *BurnTokenData
func (*BurnTokenData) Type ¶ added in v2.2.0
func (d *BurnTokenData) Type() Type
Type returns Data type of the transaction.
type BuyCoinData ¶
type BuyCoinData struct { CoinToBuy CoinID // ID of a coin to get ValueToBuy *big.Int // Amount of CoinToBuy to get CoinToSell CoinID // ID of a coin to give MaximumValueToSell *big.Int // Maximum value of coins to sell }
BuyCoinData is a Data of Transaction for buy a coin paying another coin (owned by sender).
func NewBuyCoinData ¶
func NewBuyCoinData() *BuyCoinData
NewBuyCoinData returns new data of transaction for buy a coin paying another coin (owned by sender).
Example ¶
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data := transaction.NewBuyCoinData(). SetCoinToBuy(2). SetValueToBuy(transaction.BipToPip(big.NewInt(1))). SetCoinToSell(1). SetMaximumValueToSell(transaction.BipToPip(big.NewInt(1))) tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) }
Output: 0xf865010201010495d402880de0b6b3a764000001880de0b6b3a7640000808001b845f8431ca0ad334ececd68741f1f9b96e15a2b5d6a7fe6c378cdaab6c6e8947541e1af74dda038c829477eb261948598fd3dd039aba41aa5691f50d3ee2bb4125bc38b294725
func (*BuyCoinData) Encode ¶
func (d *BuyCoinData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*BuyCoinData) SetCoinToBuy ¶
func (d *BuyCoinData) SetCoinToBuy(id uint64) *BuyCoinData
SetCoinToBuy sets ID of a coin to give.
func (*BuyCoinData) SetCoinToSell ¶
func (d *BuyCoinData) SetCoinToSell(id uint64) *BuyCoinData
SetCoinToSell sets ID of a coin to get.
func (*BuyCoinData) SetMaximumValueToSell ¶
func (d *BuyCoinData) SetMaximumValueToSell(value *big.Int) *BuyCoinData
SetMaximumValueToSell sets maximum value of coins to sell.
func (*BuyCoinData) SetValueToBuy ¶
func (d *BuyCoinData) SetValueToBuy(value *big.Int) *BuyCoinData
SetValueToBuy sets amount of CoinToBuy to get.
func (*BuyCoinData) Type ¶
func (d *BuyCoinData) Type() Type
Type returns Data type of the transaction.
type BuySwapPoolData ¶ added in v2.2.0
BuySwapPoolData is a Data of Transaction for buying from the swap pool of the pair.
func NewBuySwapPoolData ¶ added in v2.2.0
func NewBuySwapPoolData() *BuySwapPoolData
NewBuySwapPoolData creates BuySwapPoolData
func (*BuySwapPoolData) AddCoin ¶ added in v2.2.0
func (d *BuySwapPoolData) AddCoin(ids ...uint64) *BuySwapPoolData
AddCoin sets ID of a coin in exchanging route.
func (*BuySwapPoolData) Encode ¶ added in v2.2.0
func (d *BuySwapPoolData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*BuySwapPoolData) SetMaximumValueToSell ¶ added in v2.2.0
func (d *BuySwapPoolData) SetMaximumValueToSell(value *big.Int) *BuySwapPoolData
SetMaximumValueToSell sets maximum value of coins to sell.
func (*BuySwapPoolData) SetValueToBuy ¶ added in v2.2.0
func (d *BuySwapPoolData) SetValueToBuy(value *big.Int) *BuySwapPoolData
SetValueToBuy sets amount of CoinToBuy to get.
func (*BuySwapPoolData) Type ¶ added in v2.2.0
func (d *BuySwapPoolData) Type() Type
Type returns Data type of the transaction.
type ChainID ¶
type ChainID byte
ChainID is network identifier (1 - MainNetChainID, 2 - TestNetChainID)
const ( MainNetChainID ChainID // 0x01 TestNetChainID // 0x02 )
Variants of ChainID
type Check ¶
type Check struct { *CheckData // contains filtered or unexported fields }
Check is like an ordinary bank check. Each user of network can issue check with any amount of coins and pass it to another person. Receiver will be able to cash a check from arbitrary account.
func NewCheck ¶
func NewCheck(nonce string, chainID ChainID, dueBlock uint64, coin CoinID, value *big.Int, gasCoin CoinID) *Check
NewCheck issues a check that will later be redeemed by the person of your choice.
Example ¶
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { check := transaction.NewCheck( "480", transaction.TestNetChainID, 999999, 1, transaction.BipToPip(big.NewInt(10)), 1, ).SetPassphrase("pass") sign, _ := check.Sign("64e27afaab363f21eec05291084367f6f1297a7b280d69d672febecda94a09ea") encode, _ := sign.Encode() fmt.Println(encode) }
Output: Mcf89a8334383002830f423f01888ac7230489e8000001b841ea3d022c8326965556f1b651b14d3124947b8683f7b3ab56fca06e0b4204757b2a11dace85d0139ce4e8fdb18369d07905e733683b8229f41bc216c784b4d714011ca017bffff4b3f431dc938239cd2727f0c1dfa61ccdc98727fa8e9baf608b3755f5a05b768c53d09c5e9517487820df439f496e16e459862e7d449360ce69a2ccc4d6
func (*Check) Encode ¶
Encode returns string representation of Check. Checks are prefixed with "Mc". RLP-encoded structure in hex format.
func (*Check) EncodeBase64 ¶
EncodeBase64 returns string representation of Check. RLP-encoded structure in base64 format.
func (*Check) SetPassphrase ¶
SetPassphrase sets secret phrase which you will pass to receiver of the check
type CheckAddress ¶
type CheckAddress struct {
// contains filtered or unexported fields
}
CheckAddress is hijacking protection
func NewCheckAddress ¶
func NewCheckAddress(address string, passphrase string) (*CheckAddress, error)
NewCheckAddress sets special passphrase to protect checks from hijacking by another person in the moment of activation
func (*CheckAddress) Proof ¶
func (check *CheckAddress) Proof() (string, error)
Proof returns hash of this passphrase is used as private key in ECDSA to prove that sender is the one who owns the check.
Example ¶
package main import ( "fmt" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { check, _ := transaction.NewCheckAddress("Mxa7bc33954f1ce855ed1a8c768fdd32ed927def47", "pass") proof, _ := check.Proof() fmt.Println(proof) }
Output: da021d4f84728e0d3d312a18ec84c21768e0caa12a53cb0a1452771f72b0d1a91770ae139fd6c23bcf8cec50f5f2e733eabb8482cf29ee540e56c6639aac469600
type CheckData ¶
type CheckData struct { Nonce []byte // Unique ID of the check ChainID ChainID // ID of the network DueBlock uint64 // Defines last block height in which the check can be used Coin CoinID // ID of coin Value *big.Int // Amount of coins GasCoin CoinID // ID of a coin to pay fee Lock *big.Int // Secret to prevent hijacking V *big.Int // V signature of issuer R *big.Int // R signature of issuer S *big.Int // S signature of issuer }
CheckData is like an ordinary bank check. Each user of network can issue check with any amount of coins and pass it to another person. Receiver will be able to cash a check from arbitrary account.
func DecodeCheck ¶
DecodeCheck returns CheckData from RLP-encoded structure in hex format.
Example ¶
package main import ( "encoding/hex" "fmt" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data, err := transaction.DecodeCheck("Mcf89a8334383002830f423f01888ac7230489e8000001b841ea3d022c8326965556f1b651b14d3124947b8683f7b3ab56fca06e0b4204757b2a11dace85d0139ce4e8fdb18369d07905e733683b8229f41bc216c784b4d714011ca017bffff4b3f431dc938239cd2727f0c1dfa61ccdc98727fa8e9baf608b3755f5a05b768c53d09c5e9517487820df439f496e16e459862e7d449360ce69a2ccc4d6") if err != nil { return } fmt.Println(string(data.Nonce)) // Result: 480 fmt.Println(data.ChainID) // Result: 2 fmt.Println(data.Coin.String()) // Result: MNT fmt.Println(data.DueBlock) // Result: 999999 fmt.Println(data.Value.String()) // Result: 10000000000000000000 fmt.Println(data.Lock.String()) // Result: 985283871505876742053353384809055983203325304659217336382177168476233943196356552072809135181493031263037291805582875144952622907359402361966594748392133888 fmt.Println(data.V.Int64()) // Result: 27 fmt.Println(hex.EncodeToString(data.R.Bytes())) // Result: 83c9945169f0a7bbe596973b32dc887608780580b1d3bc7b188bedb3bd385594 fmt.Println(hex.EncodeToString(data.S.Bytes())) // Result: 47b2d5345946ed5498f5bee713f86276aac046a5fef820beaee77a9b6f9bc1df sender := data.MustSender() fmt.Println(sender) // Result: Mxce931863b9c94a526d94acd8090c1c5955a6eb4b }
Output: 480 2 1 999999 10000000000000000000 3140622329586495619178957840119431069413669815577585079847850638320450546439777094725740545888163635015645563228183373665216451470665191568503369618620355585 28 17bffff4b3f431dc938239cd2727f0c1dfa61ccdc98727fa8e9baf608b3755f5 5b768c53d09c5e9517487820df439f496e16e459862e7d449360ce69a2ccc4d6 Mxce931863b9c94a526d94acd8090c1c5955a6eb4b
func DecodeCheckBase64 ¶
DecodeCheckBase64 returns CheckData from RLP-encoded structure in base64 format.
func (*CheckData) MustSender ¶
MustSender tries to return sender of transaction and panics on error.
type CoinSymbol ¶
type CoinSymbol [10]byte
CoinSymbol is symbol of a coin.
func (*CoinSymbol) String ¶
func (s *CoinSymbol) String() string
String returns CoinSymbol as string.
type CreateCoinData ¶
type CreateCoinData struct { Name string // Name of a coin Symbol CoinSymbol // Symbol of a coin. Must be unique, alphabetic, uppercase, 3 to 10 symbols length InitialAmount *big.Int // Amount of coins to issue. Issued coins will be available to sender account. Should be between 1 and 1,000,000,000,000,000 coins. InitialReserve *big.Int // Initial reserve in BIP's ConstantReserveRatio uint32 // ConstantReserveRatio (CRR), should be from 10 to 100. MaxSupply *big.Int // Max amount of coins that are allowed to be issued. Maximum is 1,000,000,000,000,000 }
CreateCoinData is a Data of Transaction for creating new coin.
func NewCreateCoinData ¶
func NewCreateCoinData() *CreateCoinData
NewCreateCoinData returns new CreateCoinData of Transaction for creating new coin.
Example ¶
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data := transaction.NewCreateCoinData(). SetName("SUPER TEST"). SetSymbol("SPRTEST"). SetInitialAmount(transaction.BipToPip(big.NewInt(100))). SetInitialReserve(transaction.BipToPip(big.NewInt(20000))). SetConstantReserveRatio(10). SetMaxSupply(transaction.BipToPip(big.NewInt(1000))) tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) }
Output: 0xf8870102010105b7f68a535550455220544553548a5350525445535400000089056bc75e2d631000008a043c33c19375648000000a893635c9adc5dea00000808001b845f8431ba034615f080a026ee579395aeb4c2eac974a14c091f1bb112629b2b5be0a82628da07f3347c71fa0668d01126dfae49d2b402067275878e4ffd26fd42a73cdf01950
func (*CreateCoinData) Encode ¶
func (d *CreateCoinData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*CreateCoinData) SetConstantReserveRatio ¶
func (d *CreateCoinData) SetConstantReserveRatio(ratio uint32) *CreateCoinData
SetConstantReserveRatio sets CRR, uint, should be from 10 to 100.
func (*CreateCoinData) SetInitialAmount ¶
func (d *CreateCoinData) SetInitialAmount(value *big.Int) *CreateCoinData
SetInitialAmount sets amount of coins to issue. Issued coins will be available to sender account.
func (*CreateCoinData) SetInitialReserve ¶
func (d *CreateCoinData) SetInitialReserve(value *big.Int) *CreateCoinData
SetInitialReserve sets initial reserve in BIP's.
func (*CreateCoinData) SetMaxSupply ¶
func (d *CreateCoinData) SetMaxSupply(maxSupply *big.Int) *CreateCoinData
SetMaxSupply sets maximum amount of coins that are allowed to be issued.
func (*CreateCoinData) SetName ¶
func (d *CreateCoinData) SetName(name string) *CreateCoinData
SetName sets name of a coin. Arbitrary string up to 64 letters length.
func (*CreateCoinData) SetSymbol ¶
func (d *CreateCoinData) SetSymbol(symbol string) *CreateCoinData
SetSymbol sets symbol of a coin. Must be unique, alphabetic, uppercase, 3 to 10 symbols length.
func (*CreateCoinData) Type ¶
func (d *CreateCoinData) Type() Type
Type returns Data type of the transaction.
type CreateMultisigData ¶
type CreateMultisigData struct { Threshold uint32 // Threshold for the sums of signature weights. Weights []uint32 // Weights of signers Addresses []Address // List of signed addresses }
CreateMultisigData is a Data of Transaction for creating multisig wallet.
func NewCreateMultisigData ¶
func NewCreateMultisigData() *CreateMultisigData
NewCreateMultisigData returns new CreateMultisigData of Transaction for creating multisig wallet.
Example ¶
package main import ( "fmt" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data := transaction.NewCreateMultisigData(). MustAddSigData("Mx08d920c5d93dbf23038fe1a54bbb34f41f77677c", 1). MustAddSigData("Mx772fd5bd06356250e5efe572b6ae615860ee0c17", 3). MustAddSigData("Mx9c7f68ff71b5819c41e8f87cc99bdf6359da3d75", 5). SetThreshold(7) tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx. SetNonce(11). SetGasPrice(1). SetGasCoin(1). SetSignatureType(transaction.SignatureTypeSingle). Sign("ae089b32e4e0976ca6888cb1023148bd1a9f1cc28c5d442e52e586754ff48d63") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) // Result: 0xf8990b0201010cb848f84607c3010305f83f9408d920c5d93dbf23038fe1a54bbb34f41f77677c94772fd5bd06356250e5efe572b6ae615860ee0c17949c7f68ff71b5819c41e8f87cc99bdf6359da3d75808001b845f8431ba0dfc662df298edef48a1a9623a735b55b3acd32023c24a40efc90a85d37209d04a06c2bcd518c2e47ac102941776a68f3ada206260828354e76e2080396bf18f2b1 }
Output: 0xf8990b0201010cb848f84607c3010305f83f9408d920c5d93dbf23038fe1a54bbb34f41f77677c94772fd5bd06356250e5efe572b6ae615860ee0c17949c7f68ff71b5819c41e8f87cc99bdf6359da3d75808001b845f8431ba0dfc662df298edef48a1a9623a735b55b3acd32023c24a40efc90a85d37209d04a06c2bcd518c2e47ac102941776a68f3ada206260828354e76e2080396bf18f2b1
func (*CreateMultisigData) AddSigData ¶
func (d *CreateMultisigData) AddSigData(address string, weight uint32) (*CreateMultisigData, error)
AddSigData sets a set of signers with appropriate weights.
func (*CreateMultisigData) Encode ¶
func (d *CreateMultisigData) Encode() ([]byte, error)
func (*CreateMultisigData) MustAddSigData ¶
func (d *CreateMultisigData) MustAddSigData(address string, weight uint32) *CreateMultisigData
MustAddSigData tries to set a set of signers with appropriate weights and panics on error.
func (*CreateMultisigData) SetThreshold ¶
func (d *CreateMultisigData) SetThreshold(threshold uint32) *CreateMultisigData
SetThreshold sets threshold for the sums of signature weights.
func (*CreateMultisigData) Type ¶
func (d *CreateMultisigData) Type() Type
Type returns Data type of the transaction.
type CreateSwapPoolData ¶ added in v2.2.0
CreateSwapPoolData is a Data of Transaction for creating a liquidity pool for two coins, in volumes specified within this transaction. The volumes will be withdrawn from your balance according to the figure you've specified in the transaction. When a pool is established, a PL-number coin (example: PL-123) is created and issued in the amount equal to the amount of pool liquidity. The calculations related to that liquidity are described below.
func NewCreateSwapPoolData ¶ added in v2.2.0
func NewCreateSwapPoolData() *CreateSwapPoolData
NewCreateSwapPoolData returns CreateSwapPoolData transaction
func (*CreateSwapPoolData) Encode ¶ added in v2.2.0
func (d *CreateSwapPoolData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*CreateSwapPoolData) SetCoin0 ¶ added in v2.2.0
func (d *CreateSwapPoolData) SetCoin0(id uint64) *CreateSwapPoolData
SetCoin0 sets first ID of coin to pair
func (*CreateSwapPoolData) SetCoin1 ¶ added in v2.2.0
func (d *CreateSwapPoolData) SetCoin1(id uint64) *CreateSwapPoolData
SetCoin1 sets second ID of coin to pair
func (*CreateSwapPoolData) SetVolume0 ¶ added in v2.2.0
func (d *CreateSwapPoolData) SetVolume0(value0 *big.Int) *CreateSwapPoolData
SetVolume0 sets volume to add to reserve of the swap pool of first coin
func (*CreateSwapPoolData) SetVolume1 ¶ added in v2.2.0
func (d *CreateSwapPoolData) SetVolume1(value1 *big.Int) *CreateSwapPoolData
SetVolume1 sets volume to add to reserve of the swap pool of second coin
func (*CreateSwapPoolData) Type ¶ added in v2.2.0
func (d *CreateSwapPoolData) Type() Type
Type returns Data type of the transaction.
type CreateTokenData ¶ added in v2.2.0
type CreateTokenData struct { Name string Symbol CoinSymbol InitialAmount *big.Int // Number of tokens to be created at the start MaxSupply *big.Int // Upper limit of the total number of tokens Mintable bool // Allow new tokens to be issued additionally Burnable bool // Allow all tokens to be burned }
CreateTokenData is a Data of Transaction for creation of a token (non-reserve coin).
func NewCreateTokenData ¶ added in v2.2.0
func NewCreateTokenData() *CreateTokenData
NewCreateTokenData creates CreateTokenData
func (*CreateTokenData) Encode ¶ added in v2.2.0
func (d *CreateTokenData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*CreateTokenData) SetBurnable ¶ added in v2.2.0
func (d *CreateTokenData) SetBurnable(burnable bool) *CreateTokenData
func (*CreateTokenData) SetInitialAmount ¶ added in v2.2.0
func (d *CreateTokenData) SetInitialAmount(value *big.Int) *CreateTokenData
SetInitialAmount sets amount of coins to issue. Issued coins will be available to sender account.
func (*CreateTokenData) SetMaxSupply ¶ added in v2.2.0
func (d *CreateTokenData) SetMaxSupply(maxSupply *big.Int) *CreateTokenData
SetMaxSupply sets maximum amount of coins that are allowed to be issued.
func (*CreateTokenData) SetMintable ¶ added in v2.2.0
func (d *CreateTokenData) SetMintable(mintable bool) *CreateTokenData
func (*CreateTokenData) SetName ¶ added in v2.2.0
func (d *CreateTokenData) SetName(name string) *CreateTokenData
SetName sets name of a coin. Arbitrary string up to 64 letters length.
func (*CreateTokenData) SetSymbol ¶ added in v2.2.0
func (d *CreateTokenData) SetSymbol(symbol string) *CreateTokenData
SetSymbol sets symbol of a coin. Must be unique, alphabetic, uppercase, 3 to 10 symbols length.
func (*CreateTokenData) Type ¶ added in v2.2.0
func (d *CreateTokenData) Type() Type
Type returns Data type of the transaction.
type Data ¶
type Data interface { // Encode returns the byte representation of a transaction Data. Encode() ([]byte, error) // Type returns Data type of the transaction. Type() Type }
Data is data of transaction
type DeclareCandidacyData ¶
type DeclareCandidacyData struct { Address Address // Address of candidate PubKey PublicKey // Public key of a validator Commission uint32 // Commission (from 0 to 100) from rewards which delegators will pay to validator Coin CoinID // ID of coin to stake Stake *big.Int // Amount of coins to stake }
DeclareCandidacyData is a Data of Transaction for declaring new validator candidacy.
func NewDeclareCandidacyData ¶
func NewDeclareCandidacyData() *DeclareCandidacyData
NewDeclareCandidacyData returns new DeclareCandidacyData of Transaction for declaring new validator candidacy.
Example ¶
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data := transaction.NewDeclareCandidacyData(). MustSetPubKey("Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43"). SetCommission(10). SetCoin(1). SetStake(transaction.BipToPip(big.NewInt(5))). MustSetAddress("Mx9f7fd953c2c69044b901426831ed03ee0bd0597a") tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) }
Output: 0xf8940102010106b843f841949f7fd953c2c69044b901426831ed03ee0bd0597aa00eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a430a01884563918244f40000808001b845f8431ba05c5650c040fbce0d4a923a5b0b7fdd4bf52156736a50e7bc1b175a4cbed68c60a07dd76883673bd41fa1293dc38313ec5288dd23c67281f851a67e83fcb917faa7
func (*DeclareCandidacyData) Encode ¶
func (d *DeclareCandidacyData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*DeclareCandidacyData) MustSetAddress ¶
func (d *DeclareCandidacyData) MustSetAddress(address string) *DeclareCandidacyData
MustSetAddress tries to set address of candidate and panics on error.
func (*DeclareCandidacyData) MustSetPubKey ¶
func (d *DeclareCandidacyData) MustSetPubKey(key string) *DeclareCandidacyData
MustSetPubKey tries to set public key of validator and panics on error.
func (*DeclareCandidacyData) SetAddress ¶
func (d *DeclareCandidacyData) SetAddress(address string) (*DeclareCandidacyData, error)
SetAddress sets address of candidate. This address would be able to control candidate. Also all rewards will be sent to this address
func (*DeclareCandidacyData) SetCoin ¶
func (d *DeclareCandidacyData) SetCoin(id uint64) *DeclareCandidacyData
SetCoin sets ID of coin to stake.
func (*DeclareCandidacyData) SetCommission ¶
func (d *DeclareCandidacyData) SetCommission(value uint32) *DeclareCandidacyData
SetCommission sets commission (from 0 to 100) from rewards which delegators will pay to validator.
func (*DeclareCandidacyData) SetPubKey ¶
func (d *DeclareCandidacyData) SetPubKey(key string) (*DeclareCandidacyData, error)
SetPubKey sets public key of a validator.
func (*DeclareCandidacyData) SetStake ¶
func (d *DeclareCandidacyData) SetStake(value *big.Int) *DeclareCandidacyData
SetStake sets amount of coins to stake.
func (*DeclareCandidacyData) Type ¶
func (d *DeclareCandidacyData) Type() Type
Type returns Data type of the transaction.
type DeepLink ¶
type DeepLink struct { Type Type // type of transaction Data []byte // data of transaction (depends on transaction type) Payload []byte // optional, arbitrary user-defined bytes Nonce *uint32 `rlp:"nilList"` // optional, used for prevent transaction reply GasPrice *uint32 `rlp:"nilList"` // optional, fee multiplier, should be equal or greater than current mempool min gas price GasCoin *CoinID `rlp:"nilList"` // optional, ID of a coin to pay fee, right padded with zeros // contains filtered or unexported fields }
func NewDeepLink ¶
Example ¶
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { link, _ := transaction.NewDeepLink( transaction.NewSendData(). MustSetTo("Mx18467bbb64a8edf890201d526c35957d82be3d95"). SetCoin(1). SetValue(big.NewInt(0).Mul(big.NewInt(123456789), big.NewInt(0).Exp(big.NewInt(10), big.NewInt(18-8), nil))), ) link.SetPayload([]byte("Hello World")) encode, _ := link.Encode() fmt.Println(encode) }
Output: 8QGg3wGUGEZ7u2So7fiQIB1SbDWVfYK-PZWIESIQ9HaNtACLSGVsbG8gV29ybGTAwMA
func (*DeepLink) CreateLink ¶
Returns url link.
Example ¶
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { link, _ := transaction.NewDeepLink( transaction.NewSendData(). MustSetTo("Mx7633980c000139dd3bd24a3f54e06474fa941e16"). SetCoin(1). SetValue(transaction.BipToPip(big.NewInt(10))), ) link.SetPayload([]byte("custom message")).SetGasCoin(3) data, _ := link.CreateLink("pass") fmt.Println(data) }
Output: https://bip.to/tx/9AGg3wGUdjOYDAABOd070ko_VOBkdPqUHhaIiscjBInoAACOY3VzdG9tIG1lc3NhZ2XAwAM?p=cGFzcw
Example (CustomHost) ¶
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { link, _ := transaction.NewDeepLink( transaction.NewSendData(). MustSetTo("Mx7633980c000139dd3bd24a3f54e06474fa941e16"). SetCoin(1). SetValue(transaction.BipToPip(big.NewInt(10))), ) link.MustSetUrl("https://testnet.bip.to").SetPayload([]byte("custom message")).SetGasCoin(3) data, _ := link.CreateLink("pass") fmt.Println(data) }
Output: https://testnet.bip.to/tx/9AGg3wGUdjOYDAABOd070ko_VOBkdPqUHhaIiscjBInoAACOY3VzdG9tIG1lc3NhZ2XAwAM?p=cGFzcw
Example (Swap) ¶
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { link, _ := transaction.NewDeepLink( transaction.NewSellSwapPoolData(). SetValueToSell(transaction.BipToPip(big.NewInt(10))). AddCoin(0, 2137, 905, 1994, 1993).SetMinimumValueToBuy(transaction.StringToBigInt("100000000000000")), ) link.SetGasCoin(0) link.MustSetUrl("https://wallet.toronet.bip.to") data, _ := link.CreateLink("klim0v") fmt.Println(data) }
Output: https://wallet.toronet.bip.to/tx/5Ref3s2AgghZggOJggfKggfJiIrHIwSJ6AAAhlrzEHpAAIDAwIA?p=a2xpbTB2
func (*DeepLink) MustSetUrl ¶ added in v2.3.0
func (*DeepLink) SetGasCoin ¶
SetGasCoin sets ID of a coin to pay fee
func (*DeepLink) SetGasPrice ¶
SetGasPrice sets fee multiplier.
func (*DeepLink) SetPayload ¶
Set arbitrary user-defined bytes
type DelegateData ¶
type DelegateData struct { PubKey PublicKey // Public key of a validator Coin CoinID // ID of coin to stake Value *big.Int // Amount of coins to stake }
DelegateData is a Data of Transaction for delegating funds to validator.
func NewDelegateData ¶
func NewDelegateData() *DelegateData
NewDelegateData returns new DelegateData of Transaction for delegating funds to validator
Example ¶
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data := transaction.NewDelegateData(). MustSetPubKey("Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43"). SetCoin(1). SetValue(transaction.BipToPip(big.NewInt(10))) tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) // Result: 0xf87c0102010107aceba00eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a4301888ac7230489e80000808001b845f8431ca016bed99d271578829200f5c7c8f2f04dbf242b1d2c4ed4676c6f3480ade1f6a3a0677cac19e1a36367358cdeeed4a66aa135615b41206f502b9284239539084b5a }
Output: 0xf87c0102010107aceba00eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a4301888ac7230489e80000808001b845f8431ca016bed99d271578829200f5c7c8f2f04dbf242b1d2c4ed4676c6f3480ade1f6a3a0677cac19e1a36367358cdeeed4a66aa135615b41206f502b9284239539084b5a
func (*DelegateData) Encode ¶
func (d *DelegateData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*DelegateData) MustSetPubKey ¶
func (d *DelegateData) MustSetPubKey(key string) *DelegateData
MustSetPubKey tries to set public key of validator and panics on error.
func (*DelegateData) SetCoin ¶
func (d *DelegateData) SetCoin(id uint64) *DelegateData
SetCoin sets ID of coin to stake.
func (*DelegateData) SetPubKey ¶
func (d *DelegateData) SetPubKey(key string) (*DelegateData, error)
SetPubKey sets public key of a validator.
func (*DelegateData) SetValue ¶
func (d *DelegateData) SetValue(value *big.Int) *DelegateData
SetValue sets amount of coins to stake.
func (*DelegateData) Type ¶
func (d *DelegateData) Type() Type
Type returns Data type of the transaction.
type EditCandidateCommissionData ¶ added in v2.2.0
func (*EditCandidateCommissionData) Encode ¶ added in v2.2.0
func (d *EditCandidateCommissionData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*EditCandidateCommissionData) MustSetPubKey ¶ added in v2.4.0
func (d *EditCandidateCommissionData) MustSetPubKey(key string) *EditCandidateCommissionData
MustSetPubKey tries to set public key of validator and panics on error.
func (*EditCandidateCommissionData) SetCommission ¶ added in v2.4.0
func (d *EditCandidateCommissionData) SetCommission(commission uint32) *EditCandidateCommissionData
SetCommission sets commission of a validator.
func (*EditCandidateCommissionData) SetPubKey ¶ added in v2.4.0
func (d *EditCandidateCommissionData) SetPubKey(key string) (*EditCandidateCommissionData, error)
SetPubKey sets public key of a validator.
func (*EditCandidateCommissionData) Type ¶ added in v2.2.0
func (d *EditCandidateCommissionData) Type() Type
Type returns Data type of the transaction.
type EditCandidateData ¶
type EditCandidateData struct { PubKey PublicKey // Public key of a validator RewardAddress Address // Address where validator’s rewards go to. OwnerAddress Address // Address that allows one to start the validator by sending the SetCandidateOnline transaction or stop it by sending the SetCandidateOffline transaction. It also enables the owner to edit the node by sending EditCandidate. ControlAddress Address // Address that allows one to start the validator by sending the SetCandidateOnline transaction or stop it by sending the SetCandidateOffline transaction. }
EditCandidateData is Data of Transaction for editing existing candidate. This transaction should be sent from OwnerAddress which is set in the "Declare candidacy transaction".
func NewEditCandidateData ¶
func NewEditCandidateData() *EditCandidateData
NewEditCandidateData returns new EditCandidateData of Transaction for editing existing candidate.
Example ¶
package main import ( "fmt" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data := transaction.NewEditCandidateData(). MustSetPubKey("Mp4ae1ee73e6136c85b0ca933a9a1347758a334885f10b3238398a67ac2eb153b8"). MustSetOwnerAddress("Mxe731fcddd37bb6e72286597d22516c8ba3ddffa0"). MustSetRewardAddress("Mx89e5dc185e6bab772ac8e00cf3fb3f4cb0931c47"). MustSetControlAddress("Mx1b685a7c1e78726c48f619c497a07ed75fe00483") tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) }
Output: 0xf8b3010201010eb862f860a04ae1ee73e6136c85b0ca933a9a1347758a334885f10b3238398a67ac2eb153b89489e5dc185e6bab772ac8e00cf3fb3f4cb0931c4794e731fcddd37bb6e72286597d22516c8ba3ddffa0941b685a7c1e78726c48f619c497a07ed75fe00483808001b845f8431ca07e6ea59db677f322752f0c62b867b8fd35db69124849c5c6eb037850031f3781a04f14493da1f218205935835b14d9ccca77614d51547a3196a94778ff6f69ee7d
func (*EditCandidateData) Encode ¶
func (d *EditCandidateData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*EditCandidateData) MustSetControlAddress ¶
func (d *EditCandidateData) MustSetControlAddress(address string) *EditCandidateData
MustSetControlAddress tries to set control address of validator and panics on error.
func (*EditCandidateData) MustSetOwnerAddress ¶
func (d *EditCandidateData) MustSetOwnerAddress(address string) *EditCandidateData
MustSetOwnerAddress tries to set owner address of validator and panics on error.
func (*EditCandidateData) MustSetPubKey ¶
func (d *EditCandidateData) MustSetPubKey(key string) *EditCandidateData
MustSetPubKey tries to set public key of validator and panics on error.
func (*EditCandidateData) MustSetRewardAddress ¶
func (d *EditCandidateData) MustSetRewardAddress(address string) *EditCandidateData
MustSetRewardAddress tries to set reward address of validator and panics on error.
func (*EditCandidateData) SetControlAddress ¶
func (d *EditCandidateData) SetControlAddress(address string) (*EditCandidateData, error)
SetControlAddress sets address for managing SetCandidateOnline and SetCandidateOffline data of transaction
func (*EditCandidateData) SetOwnerAddress ¶
func (d *EditCandidateData) SetOwnerAddress(address string) (*EditCandidateData, error)
SetOwnerAddress sets address for managing SetCandidateOnline, SetCandidateOffline and EditCandidate data of transaction
func (*EditCandidateData) SetPubKey ¶
func (d *EditCandidateData) SetPubKey(key string) (*EditCandidateData, error)
SetPubKey sets public key of a validator.
func (*EditCandidateData) SetRewardAddress ¶
func (d *EditCandidateData) SetRewardAddress(address string) (*EditCandidateData, error)
SetRewardAddress sets address where validator’s rewards go to.
func (*EditCandidateData) Type ¶
func (d *EditCandidateData) Type() Type
Type returns Data type of the transaction.
type EditCandidatePublicKeyData ¶
type EditCandidatePublicKeyData struct { PubKey PublicKey // Public key of a validator NewPubKey PublicKey // New public key for change. }
EditCandidatePublicKeyData is Data of Transaction for editing candidate public key. This transaction should be sent from OwnerAddress which is set in the "Declare candidacy transaction".
func NewEditCandidatePublicKeyData ¶
func NewEditCandidatePublicKeyData() *EditCandidatePublicKeyData
NewEditCandidatePublicKeyData returns new EditCandidatePublicKeyData of Transaction for editing existing candidate.
Example ¶
package main import ( "fmt" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data := transaction.NewEditCandidatePublicKeyData(). MustSetPubKey("Mp4ae1ee73e6136c85b0ca933a9a1347758a334885f10b3238398a67ac2eb153b8"). MustSetNewPubKey("Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43") tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) }
Output: 0xf8950102010114b844f842a04ae1ee73e6136c85b0ca933a9a1347758a334885f10b3238398a67ac2eb153b8a00eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43808001b845f8431ba0933744d45b17ee431460ce6ce9a707e84f7c43b79bd7eb2067bc35352035e141a07731ab3e52be64a41482409ee3d92f6662e2e6d36ad6789c69fb1d4ec75e766f
func (*EditCandidatePublicKeyData) Encode ¶
func (d *EditCandidatePublicKeyData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*EditCandidatePublicKeyData) MustSetNewPubKey ¶
func (d *EditCandidatePublicKeyData) MustSetNewPubKey(key string) *EditCandidatePublicKeyData
MustSetNewPubKey tries to set new public key and panics on error.
func (*EditCandidatePublicKeyData) MustSetPubKey ¶
func (d *EditCandidatePublicKeyData) MustSetPubKey(key string) *EditCandidatePublicKeyData
MustSetPubKey tries to set public key of validator and panics on error.
func (*EditCandidatePublicKeyData) SetNewPubKey ¶
func (d *EditCandidatePublicKeyData) SetNewPubKey(key string) (*EditCandidatePublicKeyData, error)
SetNewPubKey sets new public key for change.
func (*EditCandidatePublicKeyData) SetPubKey ¶
func (d *EditCandidatePublicKeyData) SetPubKey(key string) (*EditCandidatePublicKeyData, error)
SetPubKey sets public key of a validator.
func (*EditCandidatePublicKeyData) Type ¶
func (d *EditCandidatePublicKeyData) Type() Type
Type returns Data type of the transaction.
type EditCoinOwnerData ¶
type EditCoinOwnerData struct { Symbol CoinSymbol NewOwner Address }
EditCoinOwnerData is a Data of Transaction for editing coin owner.
func NewEditCoinOwnerData ¶
func NewEditCoinOwnerData() *EditCoinOwnerData
NewEditCoinOwnerData returns new EditCoinOwnerData of Transaction for editing coin owner.
Example ¶
package main import ( "fmt" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data := transaction.NewEditCoinOwnerData(). SetSymbol("SPRTEST"). MustSetNewOwner("Mx89e5dc185e6bab772ac8e00cf3fb3f4cb0931c47") tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) }
Output: 0xf8710102010111a1e08a535052544553540000009489e5dc185e6bab772ac8e00cf3fb3f4cb0931c47808001b845f8431ba03a08817c5b87aaa4eed6ed0c0a86270bbeb0a9f309453ef996546cbee383e8a0a01d34934dba2d1cb07740156d5af8a9e37b68524fd57e4eca1218d12854350f97
func (*EditCoinOwnerData) Encode ¶
func (d *EditCoinOwnerData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*EditCoinOwnerData) MustSetNewOwner ¶
func (d *EditCoinOwnerData) MustSetNewOwner(address string) *EditCoinOwnerData
MustSetNewOwner tries to set address of candidate and panics on error.
func (*EditCoinOwnerData) SetNewOwner ¶
func (d *EditCoinOwnerData) SetNewOwner(address string) (*EditCoinOwnerData, error)
SetNewOwner sets new owner address of a coin.
func (*EditCoinOwnerData) SetSymbol ¶
func (d *EditCoinOwnerData) SetSymbol(symbol string) *EditCoinOwnerData
SetSymbol sets symbol of a coin.
func (*EditCoinOwnerData) Type ¶
func (d *EditCoinOwnerData) Type() Type
Type returns Data type of the transaction.
type EditMultisigData ¶
type EditMultisigData struct { Threshold uint32 // Threshold for the sums of signature weights. Weights []uint32 // Weights of signers Addresses []Address // List of signed addresses }
EditMultisigData is a Data of Transaction for editing multisig address.
func NewEditMultisigData ¶
func NewEditMultisigData() *EditMultisigData
NewEditMultisigData returns new EditMultisigData of Transaction for editing multisig address.
Example ¶
package main import ( "fmt" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data := transaction.NewEditMultisigData(). MustAddSigData("Mx08d920c5d93dbf23038fe1a54bbb34f41f77677c", 1). MustAddSigData("Mx772fd5bd06356250e5efe572b6ae615860ee0c17", 3). MustAddSigData("Mx9c7f68ff71b5819c41e8f87cc99bdf6359da3d75", 5). SetThreshold(7) tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx. SetNonce(11). SetGasPrice(1). SetGasCoin(1). SetSignatureType(transaction.SignatureTypeMulti). Sign(transaction.MultisigAddress("Mx9c7f68ff71b5819c41e8f87cc99bdf6359da3d75", 21), "ae089b32e4e0976ca6888cb1023148bd1a9f1cc28c5d442e52e586754ff48d63") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) }
Output: 0xf8b20b02010112b848f84607c3010305f83f9408d920c5d93dbf23038fe1a54bbb34f41f77677c94772fd5bd06356250e5efe572b6ae615860ee0c17949c7f68ff71b5819c41e8f87cc99bdf6359da3d75808002b85ef85c94f954480762e2cb5cfed7ab85a75e9692b6a138aaf845f8431ca0ebf73833cbf3ff51a9adb013834af1bbd383e3a90ced0bd41a9988f54fd84071a02dad3b6fe991507e59cf8643e1b243c760a6af8f6e6e9264514d3c2b50cc384e
func (*EditMultisigData) AddSigData ¶
func (d *EditMultisigData) AddSigData(address string, weight uint32) (*EditMultisigData, error)
AddSigData sets a set of signers with appropriate weights.
func (*EditMultisigData) Encode ¶
func (d *EditMultisigData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*EditMultisigData) MustAddSigData ¶
func (d *EditMultisigData) MustAddSigData(address string, weight uint32) *EditMultisigData
MustAddSigData tries to set a set of signers with appropriate weights and panics on error.
func (*EditMultisigData) SetThreshold ¶
func (d *EditMultisigData) SetThreshold(threshold uint32) *EditMultisigData
SetThreshold sets threshold for the sums of signature weights.
func (*EditMultisigData) Type ¶
func (d *EditMultisigData) Type() Type
Type returns Data type of the transaction.
type Interface ¶
type Interface interface { // SetSignatureType sets signature type. SetSignatureType(signatureType SignatureType) Interface // SetMultiSignatureType sets signature type to SignatureTypeMulti. SetMultiSignatureType() Interface // SetNonce sets nonce of transaction. SetNonce(nonce uint64) Interface // SetGasCoin sets ID of a coin to pay fee. SetGasCoin(id uint64) Interface // SetGasPrice sets fee multiplier. SetGasPrice(price uint8) Interface // SetPayload sets arbitrary user-defined bytes. SetPayload(payload []byte) Interface // SetServiceData sets ServiceData field. SetServiceData(serviceData []byte) Interface // Sign signs transaction with a private key. Sign(key string, prKeys ...string) (Signed, error) // Clone returns copy of the transaction. Clone() Interface // contains filtered or unexported methods }
Interface is Transaction data installer.
type LockData ¶ added in v2.5.0
LockData is a Data of Transaction for lock coins.
func NewLockData ¶ added in v2.5.0
func NewLockData() *LockData
NewLockData returns new LockData of Transaction for lock coins.
func (*LockData) Encode ¶ added in v2.5.0
Encode returns the byte representation of a transaction Data.
func (*LockData) SetDueBlock ¶ added in v2.5.0
SetDueBlock sets ID of coin to stake
type LockStakeData ¶ added in v2.5.0
type LockStakeData struct { }
LockStakeData is a Data of Transaction for lock stake.
func NewLockStakeData ¶ added in v2.5.0
func NewLockStakeData() *LockStakeData
NewLockStakeData returns new LockStakeData of Transaction for lock stake.
Example ¶
package main import ( "fmt" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data := transaction.NewLockStakeData() tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) }
Output: 0xf851010201012581c0808001b845f8431ca0220af5b0dcd1f4c15fa7dda2e0ecb6e198e28f644a7f516590e4203403f8ea52a00d06d23e4a76f5c1a7581bdab75f6f136bf7df61285e9142aa2c5b7ff10fc3f2
func (*LockStakeData) Encode ¶ added in v2.5.0
func (d *LockStakeData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*LockStakeData) Type ¶ added in v2.5.0
func (d *LockStakeData) Type() Type
Type returns Data type of the transaction.
type MintTokenData ¶ added in v2.2.0
MintTokenData is a Data of Transaction for increasing the token's supply. Can be applied to tokens only and is executed from the coin owner address. The new supply must not exceed the MaxSupply value.
func NewMintTokenData ¶ added in v2.2.0
func NewMintTokenData() *MintTokenData
NewMintTokenData creates MintTokenData
func (*MintTokenData) Encode ¶ added in v2.2.0
func (d *MintTokenData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*MintTokenData) SetCoin ¶ added in v2.2.0
func (d *MintTokenData) SetCoin(id uint64) *MintTokenData
func (*MintTokenData) SetValue ¶ added in v2.2.0
func (d *MintTokenData) SetValue(value *big.Int) *MintTokenData
func (*MintTokenData) Type ¶ added in v2.2.0
func (d *MintTokenData) Type() Type
Type returns Data type of the transaction.
type MoveStakeData ¶ added in v2.2.0
MoveStakeData is a Data of Transaction for move stake to another candidate.
func NewMoveStakeData ¶ added in v2.2.0
func NewMoveStakeData() *MoveStakeData
NewMoveStakeData returns new MoveStakeData of Transaction for move stake to another candidate.
func (*MoveStakeData) Encode ¶ added in v2.2.0
func (d *MoveStakeData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*MoveStakeData) MustSetFrom ¶ added in v2.2.0
func (d *MoveStakeData) MustSetFrom(key string) *MoveStakeData
MustSetFrom tries to set public key of current validator and panics on error.
func (*MoveStakeData) MustSetTo ¶ added in v2.2.0
func (d *MoveStakeData) MustSetTo(key string) *MoveStakeData
MustSetTo tries to set public key of new validator and panics on error.
func (*MoveStakeData) SetCoin ¶ added in v2.2.0
func (d *MoveStakeData) SetCoin(id uint64) *MoveStakeData
SetCoin sets ID of coin to stake
func (*MoveStakeData) SetFrom ¶ added in v2.2.0
func (d *MoveStakeData) SetFrom(key string) (*MoveStakeData, error)
SetFrom sets Public key of current validator
func (*MoveStakeData) SetTo ¶ added in v2.2.0
func (d *MoveStakeData) SetTo(key string) (*MoveStakeData, error)
SetTo sets Public key of new validator
func (*MoveStakeData) SetValue ¶ added in v2.5.0
func (d *MoveStakeData) SetValue(value *big.Int) *MoveStakeData
SetValue sets amount of coins to stake
func (*MoveStakeData) Type ¶ added in v2.2.0
func (d *MoveStakeData) Type() Type
Type returns Data type of the transaction.
type MultisendData ¶
type MultisendData struct {
List []*SendData // List of SendData
}
MultisendData is a Data of Transaction for sending coins to multiple addresses.
func NewMultisendData ¶
func NewMultisendData() *MultisendData
NewMultisendData returns new MultisendData of Transaction for sending coins to multiple addresses.
Example ¶
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data := transaction.NewMultisendData().AddItem( transaction.NewSendData(). SetCoin(1). SetValue(big.NewInt(0).Mul(big.NewInt(1), big.NewInt(0).Exp(big.NewInt(10), big.NewInt(18-1), nil))). MustSetTo("Mxfe60014a6e9ac91618f5d1cab3fd58cded61ee99"), ).AddItem( transaction.NewSendData(). SetCoin(1). SetValue(big.NewInt(0).Mul(big.NewInt(2), big.NewInt(0).Exp(big.NewInt(10), big.NewInt(18-1), nil))). MustSetTo("Mxddab6281766ad86497741ff91b6b48fe85012e3c"), ) tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) }
Output: 0xf895010201010db844f842f840df0194fe60014a6e9ac91618f5d1cab3fd58cded61ee9988016345785d8a0000df0194ddab6281766ad86497741ff91b6b48fe85012e3c8802c68af0bb140000808001b845f8431ba0718f10b4468989919adabd215f5a6e83bd70eb1358d725541c2661122f66350ba05ab9e5e28107612f89ce56f4d7846edcbf272e8929eaf0c7c945e2530f40b667
func (*MultisendData) AddItem ¶
func (d *MultisendData) AddItem(item *SendData) *MultisendData
AddItem adds SendData to Multisend list
func (*MultisendData) Encode ¶
func (d *MultisendData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*MultisendData) Type ¶
func (d *MultisendData) Type() Type
Type returns Data type of the transaction.
type PriceVoteData ¶
type PriceVoteData struct {
Price uint
}
PriceVoteData is a Data of Transaction for
func NewPriceVoteData ¶
func NewPriceVoteData() *PriceVoteData
NewPriceVoteData returns new PriceVoteData of Transaction for
Example ¶
package main import ( "fmt" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data := transaction.NewPriceVoteData(). SetPrice(1) tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) }
Output: 0xf852010201011382c101808001b845f8431ba00e6ceba5074a56661daf2099872627973e9ee09f82519893a1fda16717b4eec1a00664a550774a27d6f6a56c58d53d39ff46719ddd53423a371339314a65857196
func (*PriceVoteData) Encode ¶
func (d *PriceVoteData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*PriceVoteData) SetPrice ¶
func (d *PriceVoteData) SetPrice(price uint) *PriceVoteData
SetPrice sets price
func (*PriceVoteData) Type ¶
func (d *PriceVoteData) Type() Type
Type returns Data type of the transaction.
type RecreateCoinData ¶
type RecreateCoinData struct { Name string // Name of a coin Symbol CoinSymbol // Symbol of a coin. Must be unique, alphabetic, uppercase, 3 to 10 symbols length InitialAmount *big.Int // Amount of coins to issue. Issued coins will be available to sender account. Should be between 1 and 1,000,000,000,000,000 coins. InitialReserve *big.Int // Initial reserve in BIP's ConstantReserveRatio uint32 // ConstantReserveRatio (CRR), should be from 10 to 100. MaxSupply *big.Int // Max amount of coins that are allowed to be issued. Maximum is 1,000,000,000,000,000 }
RecreateCoinData is a Data of Transaction for recreating new coin.
func NewRecreateCoinData ¶
func NewRecreateCoinData() *RecreateCoinData
NewRecreateCoinData returns new RecreateCoinData of Transaction for recreating coin
Example ¶
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data := transaction.NewRecreateCoinData(). SetSymbol("SPRTEST"). SetInitialAmount(transaction.BipToPip(big.NewInt(100))). SetInitialReserve(transaction.BipToPip(big.NewInt(20000))). SetConstantReserveRatio(10). SetMaxSupply(transaction.BipToPip(big.NewInt(1000))) tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) }
Output: 0xf87d0102010110adec808a5350525445535400000089056bc75e2d631000008a043c33c19375648000000a893635c9adc5dea00000808001b845f8431ca04743e4b01fc1c8305bbe9e84f483fb4a7411c419f9ec73124e4e75579a6fd5e0a06d241ed5b6a8c1b9154e7e1cba57de520fc6b5681b2aaa28f578b4e5c071c36b
func (*RecreateCoinData) Encode ¶
func (d *RecreateCoinData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*RecreateCoinData) SetConstantReserveRatio ¶
func (d *RecreateCoinData) SetConstantReserveRatio(ratio uint32) *RecreateCoinData
SetConstantReserveRatio sets CRR, uint, should be from 10 to 100.
func (*RecreateCoinData) SetInitialAmount ¶
func (d *RecreateCoinData) SetInitialAmount(value *big.Int) *RecreateCoinData
SetInitialAmount sets amount of coins to issue. Issued coins will be available to sender account.
func (*RecreateCoinData) SetInitialReserve ¶
func (d *RecreateCoinData) SetInitialReserve(value *big.Int) *RecreateCoinData
SetInitialReserve sets initial reserve in BIP's.
func (*RecreateCoinData) SetMaxSupply ¶
func (d *RecreateCoinData) SetMaxSupply(maxSupply *big.Int) *RecreateCoinData
SetMaxSupply sets maximum amount of coins that are allowed to be issued.
func (*RecreateCoinData) SetName ¶
func (d *RecreateCoinData) SetName(name string) *RecreateCoinData
SetName sets name of a coin. Arbitrary string up to 64 letters length.
func (*RecreateCoinData) SetSymbol ¶
func (d *RecreateCoinData) SetSymbol(symbol string) *RecreateCoinData
SetSymbol sets symbol of a coin. Must be unique, alphabetic, uppercase, 3 to 10 symbols length.
func (*RecreateCoinData) Type ¶
func (d *RecreateCoinData) Type() Type
Type returns Data type of the transaction.
type RecreateTokenData ¶ added in v2.2.0
type RecreateTokenData struct { Name string Symbol CoinSymbol InitialAmount *big.Int MaxSupply *big.Int Mintable bool Burnable bool }
RecreateTokenData is a Data of Transaction for re-creation the coins (both backed and non-reserve).
func NewRecreateTokenData ¶ added in v2.2.0
func NewRecreateTokenData() *RecreateTokenData
NewRecreateTokenData creates RecreateTokenData
func (*RecreateTokenData) Encode ¶ added in v2.2.0
func (d *RecreateTokenData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*RecreateTokenData) SetBurnable ¶ added in v2.2.0
func (d *RecreateTokenData) SetBurnable(burnable bool) *RecreateTokenData
func (*RecreateTokenData) SetInitialAmount ¶ added in v2.2.0
func (d *RecreateTokenData) SetInitialAmount(value *big.Int) *RecreateTokenData
SetInitialAmount sets amount of coins to issue. Issued coins will be available to sender account.
func (*RecreateTokenData) SetMaxSupply ¶ added in v2.2.0
func (d *RecreateTokenData) SetMaxSupply(maxSupply *big.Int) *RecreateTokenData
SetMaxSupply sets maximum amount of coins that are allowed to be issued.
func (*RecreateTokenData) SetMintable ¶ added in v2.2.0
func (d *RecreateTokenData) SetMintable(mintable bool) *RecreateTokenData
func (*RecreateTokenData) SetName ¶ added in v2.2.0
func (d *RecreateTokenData) SetName(name string) *RecreateTokenData
SetName sets name of a coin. Arbitrary string up to 64 letters length.
func (*RecreateTokenData) SetSymbol ¶ added in v2.2.0
func (d *RecreateTokenData) SetSymbol(symbol string) *RecreateTokenData
SetSymbol sets symbol of a coin. Must be unique, alphabetic, uppercase, 3 to 10 symbols length.
func (*RecreateTokenData) Type ¶ added in v2.2.0
func (d *RecreateTokenData) Type() Type
Type returns Data type of the transaction.
type RedeemCheckData ¶
type RedeemCheckData struct { RawCheck []byte // Check received from sender Proof [65]byte // Proof of owning a check: password signed with recipient's address }
RedeemCheckData is a Data of Transaction for redeeming a check. Note that maximum GasPrice is limited to 1 to prevent fraud, because GasPrice is set by redeem tx sender but commission is charded from check issuer.
func NewRedeemCheckData ¶
func NewRedeemCheckData() *RedeemCheckData
NewRedeemCheckData returns new RedeemCheckData of Transaction for redeeming a check.
Example ¶
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { check := transaction.NewCheck("02c0c0a4-8023-4654-ac5d-3c39ba1bd19c", transaction.MainNetChainID, 500, 0, big.NewInt(9223372036854775807), 0) checkSigned, _ := check.SetPassphrase("secret").Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") checkSignedEncode, _ := checkSigned.Encode() pr, _ := transaction.NewCheckAddress("Mx31e61A05adBD13c6B625262704bc305Bf7725026", "secret") proof, _ := pr.Proof() data := transaction.NewRedeemCheckData(). MustSetProof(proof). MustSetRawCheck(checkSignedEncode) tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) }
Output: 0xf901560102010109b90104f90101b8bcf8baa430326330633061342d383032332d343635342d616335642d336333396261316264313963018201f480887fffffffffffffff80b84164a1ab995f8d8883fa6e7d41e57774f5bcef72aa29cdf61875a4276250f610796d2a50e8dcadfe346fc8d3a555ff97fe3e6f3899879c1d852da6a444609bc1bc001ca0751931e85b03d4ecec72a7b1b2a9b1f92b7a7d260662d9822019cb4b1654f9d0a05e79fdcf59b85fd4637173d6a219255bf8e22898efa12227930c3a761e6225b5b8414aa2806ff70943c8a405011c76a416bf328d642b3ad656ef8cd7d26560facdf22ae4ef789f497bc8bec49b8e56d2bf3c2b2904262858032048d35776a2909e7b00808001b845f8431ca0ceb258c5216b4e95b8bb9121ce97d1133d6003b3de6680af3017e85ee9744c4aa04767cdc002ad8c8d5719c26518e65b222d4f137fc6861d70adba0fbee0bd6688
func (*RedeemCheckData) Encode ¶
func (d *RedeemCheckData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*RedeemCheckData) MustSetProof ¶
func (d *RedeemCheckData) MustSetProof(proof string) *RedeemCheckData
MustSetProof tries to set proof of owning a check and panics on error.
func (*RedeemCheckData) MustSetRawCheck ¶
func (d *RedeemCheckData) MustSetRawCheck(raw string) *RedeemCheckData
MustSetRawCheck tries to set check received from sender and panics on error.
func (*RedeemCheckData) SetProof ¶
func (d *RedeemCheckData) SetProof(proof string) (*RedeemCheckData, error)
SetProof sets proof of owning a check.
func (*RedeemCheckData) SetRawCheck ¶
func (d *RedeemCheckData) SetRawCheck(raw string) (*RedeemCheckData, error)
SetRawCheck sets check received from sender.
func (*RedeemCheckData) Type ¶
func (d *RedeemCheckData) Type() Type
Type returns Data type of the transaction.
type RemoveLimitOrderData ¶ added in v2.4.0
type RemoveLimitOrderData struct {
ID uint64
}
RemoveLimitOrderData is ...
func NewRemoveLimitOrderData ¶ added in v2.4.0
func NewRemoveLimitOrderData() *RemoveLimitOrderData
func (*RemoveLimitOrderData) Encode ¶ added in v2.4.0
func (d *RemoveLimitOrderData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*RemoveLimitOrderData) SetID ¶ added in v2.4.0
func (d *RemoveLimitOrderData) SetID(id uint64) *RemoveLimitOrderData
SetID sets order ID
func (*RemoveLimitOrderData) Type ¶ added in v2.4.0
func (d *RemoveLimitOrderData) Type() Type
Type returns Data type of the transaction.
type RemoveLiquidityData ¶ added in v2.2.0
type RemoveLiquidityData struct { Coin0 CoinID // ID of coin to pair Coin1 CoinID // ID of coin to pair Liquidity *big.Int // Volume of shares to be withdrawn from the pool MinimumVolume0 *big.Int // Minimum expected volume of coin0 to be returned to the account MinimumVolume1 *big.Int // Minimum expected volume of coin1 to be returned to the account }
RemoveLiquidityData is a Data of Transaction for withdrawing the reserves of a pair from the pool.
func NewRemoveLiquidityData ¶ added in v2.2.0
func NewRemoveLiquidityData() *RemoveLiquidityData
NewRemoveLiquidityData returns RemoveLiquidityData
func (*RemoveLiquidityData) Encode ¶ added in v2.2.0
func (d *RemoveLiquidityData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*RemoveLiquidityData) SetCoin0 ¶ added in v2.2.0
func (d *RemoveLiquidityData) SetCoin0(id uint64) *RemoveLiquidityData
SetCoin0 sets first ID of coin to pair
func (*RemoveLiquidityData) SetCoin1 ¶ added in v2.2.0
func (d *RemoveLiquidityData) SetCoin1(id uint64) *RemoveLiquidityData
SetCoin1 sets second ID of coin to pair
func (*RemoveLiquidityData) SetLiquidity ¶ added in v2.2.0
func (d *RemoveLiquidityData) SetLiquidity(liquidity *big.Int) *RemoveLiquidityData
SetLiquidity sets volume of shares to be withdrawn from the pool
func (*RemoveLiquidityData) SetMinimumVolume0 ¶ added in v2.2.0
func (d *RemoveLiquidityData) SetMinimumVolume0(minimumVolume0 *big.Int) *RemoveLiquidityData
SetMinimumVolume0 sets minimum expected volume of coin0 to be returned to the account
func (*RemoveLiquidityData) SetMinimumVolume1 ¶ added in v2.2.0
func (d *RemoveLiquidityData) SetMinimumVolume1(minimumVolume1 *big.Int) *RemoveLiquidityData
SetMinimumVolume1 sets minimum expected volume of coin1 to be returned to the account
func (*RemoveLiquidityData) Type ¶ added in v2.2.0
func (d *RemoveLiquidityData) Type() Type
Type returns Data type of the transaction.
type SellAllCoinData ¶
type SellAllCoinData struct { CoinToSell CoinID // ID of a coin to give CoinToBuy CoinID // ID of a coin to get MinimumValueToBuy *big.Int // Minimum value of coins to get }
SellAllCoinData is Data of Transaction for selling one coin (owned by sender) in favour of another coin in a system.
func NewSellAllCoinData ¶
func NewSellAllCoinData() *SellAllCoinData
NewSellAllCoinData returns new SellAllCoinData of Transaction for selling one coin (owned by sender) in favour of another coin in a system.
Example ¶
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data := transaction.NewSellAllCoinData(). SetCoinToSell(1). SetCoinToBuy(2). SetMinimumValueToBuy(transaction.BipToPip(big.NewInt(1))) tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) }
Output: 0xf85c01020101038ccb0102880de0b6b3a7640000808001b845f8431ba0db51e3ca2b75a4a617362946f5f5ee26c75900dae8f8be2400509338bafcd8d4a02e031ead1656d1321520564a34321acc8c6dda63cd4c8bd4530ec641aa4b1c7b
func (*SellAllCoinData) Encode ¶
func (d *SellAllCoinData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*SellAllCoinData) SetCoinToBuy ¶
func (d *SellAllCoinData) SetCoinToBuy(id uint64) *SellAllCoinData
SetCoinToBuy sets ID of a coin to get.
func (*SellAllCoinData) SetCoinToSell ¶
func (d *SellAllCoinData) SetCoinToSell(id uint64) *SellAllCoinData
SetCoinToSell sets ID of a coin to give.
func (*SellAllCoinData) SetMinimumValueToBuy ¶
func (d *SellAllCoinData) SetMinimumValueToBuy(value *big.Int) *SellAllCoinData
SetMinimumValueToBuy sets minimum value of coins to get
func (*SellAllCoinData) Type ¶
func (d *SellAllCoinData) Type() Type
Type returns Data type of the transaction.
type SellAllSwapPoolData ¶ added in v2.2.0
type SellAllSwapPoolData struct { Coins []CoinID // List of coin IDs from given to received. MinimumValueToBuy *big.Int // Minimum value of coin to get. }
SellAllSwapPoolData is a Data of Transaction for selling all existing coins from the swap pool of the pair. Coin to spend (Coins[0]) will be used as GasCoin to pay fee.
func NewSellAllSwapPoolData ¶ added in v2.2.0
func NewSellAllSwapPoolData() *SellAllSwapPoolData
NewSellAllSwapPoolData creates SellAllSwapPoolData
func (*SellAllSwapPoolData) AddCoin ¶ added in v2.2.0
func (d *SellAllSwapPoolData) AddCoin(ids ...uint64) *SellAllSwapPoolData
AddCoin sets ID of a coin in exchanging route.
func (*SellAllSwapPoolData) Encode ¶ added in v2.2.0
func (d *SellAllSwapPoolData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*SellAllSwapPoolData) SetMinimumValueToBuy ¶ added in v2.2.0
func (d *SellAllSwapPoolData) SetMinimumValueToBuy(value *big.Int) *SellAllSwapPoolData
SetMinimumValueToBuy sets minimum value of coins to get
func (*SellAllSwapPoolData) Type ¶ added in v2.2.0
func (d *SellAllSwapPoolData) Type() Type
Type returns Data type of the transaction.
type SellCoinData ¶
type SellCoinData struct { CoinToSell CoinID // ID of a coin to give ValueToSell *big.Int // Amount of CoinToSell to give CoinToBuy CoinID // ID of a coin to get MinimumValueToBuy *big.Int // Minimum value of coins to get }
SellCoinData is Data of Transaction for selling one coin (owned by sender) in favour of another coin in a system.
func NewSellCoinData ¶
func NewSellCoinData() *SellCoinData
NewSellCoinData returns new SellCoinData of Transaction for selling one coin (owned by sender) in favour of another coin in a system.
Example ¶
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data := transaction.NewSellCoinData(). SetCoinToSell(1). SetValueToSell(transaction.BipToPip(big.NewInt(1))). SetCoinToBuy(2). SetMinimumValueToBuy(transaction.BipToPip(big.NewInt(1))) tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) }
Output: 0xf865010201010295d401880de0b6b3a764000002880de0b6b3a7640000808001b845f8431ca01552ab0503f8173bef46f2336d48ef6e1fae7bb5aa8b51ec7332b720a8a2f15ca0166970c5d209bac8b5ffae32047f1e4e868c5a20f522aeebb0bc523ae16c64fa
func (*SellCoinData) Encode ¶
func (d *SellCoinData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*SellCoinData) SetCoinToBuy ¶
func (d *SellCoinData) SetCoinToBuy(id uint32) *SellCoinData
SetCoinToBuy sets ID of a coin to get
func (*SellCoinData) SetCoinToSell ¶
func (d *SellCoinData) SetCoinToSell(id uint32) *SellCoinData
SetCoinToSell sets ID of a coin to give
func (*SellCoinData) SetMinimumValueToBuy ¶
func (d *SellCoinData) SetMinimumValueToBuy(value *big.Int) *SellCoinData
SetMinimumValueToBuy sets minimum value of coins to get
func (*SellCoinData) SetValueToSell ¶
func (d *SellCoinData) SetValueToSell(value *big.Int) *SellCoinData
SetValueToSell sets amount of CoinToSell to give
func (*SellCoinData) Type ¶
func (d *SellCoinData) Type() Type
Type returns Data type of the transaction.
type SellSwapPoolData ¶ added in v2.2.0
type SellSwapPoolData struct { Coins []CoinID // List of coin IDs from given to received. ValueToSell *big.Int // Amount of coin to spend (first coin in Coins list). MinimumValueToBuy *big.Int // Minimum value of coin to get. }
SellSwapPoolData is a Data of Transaction for selling from the swap pool of the pair.
func NewSellSwapPoolData ¶ added in v2.2.0
func NewSellSwapPoolData() *SellSwapPoolData
NewSellSwapPoolData creates SellSwapPoolData
func (*SellSwapPoolData) AddCoin ¶ added in v2.2.0
func (d *SellSwapPoolData) AddCoin(ids ...uint64) *SellSwapPoolData
AddCoin sets ID of a coin in exchanging route.
func (*SellSwapPoolData) Encode ¶ added in v2.2.0
func (d *SellSwapPoolData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*SellSwapPoolData) SetMinimumValueToBuy ¶ added in v2.2.0
func (d *SellSwapPoolData) SetMinimumValueToBuy(value *big.Int) *SellSwapPoolData
SetMinimumValueToBuy sets minimum value of coins to get
func (*SellSwapPoolData) SetValueToSell ¶ added in v2.2.0
func (d *SellSwapPoolData) SetValueToSell(value *big.Int) *SellSwapPoolData
SetValueToSell sets amount of CoinToSell to give
func (*SellSwapPoolData) Type ¶ added in v2.2.0
func (d *SellSwapPoolData) Type() Type
Type returns Data type of the transaction.
type SendData ¶
type SendData struct { Coin CoinID // ID of a coin To Address // Recipient address Value *big.Int // Amount of coin to send }
SendData is a Data of Transaction for sending arbitrary coin.
func NewSendData ¶
func NewSendData() *SendData
NewSendData returns new SendData of Transaction for sending arbitrary coin.
Example ¶
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data, _ := transaction.NewSendData(). SetCoin(1). SetValue(transaction.BipToPip(big.NewInt(1))). SetTo("Mx1b685a7c1e78726c48f619c497a07ed75fe00483") tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) }
Output: 0xf8700102010101a0df01941b685a7c1e78726c48f619c497a07ed75fe00483880de0b6b3a7640000808001b845f8431ba0fffc3f503ace8a5d0c87efe50cf33ad41e3475459120d9c6fd75bd796b192313a0243d643a799e844ad82382d41cee98137a1d0c5888ff13951919e5e241ab89e0
type SetCandidateOffData ¶
type SetCandidateOffData struct {
PubKey PublicKey // Public key of a validator
}
SetCandidateOffData is a Data of Transaction for turning candidate off. This transaction should be sent from ControlAddress or OwnerAddress which is set in the "Declare candidacy transaction".
func NewSetCandidateOffData ¶
func NewSetCandidateOffData() *SetCandidateOffData
NewSetCandidateOffData returns new SetCandidateOffData of Transaction for turning candidate off.
Example ¶
package main import ( "fmt" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data := transaction.NewSetCandidateOffData(). MustSetPubKey("Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43") tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) }
Output: 0xf872010201010ba2e1a00eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43808001b845f8431ca09c65f9b35430a5bcb64dc132f8167abbf878bf29ca2ad146a38a910d7b3dd70fa0706248027a98d2f54e78ab0ab9378b0d134d7e20be04a10c8836b8911c30f41f
func (*SetCandidateOffData) Encode ¶
func (d *SetCandidateOffData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*SetCandidateOffData) MustSetPubKey ¶
func (d *SetCandidateOffData) MustSetPubKey(key string) *SetCandidateOffData
MustSetPubKey tries to set public key of validator and panics on error.
func (*SetCandidateOffData) SetPubKey ¶
func (d *SetCandidateOffData) SetPubKey(key string) (*SetCandidateOffData, error)
SetPubKey sets public key of a validator.
func (*SetCandidateOffData) Type ¶
func (d *SetCandidateOffData) Type() Type
Type returns Data type of the transaction.
type SetCandidateOnData ¶
type SetCandidateOnData struct {
PubKey PublicKey // Public key of a validator
}
SetCandidateOnData is a Data of Transaction for turning candidate on. This transaction should be sent from ControlAddress or OwnerAddress which is set in the "Declare candidacy transaction".
func NewSetCandidateOnData ¶
func NewSetCandidateOnData() *SetCandidateOnData
NewSetCandidateOnData returns new SetCandidateOnData of Transaction for turning candidate on.
Example ¶
package main import ( "fmt" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data := transaction.NewSetCandidateOnData(). MustSetPubKey("Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43") tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) }
Output: 0xf872010201010aa2e1a00eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43808001b845f8431ca06be0a4f7103b529bf3bd38a38bde50468b5001fb8c765b49973e0986572e328aa01c11fee8cb064e54a82408199619b9f1dcb35333b47affd8a08a1a6600c5f6d5
func (*SetCandidateOnData) Encode ¶
func (d *SetCandidateOnData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*SetCandidateOnData) MustSetPubKey ¶
func (d *SetCandidateOnData) MustSetPubKey(key string) *SetCandidateOnData
MustSetPubKey tries to set public key of validator and panics on error.
func (*SetCandidateOnData) SetPubKey ¶
func (d *SetCandidateOnData) SetPubKey(key string) (*SetCandidateOnData, error)
SetPubKey ets public key of a validator.
func (*SetCandidateOnData) Type ¶
func (d *SetCandidateOnData) Type() Type
Type returns Data type of the transaction.
type SetHaltBlockData ¶
SetHaltBlockData is a Data of Transaction for voting to stop the network on block. This transaction should be sent from OwnerAddress which is set in the "Declare candidacy transaction".
func NewSetHaltBlockData ¶
func NewSetHaltBlockData() *SetHaltBlockData
NewSetHaltBlockData returns new SetHaltBlockData of Transaction for voting to stop the network on block.
Example ¶
package main import ( "fmt" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data := transaction.NewSetHaltBlockData(). MustSetPubKey("Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43"). SetHeight(123456) tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) }
Output: 0xf875010201010fa6e5a00eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a438301e240808001b844f8421ca03732a48f4c52c2ec63741ccab959d77c8618b34cbf95f6b8bd1ae57ac87888939fb1551f624c8b7519231716cd6ba9166d14fe27a1e55863ae22f7a3f6d88bfa
func (*SetHaltBlockData) Encode ¶
func (d *SetHaltBlockData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*SetHaltBlockData) MustSetPubKey ¶
func (d *SetHaltBlockData) MustSetPubKey(key string) *SetHaltBlockData
MustSetPubKey tries to set public key and panics on error.
func (*SetHaltBlockData) SetHeight ¶
func (d *SetHaltBlockData) SetHeight(height uint64) *SetHaltBlockData
SetHeight sets height
func (*SetHaltBlockData) SetPubKey ¶
func (d *SetHaltBlockData) SetPubKey(key string) (*SetHaltBlockData, error)
SetPubKey sets public key.
func (*SetHaltBlockData) Type ¶
func (d *SetHaltBlockData) Type() Type
Type returns Data type of the transaction.
type Signature ¶
type Signature interface { // Encode returns digital signature of transaction. Encode() ([]byte, error) // Single returns SignatureSingle. Single() ([]byte, error) // Type returns signature type. Type() SignatureType }
Signature is interface of signatures
type SignatureMulti ¶
type SignatureMulti struct { Multisig Address Signatures []*SignatureSingle }
SignatureMulti is signature of multisig address
func (*SignatureMulti) Encode ¶
func (s *SignatureMulti) Encode() ([]byte, error)
Encode returns digital signature of transaction.
func (*SignatureMulti) Single ¶
func (s *SignatureMulti) Single() ([]byte, error)
Single returns SingleSignature
func (*SignatureMulti) Type ¶
func (s *SignatureMulti) Type() SignatureType
Type returns SignatureType.
type SignatureSingle ¶
SignatureSingle is single signature.
func (*SignatureSingle) Encode ¶
func (s *SignatureSingle) Encode() ([]byte, error)
Encode returns digital signature of transaction.
func (*SignatureSingle) Single ¶
func (s *SignatureSingle) Single() ([]byte, error)
Single returns SignatureSingle.
func (*SignatureSingle) Type ¶
func (s *SignatureSingle) Type() SignatureType
Type returns SignatureType of Signature.
type SignatureType ¶
type SignatureType byte
SignatureType is type of signature (1 - SignatureTypeSingle, 2 - SignatureTypeMulti)
const ( SignatureTypeSingle SignatureType // 0x01 SignatureTypeMulti // 0x02 )
Types of Signature
func (SignatureType) String ¶ added in v2.1.0
func (i SignatureType) String() string
type Signed ¶
type Signed interface { // GetTransaction returns Transaction struct GetTransaction() *Transaction // Hash returns hash of Transaction. Hash() (string, error) // Data returns Data of the Transaction. Data() Data CommissionCoin() CoinID // Signature returns Signature interface. Signature() (Signature, error) // AddSignature adds signature from hex strings. AddSignature(signatures ...string) (Signed, error) // SignatureData returns bytes of Signature. SignatureData() []byte // SingleSignatureData returns SignatureData. SingleSignatureData() (string, error) // SenderAddress returns sender addresses. SenderAddress() (string, error) // Signers returns set of signers. Signers() ([]string, error) // Sign signs transaction with a private key. Sign(prKey string, prKeys ...string) (Signed, error) // Clone returns copy of the transaction. Clone() Interface // contains filtered or unexported methods }
Signed is interface of signed Transaction.
func Decode ¶
Decode returns Signed model with Transaction and Data.
Example ¶
package main import ( "fmt" "github.com/MinterTeam/minter-go-sdk/v2/wallet" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { var encode string { tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction( transaction.NewSendData(). SetCoin(1). SetValue(transaction.BipToPip(big.NewInt(1))). MustSetTo("Mx1b685a7c1e78726c48f619c497a07ed75fe00483"), ) w, _ := wallet.Create("suffer draft bacon typical start retire air sniff large biology mail diagram", "") fmt.Println(w.Address) signedTransaction, _ := tx. SetGasPrice(1). SetGasCoin(1). SetNonce(1). SetPayload([]byte("Hello")). Sign(w.PrivateKey) encode, _ = signedTransaction.Encode() } tx, _ := transaction.Decode(encode) fmt.Println(tx.Data().Type()) fmt.Println(tx.Data().(*transaction.SendData).Coin) fmt.Println(string(tx.GetTransaction().Payload)) address, _ := tx.SenderAddress() fmt.Println(address) }
Output: Mx48f502a9fc324f2c707edc3a2595e72f00c3190c 0x01 1 Hello Mx48f502a9fc324f2c707edc3a2595e72f00c3190c
Example (SignersOfMultiSignature) ¶
package main import ( "fmt" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { decode, _ := transaction.Decode("0xf901130102010101a0df01941b685a7c1e78726c48f619c497a07ed75fe00483880de0b6b3a7640000808002b8e8f8e6940023aa9371e0779189ef5a7434456fc21a938945f8cff8431ca07dd407fa5d2a161581d03cdeb7c94fcd5ade47d376af75f2c92d1483f821fe2ca00d16b6cdbceaadcd0fd72bd39ee17841871da333a571535fccfbcf6285881c2af8431ba07c2d063126024a1e19363e7e254312ca9ab37795b06102da25bd1c0dec81a934a043b7bec83db41c594ac7a8d416fca2f83f0e65ada1221fe659ba4dbe1f3c921af8431ba09318e56a242c39c10ce87ab51d10322cc62cf23885867bc89a24e8c3fa8483e9a04c82c1224d1b4efa7fba06623da2896745ce444d35ed77973759e6404b66bb95") signers, _ := decode.Signers() for _, signer := range signers { fmt.Println(signer) } address, _ := decode.SenderAddress() fmt.Println(address) }
Output: Mx08d920c5d93dbf23038fe1a54bbb34f41f77677c Mx6bf192730d01a19739b5030cdb6a60c992712a59 Mx823bb524d5702addbe13086082f7f0310e07d176 Mx0023aa9371e0779189ef5a7434456fc21a938945
Example (SignersOfSingleSignature) ¶
package main import ( "fmt" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { decode, _ := transaction.Decode("0xf8700102010101a0df01941b685a7c1e78726c48f619c497a07ed75fe00483880de0b6b3a7640000808001b845f8431ba0fffc3f503ace8a5d0c87efe50cf33ad41e3475459120d9c6fd75bd796b192313a0243d643a799e844ad82382d41cee98137a1d0c5888ff13951919e5e241ab89e0") signers, _ := decode.Signers() for _, signer := range signers { fmt.Println(signer) } address, _ := decode.SenderAddress() fmt.Println(address) }
Output: Mx31e61a05adbd13c6b625262704bc305bf7725026 Mx31e61a05adbd13c6b625262704bc305bf7725026
type Transaction ¶
type Transaction struct { Nonce uint64 // used for prevent transaction reply ChainID ChainID // id of the network (1 - mainnet, 2 - testnet) GasPrice uint8 // fee multiplier, should be equal or greater than current mempool min gas price. GasCoin CoinID // ID of a coin to pay fee, right padded with zeros Type Type // type of transaction Data []byte // data of transaction (depends on transaction type) Payload []byte // arbitrary user-defined bytes ServiceData []byte // reserved field SignatureType SignatureType // single or multisig transaction SignatureData []byte // digital signature of transaction }
Transaction is transaction model.
func (*Transaction) Encode ¶
func (tx *Transaction) Encode() (string, error)
Encode returns string representation of a transaction. RLP-encoded structure in hex format.
type Type ¶
type Type byte
Type of transaction is determined by a single byte.
const ( TypeSend Type // 0x01 TypeSellCoin // 0x02 TypeSellAllCoin // 0x03 TypeBuyCoin // 0x04 TypeCreateCoin // 0x05 TypeDeclareCandidacy // 0x06 TypeDelegate // 0x07 TypeUnbond // 0x08 TypeRedeemCheck // 0x09 TypeSetCandidateOnline // 0x0A TypeSetCandidateOffline // 0x0B TypeCreateMultisig // 0x0C TypeMultisend // 0x0D TypeEditCandidate // 0x0E TypeSetHaltBlock // 0x0F TypeRecreateCoin // 0x10 TypeEditCoinOwner // 0x11 TypeEditMultisig // 0x12 TypePriceVote // 0x13 TypeEditCandidatePublicKey // 0x14 TypeAddLiquidity // 0x15 TypeRemoveLiquidity // 0x16 TypeSellSwapPool // 0x17 TypeBuySwapPool // 0x18 TypeSellAllSwapPool // 0x19 TypeEditCommissionCandidate // 0x1A TypeMoveStake // 0x1B TypeMintToken // 0x1C TypeBurnToken // 0x1D TypeCreateToken // 0x1E TypeRecreateToken // 0x1F TypeVoteCommission // 0x20 TypeVoteUpdate // 0x21 TypeCreateSwapPool // 0x22 TypeAddLimitOrder // 0x23 TypeRemoveLimitOrder // 0x24 TypeLockStake // 0x25 TypeLock // 0x26 )
Types of Data
type UnbondData ¶
type UnbondData struct { PubKey PublicKey // Public key of a validator Coin CoinID // ID of coin to stake Value *big.Int // Amount of coins to stake }
UnbondData is a Data of Transaction for unbonding funds from validator's stake.
func NewUnbondData ¶
func NewUnbondData() *UnbondData
NewUnbondData create data of Transaction for unbonding funds from validator's stake
Example ¶
package main import ( "fmt" "math/big" "github.com/MinterTeam/minter-go-sdk/v2/transaction" ) func main() { data := transaction.NewUnbondData(). MustSetPubKey("Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43"). SetCoin(1). SetValue(transaction.BipToPip(big.NewInt(10))) tx, _ := transaction.NewBuilder(transaction.TestNetChainID).NewTransaction(data) signedTx, _ := tx.SetNonce(1).SetGasPrice(1).SetGasCoin(1).Sign("07bc17abdcee8b971bb8723e36fe9d2523306d5ab2d683631693238e0f9df142") signedTxEncode, _ := signedTx.Encode() fmt.Println(signedTxEncode) }
Output: 0xf87c0102010108aceba00eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a4301888ac7230489e80000808001b845f8431ca0b51138984781f47bec471a8d6185c5bd57fd6b31dfb323152fe4802084621fc4a040aa80f40f4613f5c4171c36270ab5815e6697f5cbf756250063564233a8456c
func (*UnbondData) Encode ¶
func (d *UnbondData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*UnbondData) MustSetPubKey ¶
func (d *UnbondData) MustSetPubKey(key string) *UnbondData
MustSetPubKey tries to set public key of validator and panics on error.
func (*UnbondData) SetCoin ¶
func (d *UnbondData) SetCoin(id uint64) *UnbondData
SetCoin sets ID of coin to stake
func (*UnbondData) SetPubKey ¶
func (d *UnbondData) SetPubKey(key string) (*UnbondData, error)
SetPubKey sets Public key of a validator
func (*UnbondData) SetValue ¶
func (d *UnbondData) SetValue(value *big.Int) *UnbondData
SetValue sets amount of coins to stake
func (*UnbondData) Type ¶
func (d *UnbondData) Type() Type
Type returns Data type of the transaction.
type VoteCommissionData ¶ added in v2.2.0
type VoteCommissionData struct { PubKey PublicKey Height uint64 Coin CoinID PayloadByte *big.Int Send *big.Int BuyBancor *big.Int SellBancor *big.Int SellAllBancor *big.Int BuyPool *big.Int SellPool *big.Int SellAllPool *big.Int CreateTicker3 *big.Int CreateTicker4 *big.Int CreateTicker5 *big.Int CreateTicker6 *big.Int CreateTicker7to10 *big.Int CreateCoin *big.Int CreateToken *big.Int RecreateCoin *big.Int RecreateToken *big.Int DeclareCandidacy *big.Int Delegate *big.Int Unbond *big.Int RedeemCheck *big.Int SetCandidateOn *big.Int SetCandidateOff *big.Int CreateMultisig *big.Int MultisendBase *big.Int MultisendDelta *big.Int EditCandidate *big.Int SetHaltBlock *big.Int EditTickerOwner *big.Int EditMultisig *big.Int PriceVote *big.Int EditCandidatePublicKey *big.Int CreateSwapPool *big.Int AddLiquidity *big.Int RemoveLiquidity *big.Int EditCandidateCommission *big.Int MoveStake *big.Int MintToken *big.Int BurnToken *big.Int VoteCommission *big.Int VoteUpdate *big.Int More []*big.Int `rlp:"tail"` }
VoteCommissionData is a Data of Transaction for enabling validators to vote for the fees to be changed. The change comes into force once a two-thirds majority is reached. The vote can be sent from the validator owner address.
func NewVoteCommissionData ¶ added in v2.2.0
func NewVoteCommissionData() *VoteCommissionData
NewVoteCommissionData creates VoteCommissionData
func (*VoteCommissionData) AddLimitOrderPrice ¶ added in v2.4.0
func (d *VoteCommissionData) AddLimitOrderPrice() *big.Int
func (*VoteCommissionData) Encode ¶ added in v2.2.0
func (d *VoteCommissionData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*VoteCommissionData) FailedTxPrice ¶ added in v2.4.0
func (d *VoteCommissionData) FailedTxPrice() *big.Int
func (*VoteCommissionData) LockPrice ¶ added in v2.5.0
func (d *VoteCommissionData) LockPrice() *big.Int
func (*VoteCommissionData) LockStakePrice ¶ added in v2.5.0
func (d *VoteCommissionData) LockStakePrice() *big.Int
func (*VoteCommissionData) MoveStakePrice ¶ added in v2.5.0
func (d *VoteCommissionData) MoveStakePrice() *big.Int
func (*VoteCommissionData) MustSetPubKey ¶ added in v2.2.0
func (d *VoteCommissionData) MustSetPubKey(key string) *VoteCommissionData
MustSetPubKey tries to set public key and panics on error.
func (*VoteCommissionData) RemoveLimitOrderPrice ¶ added in v2.4.0
func (d *VoteCommissionData) RemoveLimitOrderPrice() *big.Int
func (*VoteCommissionData) SetCoin ¶ added in v2.2.0
func (d *VoteCommissionData) SetCoin(id uint64) *VoteCommissionData
SetCoin sets coin for calculate commission price in base coin
func (*VoteCommissionData) SetHeight ¶ added in v2.2.0
func (d *VoteCommissionData) SetHeight(height uint64) *VoteCommissionData
SetHeight sets height
func (*VoteCommissionData) SetPubKey ¶ added in v2.2.0
func (d *VoteCommissionData) SetPubKey(key string) (*VoteCommissionData, error)
SetPubKey sets public key.
func (*VoteCommissionData) Type ¶ added in v2.2.0
func (d *VoteCommissionData) Type() Type
Type returns Data type of the transaction.
type VoteUpdateData ¶ added in v2.2.0
VoteUpdateData is a Data of Transaction for
func NewVoteUpdateData ¶ added in v2.2.0
func NewVoteUpdateData() *VoteUpdateData
NewVoteUpdateData creates VoteUpdateData
func (*VoteUpdateData) Encode ¶ added in v2.2.0
func (d *VoteUpdateData) Encode() ([]byte, error)
Encode returns the byte representation of a transaction Data.
func (*VoteUpdateData) MustSetPubKey ¶ added in v2.2.0
func (d *VoteUpdateData) MustSetPubKey(key string) *VoteUpdateData
MustSetPubKey tries to set public key and panics on error.
func (*VoteUpdateData) SetHeight ¶ added in v2.2.0
func (d *VoteUpdateData) SetHeight(height uint64) *VoteUpdateData
SetHeight sets height
func (*VoteUpdateData) SetPubKey ¶ added in v2.2.0
func (d *VoteUpdateData) SetPubKey(key string) (*VoteUpdateData, error)
SetPubKey sets public key.
func (*VoteUpdateData) SetVersion ¶ added in v2.2.0
func (d *VoteUpdateData) SetVersion(version string) *VoteUpdateData
SetVersion sets version name.
func (*VoteUpdateData) Type ¶ added in v2.2.0
func (d *VoteUpdateData) Type() Type
Type returns Data type of the transaction.
Source Files ¶
- buy_coin.go
- check.go
- create_coin.go
- create_multisig.go
- declare_candidacy.go
- deeplink.go
- delegate.go
- doc.go
- edit_candidate.go
- edit_candidate_commission.go
- edit_candidate_public_key.go
- edit_coin_owner.go
- edit_multisig.go
- helpers.go
- lock.go
- lock_stake.go
- move_stake.go
- multisend.go
- price_vote.go
- recreate_coin.go
- redeem_check.go
- sell_all_coin.go
- sell_coin.go
- send.go
- set_candidate_off.go
- set_candidate_on.go
- set_halt_block.go
- signaturetype_string.go
- swap_pool.go
- token.go
- transaction.go
- unbond.go
- vote_commission.go
- vote_update.go