@@ -355,6 +355,132 @@ C<Bitcoin::Crypto::Exception::Sign> for errors in signature generation). Search
355355individual Bitcoin::Crypto packages documentation for a list the exception
356356classes to check for extra control flow when needed.
357357
358+ =head1 EXCEPTION SUBCLASSES
359+
360+ This module defines the following subclasses to Bitcoin::Crypto::Exception:
361+
362+ =head2 Bitcoin::Crypto::Exception::Transaction
363+
364+ Thrown when a general problem with a transaction is detected, for example:
365+ non-script verification failure, corrupted serialized transaction data.
366+
367+ =head2 Bitcoin::Crypto::Exception::UTXO
368+
369+ Thrown when a problem with UTXO is detected, most notably inability to find the UTXO.
370+
371+ =head2 Bitcoin::Crypto::Exception::Sign
372+
373+ Thrown when a problem occurs during signing a transaction or message.
374+
375+ =head2 Bitcoin::Crypto::Exception::KeyCreate
376+
377+ Thrown when a problem occurs during creation of a key.
378+
379+ =head2 Bitcoin::Crypto::Exception::KeyDerive
380+
381+ Thrown when a problem occurs during derivation of a key.
382+
383+ =head2 Bitcoin::Crypto::Exception::MnemonicCheck
384+
385+ Thrown when a mnemonic checking was unsuccessful.
386+
387+ =head2 Bitcoin::Crypto::Exception::Base58
388+
389+ Thrown when a general base58 format problem is detected.
390+
391+ =head2 Bitcoin::Crypto::Exception::Base58InputFormat
392+
393+ Thrown when input does not look like valid base58. Subclass of
394+ L</Bitcoin::Crypto::Exception::Base58> .
395+
396+ =head2 Bitcoin::Crypto::Exception::Base58InputChecksum
397+
398+ Thrown when base58check input checksum is invalid. Subclass of
399+ L</Bitcoin::Crypto::Exception::Base58> .
400+
401+ =head2 Bitcoin::Crypto::Exception::Bech32
402+
403+ Thrown when a general Bech32 format problem is detected.
404+
405+ =head2 Bitcoin::Crypto::Exception::Bech32InputFormat
406+
407+ Thrown when input does not look like valid bech32. Subclass of
408+ L</Bitcoin::Crypto::Exception::Bech32> .
409+
410+ =head2 Bitcoin::Crypto::Exception::Bech32InputData
411+
412+ Thrown when input is valid bech32, but contains invalid data. Subclass of
413+ L</Bitcoin::Crypto::Exception::Bech32> .
414+
415+ =head2 Bitcoin::Crypto::Exception::Bech32InputChecksum
416+
417+ Thrown when bech32 input checksum is invalid. Subclass of
418+ L</Bitcoin::Crypto::Exception::Bech32> .
419+
420+ =head2 Bitcoin::Crypto::Exception::SegwitProgram
421+
422+ Thrown when an issue with Segregated Witness program is detected.
423+
424+ =head2 Bitcoin::Crypto::Exception::ScriptType
425+
426+ Thrown when an unexpected script type is encountered.
427+
428+ =head2 Bitcoin::Crypto::Exception::ScriptOpcode
429+
430+ Thrown when unexpected script operation is encountered.
431+
432+ =head2 Bitcoin::Crypto::Exception::ScriptPush
433+
434+ Thrown when bad script push operation is performed.
435+
436+ =head2 Bitcoin::Crypto::Exception::Block
437+
438+ Thrown when a general problem with a block is detected.
439+
440+ =head2 Bitcoin::Crypto::Exception::ScriptTree
441+
442+ Thrown when a general problem with a script tree is detected.
443+
444+ =head2 Bitcoin::Crypto::Exception::ScriptCompilation
445+
446+ Thrown when a script compilation fails. It can only be thrown just
447+ before the script is executed.
448+
449+ =head2 Bitcoin::Crypto::Exception::ScriptRuntime
450+
451+ Thrown when an error occurs during script runtime.
452+
453+ =head2 Bitcoin::Crypto::Exception::TransactionScript
454+
455+ Thrown when an error occurs in execution of scripts during
456+ transaction validation. Subclass of
457+ L</Bitcoin::Crypto::Exception::Transaction> and
458+ L</Bitcoin::Crypto::Exception::ScriptRuntime> .
459+
460+ =head2 Bitcoin::Crypto::Exception::NetworkCheck
461+
462+ Thrown when an assumption about network is not met. This can happen
463+ in single-network mode or if a network parameter is used, but it
464+ does not match the arguments.
465+
466+ =head2 Bitcoin::Crypto::Exception::NetworkConfig
467+
468+ Thrown when network configuration is bad or insufficient to perform
469+ the operation.
470+
471+ =head2 Bitcoin::Crypto::Exception::Address
472+
473+ Thrown when a general error connected to addresses is encountered.
474+
475+ =head2 Bitcoin::Crypto::Exception::AddressGenerate
476+
477+ Thrown when an error is encountered while generating an address. Subclass of
478+ L</Bitcoin::Crypto::Exception::Address> .
479+
480+ =head2 Bitcoin::Crypto::Exception::PSBT
481+
482+ Thrown when a problem with PSBT format was encountered.
483+
358484=head1 INTERFACE
359485
360486=head2 Attributes
0 commit comments