Documentation
¶
Index ¶
- Variables
- func NewContextFromClients(ctx context.Context, infoClient *info.Client, chainClient *platformvm.Client) (*builder.Context, error)
- func NewContextFromURI(ctx context.Context, uri string) (*builder.Context, error)
- type Backend
- type Builder
- type BuilderBackend
- type Client
- type Signer
- type SignerBackend
- type Wallet
Constants ¶
This section is empty.
Variables ¶
View Source
var ( NewWallet = pwallet.New NewWalletWithOptions = pwallet.WithOptions )
Functions ¶
func NewContextFromClients ¶
Types ¶
type Backend ¶ added in v1.1.11
type Backend interface {
builder.Backend
signer.Backend
AcceptTx(ctx context.Context, tx *txs.Tx) error
}
Backend defines the full interface required to support a P-chain wallet.
type Builder ¶ added in v1.1.11
type Builder interface {
// GetBalance calculates the amount of each asset that this builder has
// control over.
GetBalance(
options ...common.Option,
) (map[ids.ID]uint64, error)
// GetImportableBalance calculates the amount of each asset that this
// builder could import from the provided chain.
//
// - [chainID] specifies the chain the funds are from.
GetImportableBalance(
chainID ids.ID,
options ...common.Option,
) (map[ids.ID]uint64, error)
// NewBaseTx creates a new simple value transfer. Because the P-chain
// doesn't intend for balance transfers to occur, this method is expensive
// and abuses the creation of subnets.
//
// - [outputs] specifies all the recipients and amounts that should be sent
// from this transaction.
NewBaseTx(
outputs []*lux.TransferableOutput,
options ...common.Option,
) (*txs.CreateSubnetTx, error)
// NewAddValidatorTx creates a new validator of the primary network.
//
// - [vdr] specifies all the details of the validation period such as the
// startTime, endTime, stake weight, and nodeID.
// - [rewardsOwner] specifies the owner of all the rewards this validator
// may accrue during its validation period.
// - [shares] specifies the fraction (out of 1,000,000) that this validator
// will take from delegation rewards. If 1,000,000 is provided, 100% of
// the delegation reward will be sent to the validator's [rewardsOwner].
NewAddValidatorTx(
vdr *txs.Validator,
rewardsOwner *secp256k1fx.OutputOwners,
shares uint32,
options ...common.Option,
) (*txs.AddValidatorTx, error)
// NewAddChainValidatorTx creates a new validator of a subnet.
//
// - [vdr] specifies all the details of the validation period such as the
// startTime, endTime, sampling weight, nodeID, and netID.
NewAddChainValidatorTx(
vdr *txs.ChainValidator,
options ...common.Option,
) (*txs.AddChainValidatorTx, error)
// NewRemoveChainValidatorTx removes [nodeID] from the validator
// set [netID].
NewRemoveChainValidatorTx(
nodeID ids.NodeID,
netID ids.ID,
options ...common.Option,
) (*txs.RemoveChainValidatorTx, error)
// NewAddDelegatorTx creates a new delegator to a validator on the primary
// network.
//
// - [vdr] specifies all the details of the delegation period such as the
// startTime, endTime, stake weight, and validator's nodeID.
// - [rewardsOwner] specifies the owner of all the rewards this delegator
// may accrue at the end of its delegation period.
NewAddDelegatorTx(
vdr *txs.Validator,
rewardsOwner *secp256k1fx.OutputOwners,
options ...common.Option,
) (*txs.AddDelegatorTx, error)
// NewCreateChainTx creates a new chain in the named subnet.
//
// - [netID] specifies the net to launch the chain in.
// - [genesis] specifies the initial state of the new chain.
// - [vmID] specifies the vm that the new chain will run.
// - [fxIDs] specifies all the feature extensions that the vm should be
// running with.
// - [chainName] specifies a human readable name for the chain.
NewCreateChainTx(
netID ids.ID,
genesis []byte,
vmID ids.ID,
fxIDs []ids.ID,
chainName string,
options ...common.Option,
) (*txs.CreateChainTx, error)
// NewCreateSubnetTx creates a new subnet with the specified owner.
//
// - [owner] specifies who has the ability to create new chains and add new
// validators to the subnet.
NewCreateSubnetTx(
owner *secp256k1fx.OutputOwners,
options ...common.Option,
) (*txs.CreateSubnetTx, error)
// NewImportTx creates an import transaction that attempts to consume all
// the available UTXOs and import the funds to [to].
//
// - [chainID] specifies the chain to be importing funds from.
// - [to] specifies where to send the imported funds to.
NewImportTx(
chainID ids.ID,
to *secp256k1fx.OutputOwners,
options ...common.Option,
) (*txs.ImportTx, error)
// NewExportTx creates an export transaction that attempts to send all the
// provided [outputs] to the requested [chainID].
//
// - [chainID] specifies the chain to be exporting the funds to.
// - [outputs] specifies the outputs to send to the [chainID].
NewExportTx(
chainID ids.ID,
outputs []*lux.TransferableOutput,
options ...common.Option,
) (*txs.ExportTx, error)
// NewTransformChainTx creates a transform net transaction that attempts
// to convert the provided [netID] from a permissioned net to a
// permissionless subnet. This transaction will convert
// [maxSupply] - [initialSupply] of [assetID] to staking rewards.
//
// - [netID] specifies the net to transform.
// - [assetID] specifies the asset to use to reward stakers on the subnet.
// - [initialSupply] is the amount of [assetID] that will be in circulation
// after this transaction is accepted.
// - [maxSupply] is the maximum total amount of [assetID] that should ever
// exist.
// - [minConsumptionRate] is the rate that a staker will receive rewards
// if they stake with a duration of 0.
// - [maxConsumptionRate] is the maximum rate that staking rewards should be
// consumed from the reward pool per year.
// - [minValidatorStake] is the minimum amount of funds required to become a
// validator.
// - [maxValidatorStake] is the maximum amount of funds a single validator
// can be allocated, including delegated funds.
// - [minStakeDuration] is the minimum number of seconds a staker can stake
// for.
// - [maxStakeDuration] is the maximum number of seconds a staker can stake
// for.
// - [minValidatorStake] is the minimum amount of funds required to become a
// delegator.
// - [maxValidatorWeightFactor] is the factor which calculates the maximum
// amount of delegation a validator can receive. A value of 1 effectively
// disables delegation.
// - [uptimeRequirement] is the minimum percentage a validator must be
// online and responsive to receive a reward.
NewTransformChainTx(
netID ids.ID,
assetID ids.ID,
initialSupply uint64,
maxSupply uint64,
minConsumptionRate uint64,
maxConsumptionRate uint64,
minValidatorStake uint64,
maxValidatorStake uint64,
minStakeDuration time.Duration,
maxStakeDuration time.Duration,
minDelegationFee uint32,
minDelegatorStake uint64,
maxValidatorWeightFactor byte,
uptimeRequirement uint32,
options ...common.Option,
) (*txs.TransformChainTx, error)
// NewAddPermissionlessValidatorTx creates a new validator of the specified
// subnet.
//
// - [vdr] specifies all the details of the validation period such as the
// netID, startTime, endTime, stake weight, and nodeID.
// - [signer] if the netID is the primary network, this is the BLS key
// for this validator. Otherwise, this value should be the empty signer.
// - [assetID] specifies the asset to stake.
// - [validationRewardsOwner] specifies the owner of all the rewards this
// validator earns for its validation period.
// - [delegationRewardsOwner] specifies the owner of all the rewards this
// validator earns for delegations during its validation period.
// - [shares] specifies the fraction (out of 1,000,000) that this validator
// will take from delegation rewards. If 1,000,000 is provided, 100% of
// the delegation reward will be sent to the validator's [rewardsOwner].
NewAddPermissionlessValidatorTx(
vdr *txs.ChainValidator,
signer signer.Signer,
assetID ids.ID,
validationRewardsOwner *secp256k1fx.OutputOwners,
delegationRewardsOwner *secp256k1fx.OutputOwners,
shares uint32,
options ...common.Option,
) (*txs.AddPermissionlessValidatorTx, error)
// NewAddPermissionlessDelegatorTx creates a new delegator of the specified
// net on the specified nodeID.
//
// - [vdr] specifies all the details of the delegation period such as the
// netID, startTime, endTime, stake weight, and nodeID.
// - [assetID] specifies the asset to stake.
// - [rewardsOwner] specifies the owner of all the rewards this delegator
// earns during its delegation period.
NewAddPermissionlessDelegatorTx(
vdr *txs.ChainValidator,
assetID ids.ID,
rewardsOwner *secp256k1fx.OutputOwners,
options ...common.Option,
) (*txs.AddPermissionlessDelegatorTx, error)
}
Builder provides a convenient interface for building unsigned P-chain transactions.
func NewBuilder ¶ added in v1.1.11
func NewBuilder(addrs set.Set[ids.ShortID], context *builder.Context, backend BuilderBackend) Builder
NewBuilder returns a new transaction builder.
- [addrs] is the set of addresses that the builder assumes can be used when signing the transactions in the future.
- context provides the chain's configuration.
- [backend] provides the required access to the chain's state to build out the transactions.
func NewBuilderWithOptions ¶ added in v1.1.11
NewBuilderWithOptions returns a new transaction builder that will use the given options by default.
- builder is the builder that will be called to perform the underlying operations.
- [options] will be provided to the builder in addition to the options provided in the method calls.
type BuilderBackend ¶ added in v1.1.11
type BuilderBackend interface {
builder.Backend
GetTx(ctx stdcontext.Context, txID ids.ID) (*txs.Tx, error)
}
BuilderBackend specifies the required information needed to build unsigned P-chain transactions.
type Signer ¶ added in v1.1.11
type Signer interface {
SignUnsigned(ctx stdcontext.Context, tx txs.UnsignedTx) (*txs.Tx, error)
Sign(ctx stdcontext.Context, tx *txs.Tx) error
}
type SignerBackend ¶ added in v1.1.11
Source Files
¶
Click to show internal directories.
Click to hide internal directories.