Crate chia_sdk_driver

Crate chia_sdk_driver 

Source
Expand description

§Puzzles

Chia coins have a puzzle, which controls how it can be spent. The solution is used as the arguments to the puzzle, and the output is a list of conditions.

A puzzle consists of multiple layers composed together.

§Layers

A layer is a subset of the logic that makes up a smart coin in Chia. They are also referred to as “inner puzzles”, and the solution can be broken up into “inner solutions” as well.

Generally, you can parse and construct the individual layers separately. This allows them to be composed together freely. However, there are sometimes additional restraints which limit the ways they can be mixed. For example, the CatLayer cannot have another CatLayer as its inner puzzle, due to the way it’s written. This would create an error when validating the announcements.

§P2 Puzzles

A p2 puzzle (meaning “pay to”) controls the ownership of the coin. The simplest example of this is p2_conditions.clsp, which requires a signature from a single public key and outputs a list of conditions from the solution.

The “standard transaction” (which is p2_delegated_puzzle_or_hidden_puzzle.clsp) is a kind of p2 puzzle that adds additional flexibility. Specifically, support for an inner puzzle, and usage of a delegated puzzle instead of directly conditions.

Generally, the p2 puzzle is the base layer in a coin’s puzzle, and everything else builds on top of it to restrict the way it can be spent or attach state.

§Primitives

A Primitive uses one or more Layer to parse info from a parent’s coin spend. Generally, Layer has the ability to parse and construct individual puzzles and solutions, and the composed Primitive struct can parse all of the information required to spend a coin. The Primitive should also provide a way to spend the coin, and other utilities necessary.

Structs§

ActionLayer
ActionLayerSolution
Arbitrage
ArbitrageSide
AssetInfo
AugmentedConditionLayer
The augmented condition Layer allows for adding a condition to a puzzle’s output.
Cat
Contains all information needed to spend the outer puzzles of CAT coins. The CatInfo is used to construct the puzzle, but the LineageProof is needed for the solution.
CatAssetInfo
CatInfo
Information needed to construct the outer puzzle of a CAT. This includes the CatLayer and RevocationLayer if present. However, it does not include the inner puzzle, which must be stored separately.
CatLayer
The CAT Layer enforces restrictions on the supply of a token. Specifically, unless the TAIL program is run, the supply cannot change.
CatSpend
CatalogPendingSpendInfo
CatalogPrecommitValue
CatalogRefundAction
CatalogRegisterAction
CatalogRegistry
CatalogRegistryConstants
CatalogRegistryInfo
CatalogRegistryState
ChildDidInfo
ChildNftInfo
ChildOptionInfo
Clawback
ClawbackV2
ConditionConfig
ConditionsLayer
The Conditions Layer is a puzzle that simply returns the conditions
ConditionsSpend
CreateDidAction
CurriedPuzzle
DataStore
Everything that is required to spend a DataStore coin.
DataStoreInfo
DataStoreMetadata
DelegatedStateAction
DelegationLayer
The Delegation Layer is used to enable DataLayer delegation capabilities For more information, see CHIP-0035.
Delta
Deltas
DidInfo
Information needed to construct the outer puzzle of a DID. It does not include the inner puzzle, which must be stored separately.
DidLayer
The DID Layer keeps track of metadata and handles recovery capabilities. It’s typically an inner layer of the SingletonLayer.
DlLauncherKvList
FeeAction
Force1of2RestrictedVariableMemo
FungibleSpend
FungibleSpends
HashedPtr
InnerPuzzleMemo
InnerPuzzleSpend
IntermediateLauncher
An intermediate launcher is a coin that is created prior to the actual launcher coin. In this case, it automatically creates the launcher coin upon being spent.
IssueCatAction
Launcher
A singleton launcher is a coin that is spent within the same block to create a singleton. The first coin that is created is known as an “eve” singleton. The Launcher type allows you to get the launcher id before committing to creating the singleton.
MOfNLayer
MedievalVaultHint
MedievalVaultInfo
MeltSingletonAction
MemberMemo
MintNftAction
MintOptionAction
MipsMemo
MipsMemoContext
MipsSpend
MofN
MofNMemo
NftAssetInfo
NftInfo
Information needed to construct the outer puzzle of an NFT. It does not include the inner puzzle, which must be stored separately.
NftMint
NftOwnershipLayer
The NFT ownership Layer keeps track of the current DID that owns the NFT. It also contains a transfer layer, which is used to transfer ownership of the NFT. The inner puzzle layer is commonly used for determining ownership (in the key sense, not DID).
NftStateLayer
The NFT state Layer keeps track of the current metadata of the NFT and how to change it. It’s typically an inner layer of the SingletonLayer.
Offer
OfferAmounts
OfferCoins
OldDlLauncherKvList
OptionAssetInfo
OptionContractLayer
The option contract Layer keeps track of the underlying coin and right to exercise the option. It’s typically an inner layer of the SingletonLayer.
OptionInfo
OptionLauncher
OptionLauncherInfo
OptionMetadata
OptionUnderlying
OracleLayer
The Oracle Layer enables anyone to spend a coin provided they pay an XCH fee to an address. It’s typically used with DelegationLayer.
Output
OutputConstraints
Outputs
P2CurriedLayer
The p2 curried Layer allows for .
P2DelegatedBySingletonLayer
P2DelegatedConditionsLayer
The p2 delegated conditions Layer allows a certain key to spend the coin. To do so, a list of additional conditions is signed and passed in the solution. Typically, the StandardLayer is used instead, since it adds more flexibility.
P2OneOfManyLayer
The p2 1 of n Layer allows for picking from several delegated puzzles at runtime without revealing up front.
P2SingletonLayer
The p2 singleton Layer allows for requiring that a singleton be spent alongside this coin to authorize it.
PrecommitCoin
PrecommitLayer
RawPuzzle
ReadyOption
RequestedPayments
Reserve
Restriction
RestrictionMemo
RevocationLayer
The revocation Layer allows the issuer to revoke the asset.
RewardDistributor
RewardDistributorAddEntryAction
RewardDistributorAddIncentivesAction
RewardDistributorCommitIncentivesAction
RewardDistributorConstants
RewardDistributorInfo
RewardDistributorInitiatePayoutAction
RewardDistributorNewEpochAction
RewardDistributorPendingSpendInfo
RewardDistributorRemoveEntryAction
RewardDistributorStakeAction
RewardDistributorState
RewardDistributorSyncAction
RewardDistributorUnstakeAction
RewardDistributorWithdrawIncentivesAction
RoundRewardInfo
RoundTimeInfo
RoyaltyInfo
RoyaltyTransferLayer
The royalty transfer Layer is used to transfer NFTs with royalties. When an NFT is transferred, a percentage of the transfer amount is paid to an address. This address can for example be the creator, or a royalty split puzzle.
RunTailAction
SendAction
SettleAction
SettlementLayer
The settlement Layer is used to spend coins that are part of an offer.
SettlementSpend
SingleCatSpend
Singleton
A generic singleton primitive, which can be extended with the SingletonInfo trait.
SingletonLayer
The singleton Layer enforces uniqueness on a coin, which is identified by the launcher id. It contains an inner puzzle layer, which determines the actual behavior of the coin. Only one singleton can be created when the coin is spent, preserving the lineage of the asset.
SingletonSpend
SingletonSpends
Slot
Spend
SpendContext
A wrapper around Allocator that caches puzzles and keeps track of a list of CoinSpend. It’s used to construct spend bundles in an easy and efficient way.
Spends
StandardLayer
The standard Layer is used for most coins on the Chia blockchain. It allows a single key to spend the coin by providing a delegated puzzle (for example to output Conditions).
StateScheduler
StateSchedulerInfo
StateSchedulerLauncherHints
StateSchedulerLayer
StreamLayer
StreamPuzzle1stCurryArgs
StreamPuzzle2ndCurryArgs
StreamPuzzleSolution
StreamedAsset
StreamingPuzzleInfo
TransferNftById
UniquenessPrelauncher
UnspecifiedOption
UpdateDidAction
UpdateNftAction
VaultInfo
Verification
VerificationAsserter
VerificationInfo
VerificationLauncherKVList
VerificationLayer
VerifiedData
VersionedBlob
WrapperMemo
WriterLayer
The Writer Layer removes an authorized puzzle’s ability to change the list of authorized puzzles. It’s typically used with DelegationLayer.
XchandlesConstants
XchandlesExpireAction
XchandlesExpirePricingPuzzle
XchandlesExtendAction
XchandlesOracleAction
XchandlesPendingSpendInfo
XchandlesPrecommitValue
XchandlesRefundAction
XchandlesRegisterAction
XchandlesRegistry
XchandlesRegistryInfo
XchandlesRegistryState
XchandlesUpdateAction

