Skip to content

Commit

Permalink
Encapsulate Discriminator.
Browse files Browse the repository at this point in the history
  • Loading branch information
jpe7s committed Aug 16, 2024
1 parent dec0312 commit 12869b6
Show file tree
Hide file tree
Showing 19 changed files with 294 additions and 291 deletions.
6 changes: 3 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ ext {

jsoniter = '2.11.+'

sava = '1.0.13'
sava_solana_programs = '1.0.9'
sava_anchor_src_gen = '1.0.14'
sava = '1.2.3'
sava_solana_programs = '1.0.10'
sava_anchor_src_gen = '1.1.3'
}

subprojects {
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import software.sava.core.accounts.PublicKey;
import software.sava.core.borsh.Borsh;
import software.sava.core.programs.Discriminator;
import software.sava.core.rpc.Filter;

import static software.sava.anchor.AnchorUtil.parseDiscriminator;
Expand All @@ -18,7 +19,7 @@
import static software.sava.core.encoding.ByteUtil.putInt64LE;

public record InsuranceFundStake(PublicKey _address,
byte[] discriminator,
Discriminator discriminator,
PublicKey authority,
BigInteger ifShares,
BigInteger lastWithdrawRequestShares,
Expand Down Expand Up @@ -107,8 +108,8 @@ public static InsuranceFundStake read(final PublicKey _address, final byte[] _da
public static final BiFunction<PublicKey, byte[], InsuranceFundStake> FACTORY = InsuranceFundStake::read;

public static InsuranceFundStake read(final PublicKey _address, final byte[] _data, final int offset) {
final byte[] discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length;
final var discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length();
final var authority = readPubKey(_data, i);
i += 32;
final var ifShares = getInt128LE(_data, i);
Expand Down Expand Up @@ -144,8 +145,7 @@ public static InsuranceFundStake read(final PublicKey _address, final byte[] _da

@Override
public int write(final byte[] _data, final int offset) {
System.arraycopy(discriminator, 0, _data, offset, discriminator.length);
int i = offset + discriminator.length;
int i = offset + discriminator.write(_data, offset);
authority.write(_data, i);
i += 32;
putInt128LE(_data, i, ifShares);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import software.sava.core.accounts.PublicKey;
import software.sava.core.borsh.Borsh;
import software.sava.core.programs.Discriminator;
import software.sava.core.rpc.Filter;

import static software.sava.anchor.AnchorUtil.parseDiscriminator;
Expand All @@ -16,7 +17,7 @@
import static software.sava.core.encoding.ByteUtil.putInt64LE;

public record PerpMarket(PublicKey _address,
byte[] discriminator,
Discriminator discriminator,
// The perp market's address. It is a pda of the market index
PublicKey pubkey,
// The automated market maker
Expand Down Expand Up @@ -116,8 +117,8 @@ public static PerpMarket read(final PublicKey _address, final byte[] _data) {
public static final BiFunction<PublicKey, byte[], PerpMarket> FACTORY = PerpMarket::read;

public static PerpMarket read(final PublicKey _address, final byte[] _data, final int offset) {
final byte[] discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length;
final var discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length();
final var pubkey = readPubKey(_data, i);
i += 32;
final var amm = AMM.read(_data, i);
Expand Down Expand Up @@ -210,8 +211,7 @@ public static PerpMarket read(final PublicKey _address, final byte[] _data, fina

@Override
public int write(final byte[] _data, final int offset) {
System.arraycopy(discriminator, 0, _data, offset, discriminator.length);
int i = offset + discriminator.length;
int i = offset + discriminator.write(_data, offset);
pubkey.write(_data, i);
i += 32;
i += Borsh.write(amm, _data, i);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import software.sava.core.accounts.PublicKey;
import software.sava.core.borsh.Borsh;
import software.sava.core.programs.Discriminator;
import software.sava.core.rpc.Filter;

import static software.sava.anchor.AnchorUtil.parseDiscriminator;
Expand All @@ -12,7 +13,7 @@
import static software.sava.core.encoding.ByteUtil.putInt16LE;

public record PhoenixV1FulfillmentConfig(PublicKey _address,
byte[] discriminator,
Discriminator discriminator,
PublicKey pubkey,
PublicKey phoenixProgramId,
PublicKey phoenixLogAuthority,
Expand Down Expand Up @@ -87,8 +88,8 @@ public static PhoenixV1FulfillmentConfig read(final PublicKey _address, final by
public static final BiFunction<PublicKey, byte[], PhoenixV1FulfillmentConfig> FACTORY = PhoenixV1FulfillmentConfig::read;

public static PhoenixV1FulfillmentConfig read(final PublicKey _address, final byte[] _data, final int offset) {
final byte[] discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length;
final var discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length();
final var pubkey = readPubKey(_data, i);
i += 32;
final var phoenixProgramId = readPubKey(_data, i);
Expand Down Expand Up @@ -124,8 +125,7 @@ public static PhoenixV1FulfillmentConfig read(final PublicKey _address, final by

@Override
public int write(final byte[] _data, final int offset) {
System.arraycopy(discriminator, 0, _data, offset, discriminator.length);
int i = offset + discriminator.length;
int i = offset + discriminator.write(_data, offset);
pubkey.write(_data, i);
i += 32;
phoenixProgramId.write(_data, i);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import software.sava.core.accounts.PublicKey;
import software.sava.core.borsh.Borsh;
import software.sava.core.programs.Discriminator;
import software.sava.core.rpc.Filter;

import static software.sava.anchor.AnchorUtil.parseDiscriminator;
Expand All @@ -13,7 +14,7 @@
import static software.sava.core.encoding.ByteUtil.putInt64LE;

public record PrelaunchOracle(PublicKey _address,
byte[] discriminator,
Discriminator discriminator,
long price,
long maxPrice,
long confidence,
Expand Down Expand Up @@ -80,8 +81,8 @@ public static PrelaunchOracle read(final PublicKey _address, final byte[] _data)
public static final BiFunction<PublicKey, byte[], PrelaunchOracle> FACTORY = PrelaunchOracle::read;

public static PrelaunchOracle read(final PublicKey _address, final byte[] _data, final int offset) {
final byte[] discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length;
final var discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length();
final var price = getInt64LE(_data, i);
i += 8;
final var maxPrice = getInt64LE(_data, i);
Expand All @@ -108,8 +109,7 @@ public static PrelaunchOracle read(final PublicKey _address, final byte[] _data,

@Override
public int write(final byte[] _data, final int offset) {
System.arraycopy(discriminator, 0, _data, offset, discriminator.length);
int i = offset + discriminator.length;
int i = offset + discriminator.write(_data, offset);
putInt64LE(_data, i, price);
i += 8;
putInt64LE(_data, i, maxPrice);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import software.sava.core.accounts.PublicKey;
import software.sava.core.borsh.Borsh;
import software.sava.core.programs.Discriminator;
import software.sava.core.rpc.Filter;

import static software.sava.anchor.AnchorUtil.parseDiscriminator;
Expand All @@ -15,7 +16,7 @@
import static software.sava.core.encoding.ByteUtil.putInt64LE;

public record ProtocolIfSharesTransferConfig(PublicKey _address,
byte[] discriminator,
Discriminator discriminator,
PublicKey[] whitelistedSigners,
BigInteger maxTransferPerEpoch,
BigInteger currentEpochTransfer,
Expand Down Expand Up @@ -60,8 +61,8 @@ public static ProtocolIfSharesTransferConfig read(final PublicKey _address, fina
public static final BiFunction<PublicKey, byte[], ProtocolIfSharesTransferConfig> FACTORY = ProtocolIfSharesTransferConfig::read;

public static ProtocolIfSharesTransferConfig read(final PublicKey _address, final byte[] _data, final int offset) {
final byte[] discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length;
final var discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length();
final var whitelistedSigners = Borsh.readArray(new PublicKey[4], _data, i);
i += Borsh.fixedLen(whitelistedSigners);
final var maxTransferPerEpoch = getInt128LE(_data, i);
Expand All @@ -82,8 +83,7 @@ public static ProtocolIfSharesTransferConfig read(final PublicKey _address, fina

@Override
public int write(final byte[] _data, final int offset) {
System.arraycopy(discriminator, 0, _data, offset, discriminator.length);
int i = offset + discriminator.length;
int i = offset + discriminator.write(_data, offset);
i += Borsh.fixedWrite(whitelistedSigners, _data, i);
putInt128LE(_data, i, maxTransferPerEpoch);
i += 16;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@

import software.sava.core.accounts.PublicKey;
import software.sava.core.borsh.Borsh;
import software.sava.core.programs.Discriminator;
import software.sava.core.rpc.Filter;

import static software.sava.anchor.AnchorUtil.parseDiscriminator;
import static software.sava.core.accounts.PublicKey.readPubKey;

public record ReferrerName(PublicKey _address,
byte[] discriminator,
Discriminator discriminator,
PublicKey authority,
PublicKey user,
PublicKey userStats,
Expand Down Expand Up @@ -47,8 +48,8 @@ public static ReferrerName read(final PublicKey _address, final byte[] _data) {
public static final BiFunction<PublicKey, byte[], ReferrerName> FACTORY = ReferrerName::read;

public static ReferrerName read(final PublicKey _address, final byte[] _data, final int offset) {
final byte[] discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length;
final var discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length();
final var authority = readPubKey(_data, i);
i += 32;
final var user = readPubKey(_data, i);
Expand All @@ -66,8 +67,7 @@ public static ReferrerName read(final PublicKey _address, final byte[] _data, fi

@Override
public int write(final byte[] _data, final int offset) {
System.arraycopy(discriminator, 0, _data, offset, discriminator.length);
int i = offset + discriminator.length;
int i = offset + discriminator.write(_data, offset);
authority.write(_data, i);
i += 32;
user.write(_data, i);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import software.sava.core.accounts.PublicKey;
import software.sava.core.borsh.Borsh;
import software.sava.core.programs.Discriminator;
import software.sava.core.rpc.Filter;

import static software.sava.anchor.AnchorUtil.parseDiscriminator;
Expand All @@ -14,7 +15,7 @@
import static software.sava.core.encoding.ByteUtil.putInt64LE;

public record SerumV3FulfillmentConfig(PublicKey _address,
byte[] discriminator,
Discriminator discriminator,
PublicKey pubkey,
PublicKey serumProgramId,
PublicKey serumMarket,
Expand Down Expand Up @@ -121,8 +122,8 @@ public static SerumV3FulfillmentConfig read(final PublicKey _address, final byte
public static final BiFunction<PublicKey, byte[], SerumV3FulfillmentConfig> FACTORY = SerumV3FulfillmentConfig::read;

public static SerumV3FulfillmentConfig read(final PublicKey _address, final byte[] _data, final int offset) {
final byte[] discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length;
final var discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length();
final var pubkey = readPubKey(_data, i);
i += 32;
final var serumProgramId = readPubKey(_data, i);
Expand Down Expand Up @@ -173,8 +174,7 @@ public static SerumV3FulfillmentConfig read(final PublicKey _address, final byte

@Override
public int write(final byte[] _data, final int offset) {
System.arraycopy(discriminator, 0, _data, offset, discriminator.length);
int i = offset + discriminator.length;
int i = offset + discriminator.write(_data, offset);
pubkey.write(_data, i);
i += 32;
serumProgramId.write(_data, i);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import software.sava.core.accounts.PublicKey;
import software.sava.core.borsh.Borsh;
import software.sava.core.programs.Discriminator;
import software.sava.core.rpc.Filter;

import static software.sava.anchor.AnchorUtil.parseDiscriminator;
Expand All @@ -20,7 +21,7 @@
import static software.sava.core.encoding.ByteUtil.putInt64LE;

public record SpotMarket(PublicKey _address,
byte[] discriminator,
Discriminator discriminator,
// The address of the spot market. It is a pda of the market index
PublicKey pubkey,
// The oracle used to price the markets deposits/borrows
Expand Down Expand Up @@ -217,8 +218,8 @@ public static SpotMarket read(final PublicKey _address, final byte[] _data) {
public static final BiFunction<PublicKey, byte[], SpotMarket> FACTORY = SpotMarket::read;

public static SpotMarket read(final PublicKey _address, final byte[] _data, final int offset) {
final byte[] discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length;
final var discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length();
final var pubkey = readPubKey(_data, i);
i += 32;
final var oracle = readPubKey(_data, i);
Expand Down Expand Up @@ -395,8 +396,7 @@ public static SpotMarket read(final PublicKey _address, final byte[] _data, fina

@Override
public int write(final byte[] _data, final int offset) {
System.arraycopy(discriminator, 0, _data, offset, discriminator.length);
int i = offset + discriminator.length;
int i = offset + discriminator.write(_data, offset);
pubkey.write(_data, i);
i += 32;
oracle.write(_data, i);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import software.sava.core.accounts.PublicKey;
import software.sava.core.borsh.Borsh;
import software.sava.core.programs.Discriminator;
import software.sava.core.rpc.Filter;

import static software.sava.anchor.AnchorUtil.parseDiscriminator;
Expand All @@ -16,7 +17,7 @@
import static software.sava.core.encoding.ByteUtil.putInt64LE;

public record State(PublicKey _address,
byte[] discriminator,
Discriminator discriminator,
PublicKey admin,
PublicKey whitelistMint,
PublicKey discountMint,
Expand Down Expand Up @@ -199,8 +200,8 @@ public static State read(final PublicKey _address, final byte[] _data) {
public static final BiFunction<PublicKey, byte[], State> FACTORY = State::read;

public static State read(final PublicKey _address, final byte[] _data, final int offset) {
final byte[] discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length;
final var discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length();
final var admin = readPubKey(_data, i);
i += 32;
final var whitelistMint = readPubKey(_data, i);
Expand Down Expand Up @@ -281,8 +282,7 @@ public static State read(final PublicKey _address, final byte[] _data, final int

@Override
public int write(final byte[] _data, final int offset) {
System.arraycopy(discriminator, 0, _data, offset, discriminator.length);
int i = offset + discriminator.length;
int i = offset + discriminator.write(_data, offset);
admin.write(_data, i);
i += 32;
whitelistMint.write(_data, i);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import software.sava.core.accounts.PublicKey;
import software.sava.core.borsh.Borsh;
import software.sava.core.programs.Discriminator;
import software.sava.core.rpc.Filter;

import static software.sava.anchor.AnchorUtil.parseDiscriminator;
Expand All @@ -16,7 +17,7 @@
import static software.sava.core.encoding.ByteUtil.putInt64LE;

public record User(PublicKey _address,
byte[] discriminator,
Discriminator discriminator,
// The owner/authority of the account
PublicKey authority,
// An addresses that can control the account on the authority's behalf. Has limited power, cant withdraw
Expand Down Expand Up @@ -104,8 +105,8 @@ public static User read(final PublicKey _address, final byte[] _data) {
public static final BiFunction<PublicKey, byte[], User> FACTORY = User::read;

public static User read(final PublicKey _address, final byte[] _data, final int offset) {
final byte[] discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length;
final var discriminator = parseDiscriminator(_data, offset);
int i = offset + discriminator.length();
final var authority = readPubKey(_data, i);
i += 32;
final var delegate = readPubKey(_data, i);
Expand Down Expand Up @@ -192,8 +193,7 @@ public static User read(final PublicKey _address, final byte[] _data, final int

@Override
public int write(final byte[] _data, final int offset) {
System.arraycopy(discriminator, 0, _data, offset, discriminator.length);
int i = offset + discriminator.length;
int i = offset + discriminator.write(_data, offset);
authority.write(_data, i);
i += 32;
delegate.write(_data, i);
Expand Down
Loading

0 comments on commit 12869b6

Please sign in to comment.