Skip to content

Commit

Permalink
tmp commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Ridel1e committed Feb 1, 2024
1 parent 1c4237d commit a234733
Show file tree
Hide file tree
Showing 16 changed files with 127 additions and 86 deletions.
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
},
"dependencies": {
"@dcspark/adalib": "^1.3.1",
"@emurgo/cardano-serialization-lib-nodejs": "^11.4.0",
"@emurgo/cardano-serialization-lib-nodejs": "11.4.0",
"@ergolabs/ergo-dex-sdk": "^1.9.67",
"@ergolabs/ergo-sdk": "^0.5.7",
"@ergolabs/ui-kit": "^2.5.2",
Expand All @@ -25,7 +25,7 @@
"@sentry/react": "^6.16.1",
"@sentry/tracing": "^6.16.1",
"@spectrumlabs/analytics": "^1.1.9",
"@spectrumlabs/cardano-dex-sdk": "^0.1.262",
"@spectrumlabs/cardano-dex-sdk": "^0.2.10",
"@types/file-saver": "^2.0.5",
"@types/lodash": "^4.14.172",
"@types/numeral": "^2.0.2",
Expand Down
1 change: 1 addition & 0 deletions src/applicationConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,7 @@ export const applicationConfig: ApplicationConfig = {
'c11ea67d1e8ad333c259772bc267e53a62c5ecb1651e59551e744187.42414e4b5f4144415f4e4654',
'0ddcb9600a54086106a9af7b2fc7c20a09ec3552f91ff2596cc6aa8c.4c515f4144415f4e4654',
'c11ea67d1e8ad333c259772bc267e53a62c5ecb1651e59551e744187.42414e4b5f4144415f4e4654',
'6aaa652b39f5723afc85bba38401a4cbfd5b2f7aa3771504257ac8a7.74657374425f4144415f4e4654'
],
farmsWhiteList: [
'1b3d37d78650dd8527fa02f8783d9b98490df3b464dd44af0e0593ceb4717702',
Expand Down
61 changes: 42 additions & 19 deletions src/network/cardano/api/ammPools/analyticPoolNetwork.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
} from '@spectrumlabs/cardano-dex-sdk';
import { Pools } from '@spectrumlabs/cardano-dex-sdk/build/main/amm/services/pools';
import { AssetClass } from '@spectrumlabs/cardano-dex-sdk/build/main/cardano/entities/assetClass';
import { encodeHex } from '@spectrumlabs/cardano-dex-sdk/build/main/utils/hex';
import { decodeHex, encodeHex } from "@spectrumlabs/cardano-dex-sdk/build/main/utils/hex";
import { RustModule } from '@spectrumlabs/cardano-dex-sdk/build/main/utils/rustLoader';
import axios from 'axios';

Expand Down Expand Up @@ -181,7 +181,12 @@ export class AnalyticPoolNetwork implements Pools {
getAll(): Promise<[AmmPool[], number]> {
return this.request()
.then((rawAmmPools) => Object.values(rawAmmPools).map(this.createAmmPool))
.then((ammPools) => [ammPools, ammPools.length]);
.then((ammPools) => [ammPools, ammPools.length])
.then(res => {
console.log(res)
return res;
})
.catch(console.log)
}

getByTokens(): Promise<[AmmPool[], number]> {
Expand All @@ -195,7 +200,7 @@ export class AnalyticPoolNetwork implements Pools {
private request() {
return axios
.get<Dictionary<AmmPoolAnalytics>>(
`${cardanoNetworkData.analyticUrl}front/pools`,
`http://195.201.9.29:8080/v1/live/pools?verified=true`,
{ params: { after: 0 } },
)
.then((res) => res.data as Dictionary<AmmPoolAnalytics>);
Expand All @@ -205,34 +210,37 @@ export class AnalyticPoolNetwork implements Pools {
const [nftPolicyId, nftName] = rawAmmPool.id.split('.');
const nftAsset: AssetClass = {
policyId: nftPolicyId,
name: nftName,
nameHex: this.assetNameToHex(nftName),
name: this.base16ToAssetName(nftName),
nameHex: this.base16ToAssetNameHex(nftName),
};
const [lqPolicyId, lqBase16] = rawAmmPool.lq.split('.')
const lqAsset: AssetClass = {
policyId: rawAmmPool.lockedLQ.asset.currencySymbol,
name: rawAmmPool.lockedLQ.asset.tokenName,
nameHex: this.assetNameToHex(rawAmmPool.lockedLQ.asset.tokenName),
policyId: lqPolicyId,
name: this.base16ToAssetName(lqBase16),
nameHex: this.base16ToAssetNameHex(lqBase16),
};
const [xPolicyId, xBase16] = rawAmmPool.x.split('.')
const xAsset: AssetClass = {
policyId: rawAmmPool.lockedX.asset.currencySymbol,
name: rawAmmPool.lockedX.asset.tokenName,
nameHex: this.assetNameToHex(rawAmmPool.lockedX.asset.tokenName),
policyId: xPolicyId,
name: this.base16ToAssetName(xBase16),
nameHex: this.base16ToAssetNameHex(xBase16),
};
const [yPolicyId, yBase16] = rawAmmPool.y.split('.')
const yAsset: AssetClass = {
policyId: rawAmmPool.lockedY.asset.currencySymbol,
name: rawAmmPool.lockedY.asset.tokenName,
nameHex: this.assetNameToHex(rawAmmPool.lockedY.asset.tokenName),
policyId: yPolicyId,
name: this.base16ToAssetName(yBase16),
nameHex: this.base16ToAssetNameHex(yBase16),
};

return new AmmPool(
nftAsset,
new AssetAmount(lqAsset, EmissionLP - BigInt(rawAmmPool.lockedLQ.amount)),
new AssetAmount(xAsset, BigInt(rawAmmPool.lockedX.amount)),
new AssetAmount(yAsset, BigInt(rawAmmPool.lockedY.amount)),
rawAmmPool.poolFeeNum,
new AssetAmount(lqAsset, EmissionLP - BigInt(rawAmmPool.lqAmount)),
new AssetAmount(xAsset, BigInt(rawAmmPool.xAmount)),
new AssetAmount(yAsset, BigInt(rawAmmPool.yAmount)),
Number(rawAmmPool.poolFeeNumX.toString().slice(1)),
BigInt(
mapPoolIdToLqBound.get(
`${nftPolicyId}.${encodeHex(new TextEncoder().encode(nftName))}`,
`${nftPolicyId}.${nftName}`,
) || '0',
),
);
Expand All @@ -243,4 +251,19 @@ export class AnalyticPoolNetwork implements Pools {
`"${encodeHex(new TextEncoder().encode(name))}"`,
).to_hex();
}

private hexToAssetName(name: string): HexString {
return new TextDecoder().decode(RustModule.CardanoWasm.AssetName.from_hex(
name
).name());
}

private base16ToAssetNameHex (base16: string): HexString {
return RustModule.CardanoWasm.AssetName.from_json(`"${base16}"`).to_hex();
}

private base16ToAssetName (base16: string): HexString {
return new TextDecoder().decode(decodeHex(base16));
}

}
13 changes: 7 additions & 6 deletions src/network/cardano/api/ammPoolsStats/ammPoolsStats.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,14 @@ export interface AmmPoolAnalyticsAssetInfo {

export interface AmmPoolAnalytics {
readonly id: PoolId;
readonly tvl: number | null;
readonly volume: number | null;
readonly yearlyFeesPercent: number | undefined;
readonly lockedX: AmmPoolAnalyticsAssetInfo;
readonly lockedY: AmmPoolAnalyticsAssetInfo;
readonly lockedLQ: AmmPoolAnalyticsAssetInfo;
readonly x: string;
readonly xAmount: string;
readonly y: string;
readonly yAmount: string;
readonly lq: string;
readonly lqAmount: string;
readonly poolFeeNum: number;
readonly poolFeeNumX: number;
}

export const ammPoolsStats$: Observable<Dictionary<AmmPoolAnalytics>> =
Expand Down
2 changes: 1 addition & 1 deletion src/network/cardano/api/common/cardanoNetwork.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ const normalizeNetworkParams = (np: NetworkParams): NetworkParams => ({
},
});

export const cardanoNetwork = new Quickblue(cardanoNetworkData.networkUrl);
export const cardanoNetwork = new Quickblue('http://88.99.59.114:8099/v1/');

export const cardanoNetworkParams$: Observable<NetworkParams> = from(
cardanoNetwork.getNetworkParams(),
Expand Down
8 changes: 5 additions & 3 deletions src/network/cardano/api/operations/createPool.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,9 @@ export const toCreatePoolTxCandidate = ({
y: new AssetAmount(y.asset.data, y.amount),
nft: nftData[0],
lq: lqData[0],
feeNum: BigInt((1 - Number((feePct / 100).toFixed(3))) * 1000),
feeNumX: 9995n,
feeNumY: 9993n,
// feeNum: BigInt((1 - Number((feePct / 100).toFixed(3))) * 1000),
mintingCreationTxHash: utxo.txOut.txHash,
mintingCreationTxOutIdx: utxo.txOut.index,
lqMintingScript: lqData[1].script,
Expand Down Expand Up @@ -214,7 +216,7 @@ export const walletCreatePool = (
settings,
}),
),
switchMap((data) => submitTx(data[0]!)),
switchMap((data) => submitTx(data[0]!, false)),
tap({
error: (error) => captureOperationError(error, 'cardano', 'createPool'),
}),
Expand Down Expand Up @@ -256,7 +258,7 @@ export const createPool = (
};

export const MIN_CREATE_POOL_LIQUIDITY = new Currency(
10000000000n,
1n,
networkAsset,
);

Expand Down
3 changes: 2 additions & 1 deletion src/network/cardano/api/operations/swap.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ const toSwapTxCandidate = ({
? pool.pool.x.withAmount(from.amount)
: pool.pool.y.withAmount(from.amount);
const quoteOutput = pool.pool.outputAmount(baseInput, slippage);
const normalizedOutput = quoteOutput.withAmount(BigInt(Math.floor((Number(quoteOutput.amount) / 100 * 95))))

return transactionBuilder$.pipe(
switchMap((txBuilder) =>
Expand All @@ -58,7 +59,7 @@ const toSwapTxCandidate = ({
nitro,
minExecutorReward: minExecutorReward,
base: baseInput,
quote: quoteOutput,
quote: normalizedOutput,
changeAddress: settings.address!,
pk: settings.ph!,
txFees: ammTxFeeMapping,
Expand Down
13 changes: 12 additions & 1 deletion src/network/cardano/api/wallet/common/Wallet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -119,12 +119,16 @@ export const createWallet = <
const connector = getConnector();

if (!connector) {
console.log('here')
return Promise.reject(
new Error(`connector with id ${params.id} not found`),
);
}
if (!contextPromise) {
contextPromise = connector.enable();
contextPromise = connector.enable().then(ctx => {
console.log(ctx);
return ctx;
});
}
return contextPromise
.catch((error) => error)
Expand Down Expand Up @@ -183,6 +187,13 @@ export const createWallet = <
};

const getBalance = (): Promise<Value> => {
console.log(
RustModule
.CardanoWasm
.ScriptHash
.from_hex('2618e94cdb06792f05ae9b1ec78b0231f4b7f4215b1b4cf52e6342de')
);

return assertContext((context) => {
if (params?.getBalance) {
return params.getBalance(context);
Expand Down
4 changes: 4 additions & 0 deletions src/network/cardano/api/wallet/common/WalletManager.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ export const createWalletManager = (
networkId: CardanoNetwork,
wallet: Wallet,
): Promise<void> => {
console.log(networkId, activeNetworkId);
if (networkId === activeNetworkId) {
return Promise.resolve();
}
Expand Down Expand Up @@ -138,6 +139,7 @@ export const createWalletManager = (
return Promise.reject(new Error(`unknown wallet ${walletId}`));
}
if (!walletObject.connector) {
console.log('here');
return Promise.reject(
new Error(`connector for wallet ${walletId} not found`),
);
Expand All @@ -147,11 +149,13 @@ export const createWalletManager = (
: Promise.resolve(true);

return isEnabledPromise.then((isEnabled) => {

return isEnabled
? walletObject
.assertContext((context) => context.getNetworkId())
.then((networkId) => assetNetworkId(networkId, walletObject))
.then(() => {
console.log('here');
cacheStrategy.set(walletObject.id);
activeWallet = walletObject;
if (handleWalletChange) {
Expand Down
5 changes: 1 addition & 4 deletions src/network/cardano/api/wallet/wallet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,7 @@ const walletManager = createWalletManager({
Vespr,
],
cacheStrategy: localStorageCacheStrategy,
network:
currentNetwork === 'cardano_preview'
? CardanoNetwork.TESTNET
: CardanoNetwork.MAINNET,
network: CardanoNetwork.TESTNET,
});

export const availableWallets: Wallet<AdditionalData>[] =
Expand Down
8 changes: 6 additions & 2 deletions src/network/cardano/settings/settings.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { PublicKey } from '@ergolabs/ergo-sdk';
import { user } from '@spectrumlabs/analytics';
import { pubKeyHashFromAddr } from '@spectrumlabs/cardano-dex-sdk';
import { pubKeyHashFromAddr, stakeKeyHashFromAddr } from "@spectrumlabs/cardano-dex-sdk";
import { RustModule } from '@spectrumlabs/cardano-dex-sdk/build/main/utils/rustLoader';
import { filter, map, Observable, startWith, zip } from 'rxjs';

Expand All @@ -22,6 +22,7 @@ import {
} from '../api/addresses/addresses';
import { networkAsset } from '../api/networkAsset/networkAsset';
import { cardanoNetworkData } from '../utils/cardanoNetworkData';
import { OrderAddrsV1Mainnet } from "@spectrumlabs/cardano-dex-sdk/build/main/amm/scripts";

const SETTINGS_KEY = cardanoNetworkData.settingsKey;

Expand Down Expand Up @@ -91,7 +92,10 @@ export const initializeSettings = (): void => {
...usedAddresses,
...unusedAddresses,
]);

console.log(
OrderAddrsV1Mainnet.ammDeposit,
pubKeyHashFromAddr(OrderAddrsV1Mainnet.ammDeposit, RustModule.CardanoWasm)
)
setSettings({
...currentSettings,
address: newSelectedAddress,
Expand Down
2 changes: 1 addition & 1 deletion src/network/cardano/utils/cardanoNetworkData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export const cardanoNetworkData: CardanoNetworkData =
...applicationConfig.networksSettings.cardano,
settingsKey: 'cardano-mainnet-settings',
walletKey: 'cardano-mainnet-selected-wallet',
addrs: OrderAddrsV1Mainnet,
addrs: OrderAddrsV1Testnet,
}
: {
...applicationConfig.networksSettings.cardano_preview,
Expand Down
10 changes: 5 additions & 5 deletions src/pages/CreatePool/CreatePool.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,11 @@ const getYAssets = (xId?: string) => {
balance
.values()
.map((balance) => balance.asset)
.filter(
(a) =>
a.id !== network.networkAsset.id &&
defaultTokenList.tokensMap.has(a.id),
),
// .filter(
// (a) =>
// a.id !== network.networkAsset.id &&
// defaultTokenList.tokensMap.has(a.id),
// ),
),
);
}),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { useObservable } from '../../../../../common/hooks/useObservable';
import { networkContext$ } from '../../../../../network/ergo/api/networkContext/networkContext';
import { formatToInt } from '../../../../../services/number';
import { getLockingPeriodString } from '../../../utils';
import { IsErgo } from "../../../../../components/IsErgo/IsErgo.tsx";

interface LockLiquidityDatePickerProps {
selectedPrefix: string;
Expand Down Expand Up @@ -50,7 +51,7 @@ const LiquidityDatePicker: React.FC<LockLiquidityDatePickerProps> = ({
<Flex.Item marginBottom={1}>
<Typography.Title level={5}>
{value?.toLocaleString(DateTime.DATE_FULL)}{' '}
{block ? t`(Block: ${formatToInt(block)})` : ''}
<IsErgo>{block ? t`(Block: ${formatToInt(block)})` : ''}</IsErgo>
</Typography.Title>
</Flex.Item>
<Flex.Item>
Expand Down
Loading

0 comments on commit a234733

Please sign in to comment.