|
|
|
@@ -263,10 +263,10 @@ func orcaWhirPoolLiquidityParser(tx *Tx, instruction Instruction, innerInstructi
|
|
|
|
//return nil, increaseOffset(offset), fmt.Errorf("meta Bonding Curve initial parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
//return nil, increaseOffset(offset), fmt.Errorf("meta Bonding Curve initial parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if !baseFound && (from.Equals(tx.rawTx.accountList[vault0]) || to.Equals(tx.rawTx.accountList[vault0])) {
|
|
|
|
if !baseFound && (from.Equals(tx.rawTx.accountList[vault0]) || to.Equals(tx.rawTx.accountList[vault0])) {
|
|
|
|
baseAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
baseAmount = decimal.NewFromUint64(amount)
|
|
|
|
baseFound = true
|
|
|
|
baseFound = true
|
|
|
|
} else if !quoteFound && (from.Equals(tx.rawTx.accountList[vault1]) || to.Equals(tx.rawTx.accountList[vault1])) {
|
|
|
|
} else if !quoteFound && (from.Equals(tx.rawTx.accountList[vault1]) || to.Equals(tx.rawTx.accountList[vault1])) {
|
|
|
|
quoteAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
quoteAmount = decimal.NewFromUint64(amount)
|
|
|
|
quoteFound = true
|
|
|
|
quoteFound = true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if baseFound && quoteFound {
|
|
|
|
if baseFound && quoteFound {
|
|
|
|
@@ -370,10 +370,10 @@ func orcaWhirPoolLiquidityV2Parser(tx *Tx, instruction Instruction, innerInstruc
|
|
|
|
continue
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if !baseFound && (from.Equals(tx.rawTx.accountList[vault0]) || to.Equals(tx.rawTx.accountList[vault0])) {
|
|
|
|
if !baseFound && (from.Equals(tx.rawTx.accountList[vault0]) || to.Equals(tx.rawTx.accountList[vault0])) {
|
|
|
|
baseAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
baseAmount = decimal.NewFromUint64(amount)
|
|
|
|
baseFound = true
|
|
|
|
baseFound = true
|
|
|
|
} else if !quoteFound && (from.Equals(tx.rawTx.accountList[vault1]) || to.Equals(tx.rawTx.accountList[vault1])) {
|
|
|
|
} else if !quoteFound && (from.Equals(tx.rawTx.accountList[vault1]) || to.Equals(tx.rawTx.accountList[vault1])) {
|
|
|
|
quoteAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
quoteAmount = decimal.NewFromUint64(amount)
|
|
|
|
quoteFound = true
|
|
|
|
quoteFound = true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if baseFound && quoteFound {
|
|
|
|
if baseFound && quoteFound {
|
|
|
|
@@ -475,10 +475,10 @@ func orcaWhirPoolCollectFeeParser(tx *Tx, instruction Instruction, innerInstruct
|
|
|
|
//return nil, increaseOffset(offset), fmt.Errorf("orca whirpool parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
//return nil, increaseOffset(offset), fmt.Errorf("orca whirpool parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if !baseFound && (from.Equals(tx.rawTx.accountList[vault0]) || to.Equals(tx.rawTx.accountList[vault0])) {
|
|
|
|
if !baseFound && (from.Equals(tx.rawTx.accountList[vault0]) || to.Equals(tx.rawTx.accountList[vault0])) {
|
|
|
|
baseAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
baseAmount = decimal.NewFromUint64(amount)
|
|
|
|
baseFound = true
|
|
|
|
baseFound = true
|
|
|
|
} else if !quoteFound && (from.Equals(tx.rawTx.accountList[vault1]) || to.Equals(tx.rawTx.accountList[vault1])) {
|
|
|
|
} else if !quoteFound && (from.Equals(tx.rawTx.accountList[vault1]) || to.Equals(tx.rawTx.accountList[vault1])) {
|
|
|
|
quoteAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
quoteAmount = decimal.NewFromUint64(amount)
|
|
|
|
quoteFound = true
|
|
|
|
quoteFound = true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (baseFound && quoteFound) || i >= 6 {
|
|
|
|
if (baseFound && quoteFound) || i >= 6 {
|
|
|
|
@@ -577,10 +577,10 @@ func orcaWhirPoolCollectFeeV2Parser(tx *Tx, instruction Instruction, innerInstru
|
|
|
|
//return nil, increaseOffset(offset), fmt.Errorf("meta Bonding Curve initial parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
//return nil, increaseOffset(offset), fmt.Errorf("meta Bonding Curve initial parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if !baseFound && (from.Equals(tx.rawTx.accountList[vault0]) || to.Equals(tx.rawTx.accountList[vault0])) {
|
|
|
|
if !baseFound && (from.Equals(tx.rawTx.accountList[vault0]) || to.Equals(tx.rawTx.accountList[vault0])) {
|
|
|
|
baseAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
baseAmount = decimal.NewFromUint64(amount)
|
|
|
|
baseFound = true
|
|
|
|
baseFound = true
|
|
|
|
} else if !quoteFound && (from.Equals(tx.rawTx.accountList[vault1]) || to.Equals(tx.rawTx.accountList[vault1])) {
|
|
|
|
} else if !quoteFound && (from.Equals(tx.rawTx.accountList[vault1]) || to.Equals(tx.rawTx.accountList[vault1])) {
|
|
|
|
quoteAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
quoteAmount = decimal.NewFromUint64(amount)
|
|
|
|
quoteFound = true
|
|
|
|
quoteFound = true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (baseFound && quoteFound) || i >= 6 {
|
|
|
|
if (baseFound && quoteFound) || i >= 6 {
|
|
|
|
@@ -679,10 +679,10 @@ func orcaWhirPoolCollectProtocolFeeV2Parser(tx *Tx, instruction Instruction, inn
|
|
|
|
// return nil, increaseOffset(offset), fmt.Errorf("meta Bonding Curve initial parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
// return nil, increaseOffset(offset), fmt.Errorf("meta Bonding Curve initial parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if !baseFound && (from.Equals(tx.rawTx.accountList[vault0]) || to.Equals(tx.rawTx.accountList[vault0])) {
|
|
|
|
if !baseFound && (from.Equals(tx.rawTx.accountList[vault0]) || to.Equals(tx.rawTx.accountList[vault0])) {
|
|
|
|
baseAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
baseAmount = decimal.NewFromUint64(amount)
|
|
|
|
baseFound = true
|
|
|
|
baseFound = true
|
|
|
|
} else if !quoteFound && (from.Equals(tx.rawTx.accountList[vault1]) || to.Equals(tx.rawTx.accountList[vault1])) {
|
|
|
|
} else if !quoteFound && (from.Equals(tx.rawTx.accountList[vault1]) || to.Equals(tx.rawTx.accountList[vault1])) {
|
|
|
|
quoteAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
quoteAmount = decimal.NewFromUint64(amount)
|
|
|
|
quoteFound = true
|
|
|
|
quoteFound = true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (baseFound && quoteFound) || i >= 6 {
|
|
|
|
if (baseFound && quoteFound) || i >= 6 {
|
|
|
|
@@ -784,7 +784,7 @@ func orcaWhirPoolSwapParser(tx *Tx, instruction Instruction, innerInstructions I
|
|
|
|
return nil, increaseOffset(offset), fmt.Errorf("orca whirpool swap parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
return nil, increaseOffset(offset), fmt.Errorf("orca whirpool swap parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if !baseFound && (from.Equals(vault0Account) || to.Equals(vault0Account)) {
|
|
|
|
if !baseFound && (from.Equals(vault0Account) || to.Equals(vault0Account)) {
|
|
|
|
baseAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
baseAmount = decimal.NewFromUint64(amount)
|
|
|
|
if from.Equals(vault0Account) && to.Equals(token0Account) {
|
|
|
|
if from.Equals(vault0Account) && to.Equals(token0Account) {
|
|
|
|
event = "buy"
|
|
|
|
event = "buy"
|
|
|
|
} else if from.Equals(token0Account) && to.Equals(vault0Account) {
|
|
|
|
} else if from.Equals(token0Account) && to.Equals(vault0Account) {
|
|
|
|
@@ -792,7 +792,7 @@ func orcaWhirPoolSwapParser(tx *Tx, instruction Instruction, innerInstructions I
|
|
|
|
}
|
|
|
|
}
|
|
|
|
baseFound = true
|
|
|
|
baseFound = true
|
|
|
|
} else if !quoteFound && (from.Equals(vault1Account) || to.Equals(vault1Account)) {
|
|
|
|
} else if !quoteFound && (from.Equals(vault1Account) || to.Equals(vault1Account)) {
|
|
|
|
quoteAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
quoteAmount = decimal.NewFromUint64(amount)
|
|
|
|
if from.Equals(vault1Account) && to.Equals(token1Account) {
|
|
|
|
if from.Equals(vault1Account) && to.Equals(token1Account) {
|
|
|
|
event = "sell"
|
|
|
|
event = "sell"
|
|
|
|
} else if from.Equals(token1Account) && to.Equals(vault1Account) {
|
|
|
|
} else if from.Equals(token1Account) && to.Equals(vault1Account) {
|
|
|
|
@@ -894,7 +894,7 @@ func orcaWhirPoolSwapV2Parser(tx *Tx, instruction Instruction, innerInstructions
|
|
|
|
return nil, increaseOffset(offset), fmt.Errorf("orca whirpool swapv2 parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
return nil, increaseOffset(offset), fmt.Errorf("orca whirpool swapv2 parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if !baseFound && (from.Equals(vault0Account) || to.Equals(vault0Account)) {
|
|
|
|
if !baseFound && (from.Equals(vault0Account) || to.Equals(vault0Account)) {
|
|
|
|
baseAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
baseAmount = decimal.NewFromUint64(amount)
|
|
|
|
if from.Equals(vault0Account) && to.Equals(token0Account) {
|
|
|
|
if from.Equals(vault0Account) && to.Equals(token0Account) {
|
|
|
|
event = "buy"
|
|
|
|
event = "buy"
|
|
|
|
} else if from.Equals(token0Account) && to.Equals(vault0Account) {
|
|
|
|
} else if from.Equals(token0Account) && to.Equals(vault0Account) {
|
|
|
|
@@ -902,7 +902,7 @@ func orcaWhirPoolSwapV2Parser(tx *Tx, instruction Instruction, innerInstructions
|
|
|
|
}
|
|
|
|
}
|
|
|
|
baseFound = true
|
|
|
|
baseFound = true
|
|
|
|
} else if !quoteFound && (from.Equals(vault1Account) || to.Equals(vault1Account)) {
|
|
|
|
} else if !quoteFound && (from.Equals(vault1Account) || to.Equals(vault1Account)) {
|
|
|
|
quoteAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
quoteAmount = decimal.NewFromUint64(amount)
|
|
|
|
if from.Equals(vault1Account) && to.Equals(token1Account) {
|
|
|
|
if from.Equals(vault1Account) && to.Equals(token1Account) {
|
|
|
|
event = "sell"
|
|
|
|
event = "sell"
|
|
|
|
} else if from.Equals(token1Account) && to.Equals(vault1Account) {
|
|
|
|
} else if from.Equals(token1Account) && to.Equals(vault1Account) {
|
|
|
|
@@ -1011,7 +1011,7 @@ func orcaWhirPoolTwoHopSwapParser(tx *Tx, instruction Instruction, innerInstruct
|
|
|
|
return nil, increaseOffset(offset), fmt.Errorf("orca whirpool two hop swap parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
return nil, increaseOffset(offset), fmt.Errorf("orca whirpool two hop swap parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool1VaultBase]) || to.Equals(tx.rawTx.accountList[pool1VaultBase]) {
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool1VaultBase]) || to.Equals(tx.rawTx.accountList[pool1VaultBase]) {
|
|
|
|
baseAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
baseAmount = decimal.NewFromUint64(amount)
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool1VaultBase]) && to.Equals(tx.rawTx.accountList[pool1UserBase]) {
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool1VaultBase]) && to.Equals(tx.rawTx.accountList[pool1UserBase]) {
|
|
|
|
event = "buy"
|
|
|
|
event = "buy"
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool1UserBase]) && to.Equals(tx.rawTx.accountList[pool1VaultBase]) {
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool1UserBase]) && to.Equals(tx.rawTx.accountList[pool1VaultBase]) {
|
|
|
|
@@ -1019,7 +1019,7 @@ func orcaWhirPoolTwoHopSwapParser(tx *Tx, instruction Instruction, innerInstruct
|
|
|
|
}
|
|
|
|
}
|
|
|
|
baseFound = true
|
|
|
|
baseFound = true
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool1VaultQuote]) || to.Equals(tx.rawTx.accountList[pool1VaultQuote]) {
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool1VaultQuote]) || to.Equals(tx.rawTx.accountList[pool1VaultQuote]) {
|
|
|
|
quoteAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
quoteAmount = decimal.NewFromUint64(amount)
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool1VaultQuote]) && to.Equals(tx.rawTx.accountList[pool1UserQuote]) {
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool1VaultQuote]) && to.Equals(tx.rawTx.accountList[pool1UserQuote]) {
|
|
|
|
event = "sell"
|
|
|
|
event = "sell"
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool1UserQuote]) && to.Equals(tx.rawTx.accountList[pool1VaultQuote]) {
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool1UserQuote]) && to.Equals(tx.rawTx.accountList[pool1VaultQuote]) {
|
|
|
|
@@ -1087,7 +1087,7 @@ func orcaWhirPoolTwoHopSwapParser(tx *Tx, instruction Instruction, innerInstruct
|
|
|
|
return nil, increaseOffset(offset), fmt.Errorf("orca whirpool two hop swap parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
return nil, increaseOffset(offset), fmt.Errorf("orca whirpool two hop swap parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool2VaultBase]) || to.Equals(tx.rawTx.accountList[pool2VaultBase]) {
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool2VaultBase]) || to.Equals(tx.rawTx.accountList[pool2VaultBase]) {
|
|
|
|
baseAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
baseAmount = decimal.NewFromUint64(amount)
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool2VaultBase]) && to.Equals(tx.rawTx.accountList[pool2UserBase]) {
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool2VaultBase]) && to.Equals(tx.rawTx.accountList[pool2UserBase]) {
|
|
|
|
event = "buy"
|
|
|
|
event = "buy"
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool2UserBase]) && to.Equals(tx.rawTx.accountList[pool2VaultBase]) {
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool2UserBase]) && to.Equals(tx.rawTx.accountList[pool2VaultBase]) {
|
|
|
|
@@ -1095,7 +1095,7 @@ func orcaWhirPoolTwoHopSwapParser(tx *Tx, instruction Instruction, innerInstruct
|
|
|
|
}
|
|
|
|
}
|
|
|
|
baseFound = true
|
|
|
|
baseFound = true
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool2VaultQuote]) || to.Equals(tx.rawTx.accountList[pool2VaultQuote]) {
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool2VaultQuote]) || to.Equals(tx.rawTx.accountList[pool2VaultQuote]) {
|
|
|
|
quoteAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
quoteAmount = decimal.NewFromUint64(amount)
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool2VaultQuote]) && to.Equals(tx.rawTx.accountList[pool2UserQuote]) {
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool2VaultQuote]) && to.Equals(tx.rawTx.accountList[pool2UserQuote]) {
|
|
|
|
event = "sell"
|
|
|
|
event = "sell"
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool2UserQuote]) && to.Equals(tx.rawTx.accountList[pool2VaultQuote]) {
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool2UserQuote]) && to.Equals(tx.rawTx.accountList[pool2VaultQuote]) {
|
|
|
|
@@ -1152,6 +1152,7 @@ func orcaWhirPoolTwoHopSwapParser(tx *Tx, instruction Instruction, innerInstruct
|
|
|
|
limitMint,
|
|
|
|
limitMint,
|
|
|
|
actualLimitAmount,
|
|
|
|
actualLimitAmount,
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
swaps[0].SlippageBps = decimal.Zero
|
|
|
|
return swaps, offset, nil
|
|
|
|
return swaps, offset, nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -1220,7 +1221,7 @@ func orcaWhirPoolTwoHopSwapV2Parser(tx *Tx, instruction Instruction, innerInstru
|
|
|
|
return nil, increaseOffset(offset), fmt.Errorf("orca whirpool two hop swap parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
return nil, increaseOffset(offset), fmt.Errorf("orca whirpool two hop swap parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool1VaultBase]) || to.Equals(tx.rawTx.accountList[pool1VaultBase]) {
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool1VaultBase]) || to.Equals(tx.rawTx.accountList[pool1VaultBase]) {
|
|
|
|
baseAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
baseAmount = decimal.NewFromUint64(amount)
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool1VaultBase]) && to.Equals(tx.rawTx.accountList[pool1UserBase]) {
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool1VaultBase]) && to.Equals(tx.rawTx.accountList[pool1UserBase]) {
|
|
|
|
event = "buy"
|
|
|
|
event = "buy"
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool1UserBase]) && to.Equals(tx.rawTx.accountList[pool1VaultBase]) {
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool1UserBase]) && to.Equals(tx.rawTx.accountList[pool1VaultBase]) {
|
|
|
|
@@ -1228,7 +1229,7 @@ func orcaWhirPoolTwoHopSwapV2Parser(tx *Tx, instruction Instruction, innerInstru
|
|
|
|
}
|
|
|
|
}
|
|
|
|
baseFound = true
|
|
|
|
baseFound = true
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool1VaultQuote]) || to.Equals(tx.rawTx.accountList[pool1VaultQuote]) {
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool1VaultQuote]) || to.Equals(tx.rawTx.accountList[pool1VaultQuote]) {
|
|
|
|
quoteAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
quoteAmount = decimal.NewFromUint64(amount)
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool1VaultQuote]) && to.Equals(tx.rawTx.accountList[pool2VaultBase]) {
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool1VaultQuote]) && to.Equals(tx.rawTx.accountList[pool2VaultBase]) {
|
|
|
|
event = "sell"
|
|
|
|
event = "sell"
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool2VaultBase]) && to.Equals(tx.rawTx.accountList[pool1VaultQuote]) {
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool2VaultBase]) && to.Equals(tx.rawTx.accountList[pool1VaultQuote]) {
|
|
|
|
@@ -1294,7 +1295,7 @@ func orcaWhirPoolTwoHopSwapV2Parser(tx *Tx, instruction Instruction, innerInstru
|
|
|
|
return nil, increaseOffset(offset), fmt.Errorf("orca whirpool two hop swap parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
return nil, increaseOffset(offset), fmt.Errorf("orca whirpool two hop swap parse token transfer error: %v, offset, %d, %d", err, offset[0], offset[1])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool2VaultBase]) || to.Equals(tx.rawTx.accountList[pool2VaultBase]) {
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool2VaultBase]) || to.Equals(tx.rawTx.accountList[pool2VaultBase]) {
|
|
|
|
baseAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
baseAmount = decimal.NewFromUint64(amount)
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool2VaultBase]) && to.Equals(tx.rawTx.accountList[pool1VaultBase]) {
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool2VaultBase]) && to.Equals(tx.rawTx.accountList[pool1VaultBase]) {
|
|
|
|
event = "buy"
|
|
|
|
event = "buy"
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool1VaultBase]) && to.Equals(tx.rawTx.accountList[pool2VaultBase]) {
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool1VaultBase]) && to.Equals(tx.rawTx.accountList[pool2VaultBase]) {
|
|
|
|
@@ -1302,7 +1303,7 @@ func orcaWhirPoolTwoHopSwapV2Parser(tx *Tx, instruction Instruction, innerInstru
|
|
|
|
}
|
|
|
|
}
|
|
|
|
baseFound = true
|
|
|
|
baseFound = true
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool2VaultQuote]) || to.Equals(tx.rawTx.accountList[pool2VaultQuote]) {
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool2VaultQuote]) || to.Equals(tx.rawTx.accountList[pool2VaultQuote]) {
|
|
|
|
quoteAmount = decimal.NewFromInt(int64(amount))
|
|
|
|
quoteAmount = decimal.NewFromUint64(amount)
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool2VaultQuote]) && to.Equals(tx.rawTx.accountList[pool2UserQuote]) {
|
|
|
|
if from.Equals(tx.rawTx.accountList[pool2VaultQuote]) && to.Equals(tx.rawTx.accountList[pool2UserQuote]) {
|
|
|
|
event = "sell"
|
|
|
|
event = "sell"
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool2UserQuote]) && to.Equals(tx.rawTx.accountList[pool2VaultQuote]) {
|
|
|
|
} else if from.Equals(tx.rawTx.accountList[pool2UserQuote]) && to.Equals(tx.rawTx.accountList[pool2VaultQuote]) {
|
|
|
|
@@ -1359,5 +1360,6 @@ func orcaWhirPoolTwoHopSwapV2Parser(tx *Tx, instruction Instruction, innerInstru
|
|
|
|
limitMint,
|
|
|
|
limitMint,
|
|
|
|
actualLimitAmount,
|
|
|
|
actualLimitAmount,
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
swaps[0].SlippageBps = decimal.Zero
|
|
|
|
return swaps, offset, nil
|
|
|
|
return swaps, offset, nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|