| 19 | } |
| 20 | |
| 21 | func (p *Pool) ExtractValues(to Asset) (sdk.Uint, sdk.Uint, bool, Asset) { |
| 22 | var X, Y sdk.Uint |
| 23 | var from Asset |
| 24 | var toRowan bool |
| 25 | |
| 26 | if to.IsSettlementAsset() { |
| 27 | Y = p.NativeAssetBalance |
| 28 | X = p.ExternalAssetBalance |
| 29 | toRowan = true |
| 30 | from = *p.ExternalAsset |
| 31 | } else { |
| 32 | X = p.NativeAssetBalance |
| 33 | Y = p.ExternalAssetBalance |
| 34 | toRowan = false |
| 35 | from = GetSettlementAsset() |
| 36 | } |
| 37 | |
| 38 | return X, Y, toRowan, from |
| 39 | } |
| 40 | |
| 41 | func (p *Pool) UpdateBalances(toRowan bool, X, x, Y, swapResult sdk.Uint) { |
| 42 | if toRowan { |