Enums§

Action
CatMaker
DelegatedPuzzle
DriverError
Finalizer
HintType
Id
Represents either XCH, an existing CAT or singleton, or a new CAT or singleton.
MemoKind
MetadataUpdate
MipsSpendKind
OptionType
ParsedMember
ParsedRestriction
ParsedWrapper
Puzzle
Relation
RestrictionKind
RewardDistributorType
SingletonDestination
SpendKind
SpendableAsset
TailIssuance

Constants§

BURN_PUZZLE_HASH
STREAM_PUZZLE
STREAM_PUZZLE_HASH

Traits§

ActionSingleton
AddAsset
Asset
FungibleAsset
Layer
An individual layer in a puzzle’s hierarchy.
MetadataWithRootHash
OutputSet
Reserveful
SingletonAction
SingletonAsset
SingletonInfo
SpendAction
SpendWithConditions

Functions§

assignment_puzzle_announcement_id
calculate_nft_royalty
calculate_nft_trace_price
calculate_royalty_amounts
calculate_royalty_payments
calculate_trade_price_amounts
calculate_trade_prices
compress_offer
compress_offer_bytes
create_security_coin
decode_offer
decode_offer_data
decompress_offer
decompress_offer_bytes
encode_offer
encode_offer_data
eve_singleton_inner_puzzle
get_merkle_tree
launch_catalog_registry
launch_reward_distributor
launch_xchandles_registry
mips_puzzle_hash
new_sk
sign_standard_transaction
spend_security_coin
spend_settlement_cats
spend_settlement_nft
zlib_compress
zlib_decompress

Type Aliases§

CatalogRegistryLayers
Did
Contains all information needed to spend the outer puzzles of DID coins. The DidInfo is used to construct the puzzle, but the Proof is needed for the solution.
MedievalVault
Nft
Contains all information needed to spend the outer puzzles of NFT coins. The NftInfo is used to construct the puzzle, but the Proof is needed for the solution.
OptionContract
OptionContractLayers
OptionDelegatedPuzzle
P2DelegatedOrHiddenLayer
This is the actual puzzle name for the StandardLayer.
PushThroughPath
RewardDistributorLayers
StandardDataStoreLayers
StandardDidLayers
StandardNftLayers
Vault
XchandlesRegistryLayers