morley-1.17.0: Developer tools for the Michelson Language
Safe HaskellSafe-Inferred
LanguageHaskell2010

Morley.Tezos.Address

Contents

Description

Address in Tezos.

Synopsis

Documentation

type ContractHash = Hash 'HashKindContract Source #

Convenience synonym for a contract hash.

data Address Source #

Data type corresponding to address structure in Tezos.

Constructors

KeyAddress KeyHash

tz1, tz2 or tz3 address which is a hash of a public key.

ContractAddress ContractHash

KT address which corresponds to a callable contract.

TransactionRollupAddress TxRollupHash

txr1 address which corresponds to a transaction rollup.

Instances

Instances details
FromJSON Address Source # 
Instance details

Defined in Morley.Tezos.Address

FromJSONKey Address Source # 
Instance details

Defined in Morley.Tezos.Address

ToJSON Address Source # 
Instance details

Defined in Morley.Tezos.Address

ToJSONKey Address Source # 
Instance details

Defined in Morley.Tezos.Address

(TypeError ('Text "There is no instance defined for (IsString Address)" :$$: 'Text "Consider using QuasiQuotes: `[ta|some text...|]`") :: Constraint) => IsString Address Source # 
Instance details

Defined in Morley.Tezos.Address

Methods

fromString :: String -> Address #

Generic Address Source # 
Instance details

Defined in Morley.Tezos.Address

Associated Types

type Rep Address :: Type -> Type #

Methods

from :: Address -> Rep Address x #

to :: Rep Address x -> Address #

Show Address Source # 
Instance details

Defined in Morley.Tezos.Address

NFData Address Source # 
Instance details

Defined in Morley.Tezos.Address

Methods

rnf :: Address -> () #

Buildable Address Source # 
Instance details

Defined in Morley.Tezos.Address

Methods

build :: Address -> Builder #

Eq Address Source # 
Instance details

Defined in Morley.Tezos.Address

Methods

(==) :: Address -> Address -> Bool #

(/=) :: Address -> Address -> Bool #

Ord Address Source # 
Instance details

Defined in Morley.Tezos.Address

HasRPCRepr Address Source # 
Instance details

Defined in Morley.AsRPC

Associated Types

type AsRPC Address Source #

TypeHasDoc Address Source # 
Instance details

Defined in Morley.Michelson.Typed.Haskell.Doc

IsoValue Address Source # 
Instance details

Defined in Morley.Michelson.Typed.Haskell.Value

Associated Types

type ToT Address :: T Source #

HasCLReader Address Source # 
Instance details

Defined in Morley.Tezos.Address

Lift Address Source # 
Instance details

Defined in Morley.Tezos.Address

Methods

lift :: Quote m => Address -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => Address -> Code m Address #

type Rep Address Source # 
Instance details

Defined in Morley.Tezos.Address

type AsRPC Address Source # 
Instance details

Defined in Morley.AsRPC

type TypeDocFieldDescriptions Address Source # 
Instance details

Defined in Morley.Michelson.Typed.Haskell.Doc

type ToT Address Source # 
Instance details

Defined in Morley.Michelson.Typed.Haskell.Value

newtype TxRollupL2Address Source #

tz4 level-2 public key hash address, used with transaction rollups, corresponds to tx_rollup_l2_address Michelson type.

Instances

Instances details
Generic TxRollupL2Address Source # 
Instance details

Defined in Morley.Tezos.Address

Associated Types

type Rep TxRollupL2Address :: Type -> Type #

Show TxRollupL2Address Source # 
Instance details

Defined in Morley.Tezos.Address

NFData TxRollupL2Address Source # 
Instance details

Defined in Morley.Tezos.Address

Methods

rnf :: TxRollupL2Address -> () #

Buildable TxRollupL2Address Source # 
Instance details

Defined in Morley.Tezos.Address

Eq TxRollupL2Address Source # 
Instance details

Defined in Morley.Tezos.Address

Ord TxRollupL2Address Source # 
Instance details

Defined in Morley.Tezos.Address

HasRPCRepr TxRollupL2Address Source # 
Instance details

Defined in Morley.AsRPC

Associated Types

type AsRPC TxRollupL2Address Source #

IsoValue TxRollupL2Address Source # 
Instance details

Defined in Morley.Michelson.Typed.Haskell.Value

Associated Types

type ToT TxRollupL2Address :: T Source #

Lift TxRollupL2Address Source # 
Instance details

Defined in Morley.Tezos.Address

Methods

lift :: Quote m => TxRollupL2Address -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => TxRollupL2Address -> Code m TxRollupL2Address #

type Rep TxRollupL2Address Source # 
Instance details

Defined in Morley.Tezos.Address

