Class: Solace::ZarTrustlessEscrow::EscrowDeposit

Inherits:
Data
  • Object
show all
Defined in:
lib/solace/zar_trustless_escrow/types/escrow_deposit.rb

Overview

Immutable value object representing the deserialized EscrowDeposit account —the two-party escrow created by the ‘deposit` instruction and consumed by `claim` / `re_claim`. Fetching from the chain is the Program layer’s responsibility — see Solace::Programs::ZarTrustlessEscrow#get_escrow_deposit.

On-chain layout (state/escrow_deposit.rs, matches the IDL):

discriminator(8), version(u8), mint(32), depositor(32), claim_pubkey(32),
amount(u64), sponsor(Option<Pubkey>).

Examples:

deposit = program.get_escrow_deposit(claim_authority: claim_authority)
deposit.amount       # => 1_000_000
deposit.claim_pubkey # => "9xQ..."

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#amountObject (readonly)

Returns the value of attribute amount

Returns:

  • (Object)

    the current value of amount



18
19
20
# File 'lib/solace/zar_trustless_escrow/types/escrow_deposit.rb', line 18

def amount
  @amount
end

#claim_pubkeyObject (readonly)

Returns the value of attribute claim_pubkey

Returns:

  • (Object)

    the current value of claim_pubkey



18
19
20
# File 'lib/solace/zar_trustless_escrow/types/escrow_deposit.rb', line 18

def claim_pubkey
  @claim_pubkey
end

#depositorObject (readonly)

Returns the value of attribute depositor

Returns:

  • (Object)

    the current value of depositor



18
19
20
# File 'lib/solace/zar_trustless_escrow/types/escrow_deposit.rb', line 18

def depositor
  @depositor
end

#mintObject (readonly)

Returns the value of attribute mint

Returns:

  • (Object)

    the current value of mint



18
19
20
# File 'lib/solace/zar_trustless_escrow/types/escrow_deposit.rb', line 18

def mint
  @mint
end

Returns the value of attribute sponsor

Returns:

  • (Object)

    the current value of sponsor



18
19
20
# File 'lib/solace/zar_trustless_escrow/types/escrow_deposit.rb', line 18

def sponsor
  @sponsor
end

#versionObject (readonly)

Returns the value of attribute version

Returns:

  • (Object)

    the current value of version



18
19
20
# File 'lib/solace/zar_trustless_escrow/types/escrow_deposit.rb', line 18

def version
  @version
end

Class Method Details

.deserialize(io) ⇒ EscrowDeposit

Deserializes an EscrowDeposit from a stream of Borsh-encoded account data.

Parameters:

  • io (IO, StringIO)

    Stream positioned at the start of the account data.

Returns:



30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/solace/zar_trustless_escrow/types/escrow_deposit.rb', line 30

def self.deserialize(io)
  io.read(8) # skip the 8-byte Anchor discriminator

  new(
    version:      Solace::Utils::Codecs.decode_u8(io),
    mint:         Solace::Utils::Codecs.decode_pubkey(io),
    depositor:    Solace::Utils::Codecs.decode_pubkey(io),
    claim_pubkey: Solace::Utils::Codecs.decode_pubkey(io),
    amount:       Solace::Utils::Codecs.decode_le_u64(io),
    sponsor:      Solace::Utils::Codecs.decode_option_pubkey(io)
  )
end