plutus-core-1.70.0.0: Language library for Plutus Core
Safe HaskellSafe-Inferred
LanguageHaskell2010

PlutusCore.Crypto.BLS12_381.G2

Synopsis

Documentation

newtype Element Source #

See Note [Wrapping the BLS12-381 types in Plutus Core].

Constructors

Element 

Fields

Instances

Instances details
Show Element Source # 
Instance details

Defined in PlutusCore.Crypto.BLS12_381.G2

NFData Element Source # 
Instance details

Defined in PlutusCore.Crypto.BLS12_381.G2

Methods

rnf ∷ Element → () Source #

Eq Element Source # 
Instance details

Defined in PlutusCore.Crypto.BLS12_381.G2

Methods

(==) ∷ Element → Element → Bool Source #

(/=) ∷ Element → Element → Bool Source #

Hashable Element Source # 
Instance details

Defined in PlutusCore.Crypto.BLS12_381.G2

Methods

hashWithSalt ∷ Int → Element → Int Source #

hash ∷ Element → Int Source #

ExMemoryUsage Element Source # 
Instance details

Defined in PlutusCore.Evaluation.Machine.ExMemoryUsage

Flat Element Source #

We don't support direct flat encoding of G1 elements because of the expense of on-chain uncompression. Users should convert between G1 elements and bytestrings using compress and uncompress: the bytestrings can be flat-encoded in the usual way.

Instance details

Defined in PlutusCore.Crypto.BLS12_381.G2

Pretty Element Source # 
Instance details

Defined in PlutusCore.Crypto.BLS12_381.G2

Methods

pretty ∷ Element → Doc ann Source #

prettyList ∷ [Element] → Doc ann Source #

PrettyBy ConstConfig Element Source # 
Instance details

Defined in PlutusCore.Crypto.BLS12_381.G2

Methods

prettyBy ∷ ConstConfig → Element → Doc ann Source #

prettyListBy ∷ ConstConfig → [Element] → Doc ann Source #

KnownBuiltinTypeIn DefaultUni term Element ⇒ MakeKnownIn DefaultUni term Element Source # 
Instance details

Defined in PlutusCore.Default.Universe

Methods

makeKnown ∷ Element → BuiltinResult term Source #

KnownBuiltinTypeIn DefaultUni term Element ⇒ ReadKnownIn DefaultUni term Element Source # 
Instance details

Defined in PlutusCore.Default.Universe

Methods

readKnown ∷ term → ReadKnownM Element Source #

Contains DefaultUni Element Source # 
Instance details

Defined in PlutusCore.Default.Universe

KnownBuiltinTypeAst tyname DefaultUni Element ⇒ KnownTypeAst tyname DefaultUni Element Source # 
Instance details

Defined in PlutusCore.Default.Universe

Methods

typeAst ∷ Type tyname DefaultUni () Source #

type IsBuiltin DefaultUni Element Source # 
Instance details

Defined in PlutusCore.Default.Universe

type ToBinds DefaultUni acc Element Source # 
Instance details

Defined in PlutusCore.Default.Universe

type ToHoles DefaultUni hole Element Source # 
Instance details

Defined in PlutusCore.Default.Universe

add ∷ Element → Element → Element Source #

Add two G2 group elements

neg ∷ Element → Element Source #

Negate a G2 group element

compress ∷ Element → ByteString Source #

Compress a G2 element to a bytestring. This serialises a curve point to its x coordinate only, using an extra bit to determine which of two possible y coordinates the point has. The compressed bytestring is 96 bytes long. See https://github.com/supranational/blst#serialization-format

uncompress ∷ ByteString → Either BLSTError Element Source #

Uncompress a bytestring to get a G2 point. This will fail if any of the following are true: * The bytestring is not exactly 96 bytes long * The most significant three bits are used incorrectly * The bytestring encodes a field element which is not the x coordinate of a point on the E2 curve * The bytestring does represent a point on the E2 curve, but the point is not in the G2 subgroup

offchain_zero ∷ Element Source #

The zero element of G2. This cannot be flat-serialised and is provided only for off-chain testing.

compressed_zero ∷ ByteString Source #

The zero element of G2 compressed into a bytestring. This is provided for convenience in PlutusTx and is not exported as a builtin.

compressed_generator ∷ ByteString Source #

The standard generator of G2 compressed into a bytestring. This is provided for convenience in PlutusTx and is not exported as a builtin.

memSizeBytes ∷ Int Source #

Memory usage of a G2 point (288 bytes)

compressedSizeBytes ∷ Int Source #

Compressed size of a G2 point (96 bytes)

multiScalarMul ∷ [Integer] → [Element] → BuiltinResult Element Source #

Multi-scalar multiplication of G2 points. We limit the allowable size of scalars to simplify costing.