type Rep TxRollupL2Address = D1 ('MetaData "TxRollupL2Address" "Morley.Tezos.Address" "morley-1.17.0-inplace" 'True) (C1 ('MetaCons "TxRollupL2Address" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 KeyHashL2)))
type AsRPC TxRollupL2Address Source # 
Instance details

Defined in Morley.AsRPC

type ToT TxRollupL2Address Source # 
Instance details

Defined in Morley.Michelson.Typed.Haskell.Value

mkKeyAddress :: PublicKey -> Address Source #

Smart constructor for KeyAddress.

detGenKeyAddress :: ByteString -> Address Source #

Deterministically generate a random KeyAddress and discard its secret key.

isKeyAddress :: Address -> Bool Source #

Returns True if given address is implicit.

newtype GlobalCounter Source #

Represents the network's global counter.

We store the current value of this counter in the operation at the time of its creation for the following reasons: * to guarantee the uniqueness of contract addresses upon origination (see 'Morley.Michelson.Typed.Operation.mkContractAddress) * to prevent replay attacks by checking that an operation with the same counter value con't be performed twice.

The counter is incremented after every operation execution and interpretation of instructions CREATE_CONTRACT and TRANSFER_TOKENS, and thus ensures that these addresses are unique (i.e. origination of identical contracts with identical metadata will result in different addresses.)

Our counter is represented as Word64, while in Tezos it is unbounded. We believe that for our interpreter it should not matter.

Constructors

GlobalCounter 

Instances

Instances details
FromJSON GlobalCounter Source # 
Instance details

Defined in Morley.Tezos.Address

ToJSON GlobalCounter Source # 
Instance details

Defined in Morley.Tezos.Address

Generic GlobalCounter Source # 
Instance details

Defined in Morley.Tezos.Address

Associated Types

type Rep GlobalCounter :: Type -> Type #

Num GlobalCounter Source # 
Instance details

Defined in Morley.Tezos.Address

Show GlobalCounter Source # 
Instance details

Defined in Morley.Tezos.Address

NFData GlobalCounter Source # 
Instance details

Defined in Morley.Tezos.Address

Methods

rnf :: GlobalCounter -> () #

Buildable GlobalCounter Source # 
Instance details

Defined in Morley.Tezos.Address

Eq GlobalCounter Source # 
Instance details

Defined in Morley.Tezos.Address

Hashable GlobalCounter Source # 
Instance details

Defined in Morley.Tezos.Address

type Rep GlobalCounter Source # 
Instance details

Defined in Morley.Tezos.Address

type Rep GlobalCounter = D1 ('MetaData "GlobalCounter" "Morley.Tezos.Address" "morley-1.17.0-inplace" 'True) (C1 ('MetaCons "GlobalCounter" 'PrefixI 'True) (S1 ('MetaSel ('Just "unGlobalCounter") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))

mkContractHashHack :: ByteString -> ContractHash Source #

Create a dummy ContractHash value by hashing given ByteString.

Use in tests **only**.

Formatting

data ParseAddressError Source #

Errors that can happen during address parsing.

Constructors

ParseAddressWrongBase58Check

Address is not in Base58Check format.

ParseAddressAllFailed (NonEmpty CryptoParseError)

All address parsers failed with some error.

Instances

Instances details
Semigroup ParseAddressError Source # 
Instance details

Defined in Morley.Tezos.Address

Generic ParseAddressError Source # 
Instance details

Defined in Morley.Tezos.Address

Associated Types

type Rep ParseAddressError :: Type -> Type #

Show ParseAddressError Source # 
Instance details

Defined in Morley.Tezos.Address

NFData ParseAddressError Source # 
Instance details

Defined in Morley.Tezos.Address

Methods

rnf :: ParseAddressError -> () #

Buildable ParseAddressError Source # 
Instance details

Defined in Morley.Tezos.Address

Eq ParseAddressError Source # 
Instance details

Defined in Morley.Tezos.Address

RenderDoc ParseAddressError Source # 
Instance details

Defined in Morley.Tezos.Address

type Rep ParseAddressError Source # 
Instance details

Defined in Morley.Tezos.Address

type Rep ParseAddressError = D1 ('MetaData "ParseAddressError" "Morley.Tezos.Address" "morley-1.17.0-inplace" 'False) (C1 ('MetaCons "ParseAddressWrongBase58Check" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ParseAddressAllFailed" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (NonEmpty CryptoParseError))))

data ParseAddressRawError Source #

Constructors

ParseAddressRawWrongSize ByteString

Raw bytes representation of an address has invalid length.

ParseAddressRawInvalidPrefix ByteString

Raw bytes representation of an address has incorrect prefix.

ParseAddressRawMalformedSeparator ByteString

Raw bytes representation of an address does not end with "00".

Instances

Instances details
Generic ParseAddressRawError Source # 
Instance details

Defined in Morley.Tezos.Address

Associated Types

type Rep ParseAddressRawError :: Type -> Type #

Show ParseAddressRawError Source # 
Instance details

Defined in Morley.Tezos.Address

NFData ParseAddressRawError Source # 
Instance details

Defined in Morley.Tezos.Address

Methods

rnf :: ParseAddressRawError -> () #

Buildable ParseAddressRawError Source # 
Instance details

Defined in Morley.Tezos.Address

Eq ParseAddressRawError Source # 
Instance details

Defined in Morley.Tezos.Address

RenderDoc ParseAddressRawError Source # 
Instance details

Defined in Morley.Tezos.Address

type Rep ParseAddressRawError Source # 
Instance details

Defined in Morley.Tezos.Address

type Rep ParseAddressRawError = D1 ('MetaData "ParseAddressRawError" "Morley.Tezos.Address" "morley-1.17.0-inplace" 'False) (C1 ('MetaCons "ParseAddressRawWrongSize" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 ByteString)) :+: (C1 ('MetaCons "ParseAddressRawInvalidPrefix" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 ByteString)) :+: C1 ('MetaCons "ParseAddressRawMalformedSeparator" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 ByteString))))

parseAddressRaw :: ByteString -> Either ParseAddressRawError Address Source #

Parse the given address in its raw byte form used by Tezos (e.g "01521139f84791537d54575df0c74a8084cc68861c00")) . Or fail otherwise if it's invalid.

parseAddress :: Text -> Either ParseAddressError Address Source #

Parse an address from its human-readable textual representation used by Tezos (e. g. "tz1faswCTDciRzE4oJ9jn2Vm2dvjeyA9fUzU"). Or fail if it's invalid.

ta :: QuasiQuoter Source #

QuasyQuoter for constructing Tezos addresses.

Validity of result will be checked at compile time.