Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ type NetUserBalance @entity {
balance: BigInt! # balance
}

type TokenIdCondition @entity {
type TokenIdCondition @entity(immutable: true) {
id: String! # tokenId
condition: Condition! # conditionId
complement: String! # complementary tokenId
Expand Down
52 changes: 26 additions & 26 deletions src/ctf.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,6 @@ export function handleConditionPreparation(event: ConditionPreparation): void {

entityOne.save();
entityTwo.save();

// log.info(`registered entities with condition {} and positionIds {} and {}`, [
// conditionId.toHexString(),
// positions[0].toString(),
// positions[1].toString(),
// ]);
}

export function handleConditionResolution(event: ConditionResolution): void {
Expand All @@ -87,33 +81,37 @@ export function handleConditionResolution(event: ConditionResolution): void {
condition.save();
}

// Accepts the already-loaded UserBalance for the current token to avoid
// redundant store.get calls. Only loads the complement balance.
function _setNetPosition(
user: Address,
condition: string,
tokenOne: string,
tokenTwo: string
currentTokenId: string,
complementTokenId: string,
currentTokenBalance: UserBalance | null
): void {
let positiveBalanceAsset: string;
let positiveBalanceAmount: BigInt;
let tokenOneBalance = UserBalance.load(user.toHexString() + "-" + tokenOne);
let tokenTwoBalance = UserBalance.load(user.toHexString() + "-" + tokenTwo);

if (tokenOneBalance == null) {
positiveBalanceAsset = tokenTwo;
positiveBalanceAmount = tokenTwoBalance!.balance;
} else if (tokenTwoBalance == null) {
positiveBalanceAsset = tokenOne;
positiveBalanceAmount = tokenOneBalance!.balance;
let complementBalance = UserBalance.load(
user.toHexString() + "-" + complementTokenId
);

if (currentTokenBalance == null) {
positiveBalanceAsset = complementTokenId;
positiveBalanceAmount = complementBalance!.balance;
} else if (complementBalance == null) {
positiveBalanceAsset = currentTokenId;
positiveBalanceAmount = currentTokenBalance!.balance;
} else {
if (tokenOneBalance!.balance > tokenTwoBalance!.balance) {
positiveBalanceAsset = tokenOne;
positiveBalanceAmount = tokenOneBalance!.balance.minus(
tokenTwoBalance!.balance
if (currentTokenBalance!.balance > complementBalance!.balance) {
positiveBalanceAsset = currentTokenId;
positiveBalanceAmount = currentTokenBalance!.balance.minus(
complementBalance!.balance
);
} else {
positiveBalanceAsset = tokenTwo;
positiveBalanceAmount = tokenTwoBalance!.balance.minus(
tokenOneBalance!.balance
positiveBalanceAsset = complementTokenId;
positiveBalanceAmount = complementBalance!.balance.minus(
currentTokenBalance!.balance
);
}
}
Expand Down Expand Up @@ -154,7 +152,8 @@ function _adjustSenderBalance(
sender,
tokenCondition.condition,
tokenCondition.id,
tokenCondition.complement
tokenCondition.complement,
senderBalance
);
}
}
Expand Down Expand Up @@ -188,7 +187,8 @@ function _adjustReceiverBalance(
receiver,
tokenCondition.condition,
tokenCondition.id,
tokenCondition.complement
tokenCondition.complement,
receiverBalance
);
}
}
Expand Down