Struct baru::loan::CollateralContract [−][src]
pub struct CollateralContract { /* fields omitted */ }
Expand description
Contract defining the conditions under which the collateral output can be spent.
It has a “liquidation branch” which allows the lender to claim
all the collateral for themself if the timelock
expires. The
lender must identify themself by providing a signature on
lender_pk
.
It also includes a “repayment branch” which allows the borrower to
repay the loan to reclaim the collateral. The borrower must
identify themself by providing a signature on borrower_pk
. To
ensure that the borrower does indeed repay the loan, the script
will check that the spending transaction has the
repayment_principal_output
as vout 0.
Additionally, the contract can be spent by providing a signature (and the corresponding message) from a valid oracle proving that the price of the collateral has dropped below a threshold determined at contract creation time.
Implementations
Trait Implementations
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations
impl RefUnwindSafe for CollateralContract
impl Send for CollateralContract
impl Sync for CollateralContract
impl Unpin for CollateralContract
impl UnwindSafe for CollateralContract
Blanket Implementations
Mutably borrows from an owned value. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
type Output = T
type Output = T
Should always be Self