·
6 commits
to main
since this release
Patch Changes
-
#112
c59507eThanks @solidsnakedev! - Add transaction chaining support viaSignBuilder.chainResult()- Add
chainResult()method toSignBuilderfor building dependent transactions - Returns
ChainResultwithconsumed,availableUTxOs and pre-computedtxHash - Lazy evaluation with memoization - computed on first call, cached for subsequent calls
- Add
signAndSubmit()convenience method combining sign and submit in one call - Remove redundant
chain(),chainEffect(),chainEither()methods from TransactionBuilder
- Add
-
#110
9ddc79dThanks @solidsnakedev! - ### Native Scripts & Multi-Sig SupportaddSigneroperation: Add required signers to transactions for multi-sig and script validation- Native script minting: Full support for
ScriptAll,ScriptAny,ScriptNOfK,InvalidBefore,InvalidHereafter - Reference scripts: Use native scripts via
readFrominstead of attaching them to transactions - Multi-sig spending: Spend from native script addresses with multi-party signing
- Improved fee calculation: Accurate fee estimation for transactions with native scripts and reference scripts
API Changes
UTxO.scriptReftype changed fromScriptReftoScriptfor better type safetyPayToAddressParams.scriptRefrenamed toscriptfor consistency- Wallet
signTxnow acceptsreferenceUtxoscontext for native script signer detection - Client
signTxauto-fetches reference UTxOs when signing transactions with reference inputs
-
#109
0730f23Thanks @solidsnakedev! - ### TxBuilder setValidity APIAdd
setValidity()method to TxBuilder for setting transaction validity intervals:client.newTx() .setValidity({ from: Date.now(), // Valid after this Unix time (optional) to: Date.now() + 300_000 // Expires after this Unix time (optional) }) .payToAddress({ ... }) .build()
- Times are provided as Unix milliseconds and converted to slots during transaction assembly
- At least one of
fromortomust be specified - Validates that
from < towhen both are provided
slotConfig support for devnets
Add
slotConfigparameter tocreateClient()for custom slot configurations:const slotConfig = Cluster.getSlotConfig(devnetCluster) const client = createClient({ network: 0, slotConfig, // Custom slot config for devnet provider: { ... }, wallet: { ... } })
Priority chain for slot config resolution:
BuildOptions.slotConfig(per-transaction override)TxBuilderConfig.slotConfig(client default)SLOT_CONFIG_NETWORK[network](hardcoded fallback)
Cluster.getSlotConfig helper
Add
getSlotConfig()helper to derive slot configuration from devnet cluster genesis:const slotConfig = Cluster.getSlotConfig(cluster) // Returns: { zeroTime, zeroSlot, slotLength }