DotNetLightning


ISatisfier Type

When we verify a macaroon for its caveats, usually it check each caveats independently. In case of LSAT, this does not work since the validity of a caveat depends on a previous caveat (more specifically, if there were two caveats with a same Condition, we usually check that whether the restriction does not get more loose than before.) So we can not just rely on Macaroon's . The additional check is done with this ISatisfier Interface

Instance members

Instance member Description

this.Condition

Full Usage: this.Condition

Returns: string
Modifiers: abstract

This is the left side of caveat equation. e.g. for caveat "service=my_awesome_service", it is "service"

Returns: string

this.SatisfyFinal

Full Usage: this.SatisfyFinal

Parameters:
Returns: Result<unit, string>
Modifiers: abstract

Satisfies the final caveat of an LSAT. If multiple caveats with the same condition exist, this will only be executed once all previous caveats are also satisfied.

arg0 : Caveat
Returns: Result<unit, string>

this.SatisfyPrevious

Full Usage: this.SatisfyPrevious

Parameters:
Returns: Result<unit, string>
Modifiers: abstract

ensures a caveat is in accordance with a previous one with the same condition. This is needed since caveats of the same condition can be used multiple times as long as they enforce more permissions than the previous.

For example, we have a caveat that only allows us to use an LSAT for 7 more days. we can add another caveat that only allows for 3 more days of use and lend it to another party.

arg0 : Caveat
arg1 : Caveat
Returns: Result<unit, string>