@sonarwatch/portfolio-plugins 0.14.49 → 0.14.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/CHANGELOG.md +1784 -1780
  2. package/README.md +3 -3
  3. package/package.json +1 -1
  4. package/src/index.js +6 -2
  5. package/src/index.js.map +1 -1
  6. package/src/plugins/balancer/helpers/pools.js +21 -21
  7. package/src/plugins/deepbook/constants.d.ts +0 -3
  8. package/src/plugins/deepbook/constants.js +1 -4
  9. package/src/plugins/deepbook/constants.js.map +1 -1
  10. package/src/plugins/deepbook/helpers.d.ts +10 -4
  11. package/src/plugins/deepbook/helpers.js +4 -97
  12. package/src/plugins/deepbook/helpers.js.map +1 -1
  13. package/src/plugins/deepbook/index.js +6 -4
  14. package/src/plugins/deepbook/index.js.map +1 -1
  15. package/src/plugins/deepbook/types.d.ts +0 -7
  16. package/src/plugins/deepbook/v2/constants.d.ts +3 -0
  17. package/src/plugins/deepbook/v2/constants.js +7 -0
  18. package/src/plugins/deepbook/v2/constants.js.map +1 -0
  19. package/src/plugins/deepbook/v2/depositsFetcher.d.ts +3 -0
  20. package/src/plugins/deepbook/{ordersFetcher.js → v2/depositsFetcher.js} +9 -7
  21. package/src/plugins/deepbook/v2/depositsFetcher.js.map +1 -0
  22. package/src/plugins/deepbook/v2/helpers.d.ts +4 -0
  23. package/src/plugins/deepbook/v2/helpers.js +49 -0
  24. package/src/plugins/deepbook/v2/helpers.js.map +1 -0
  25. package/src/plugins/deepbook/v2/poolsJob.d.ts +3 -0
  26. package/src/plugins/deepbook/{poolsJob.js → v2/poolsJob.js} +16 -5
  27. package/src/plugins/deepbook/v2/poolsJob.js.map +1 -0
  28. package/src/plugins/deepbook/v2/types.d.ts +7 -0
  29. package/src/plugins/deepbook/v2/types.js +3 -0
  30. package/src/plugins/deepbook/v2/types.js.map +1 -0
  31. package/src/plugins/deepbook/v3/constants.d.ts +4 -0
  32. package/src/plugins/deepbook/v3/constants.js +8 -0
  33. package/src/plugins/deepbook/v3/constants.js.map +1 -0
  34. package/src/plugins/deepbook/v3/depositsFetcher.d.ts +3 -0
  35. package/src/plugins/deepbook/v3/depositsFetcher.js +83 -0
  36. package/src/plugins/deepbook/v3/depositsFetcher.js.map +1 -0
  37. package/src/plugins/deepbook/v3/helpers.d.ts +12 -0
  38. package/src/plugins/deepbook/v3/helpers.js +69 -0
  39. package/src/plugins/deepbook/v3/helpers.js.map +1 -0
  40. package/src/plugins/deepbook/v3/poolsJob.d.ts +3 -0
  41. package/src/plugins/deepbook/v3/poolsJob.js +48 -0
  42. package/src/plugins/deepbook/v3/poolsJob.js.map +1 -0
  43. package/src/plugins/doubleup/constants.d.ts +7 -0
  44. package/src/plugins/doubleup/constants.js +17 -0
  45. package/src/plugins/doubleup/constants.js.map +1 -0
  46. package/src/plugins/doubleup/housesAndRedeemJob.js +127 -0
  47. package/src/plugins/doubleup/housesAndRedeemJob.js.map +1 -0
  48. package/src/plugins/doubleup/index.d.ts +6 -0
  49. package/src/plugins/doubleup/index.js +13 -0
  50. package/src/plugins/doubleup/index.js.map +1 -0
  51. package/src/plugins/doubleup/redeemTicketsFetcher.js +46 -0
  52. package/src/plugins/doubleup/redeemTicketsFetcher.js.map +1 -0
  53. package/src/plugins/doubleup/structs.d.ts +19 -0
  54. package/src/plugins/doubleup/structs.js +22 -0
  55. package/src/plugins/doubleup/structs.js.map +1 -0
  56. package/src/plugins/doubleup/types.d.ts +42 -0
  57. package/src/plugins/doubleup/types.js +3 -0
  58. package/src/plugins/doubleup/types.js.map +1 -0
  59. package/src/plugins/moonwalk/constants.d.ts +1 -1
  60. package/src/plugins/moonwalk/constants.js +2 -2
  61. package/src/plugins/moonwalk/constants.js.map +1 -1
  62. package/src/plugins/moonwalk/gamesFetcher.js +36 -13
  63. package/src/plugins/moonwalk/gamesFetcher.js.map +1 -1
  64. package/src/plugins/navi/constants.d.ts +0 -9
  65. package/src/plugins/navi/constants.js +1 -49
  66. package/src/plugins/navi/constants.js.map +1 -1
  67. package/src/plugins/suilend/airdropFetcher.js +2 -1
  68. package/src/plugins/suilend/airdropFetcher.js.map +1 -1
  69. package/src/plugins/suilend/earlyUsers.json +3 -2
  70. package/src/plugins/sushiswap/helpers.js +24 -24
  71. package/src/plugins/uniswap-v2/helpers.js +22 -22
  72. package/src/plugins/zeta/airdropFetcher.js +14 -14
  73. package/src/utils/sei/constants.js +8 -8
  74. package/src/utils/sei/getQueryBalanceByOwner.js +4 -4
  75. package/src/plugins/deepbook/ordersFetcher.js.map +0 -1
  76. package/src/plugins/deepbook/poolsJob.js.map +0 -1
  77. /package/src/plugins/{deepbook/poolsJob.d.ts → doubleup/housesAndRedeemJob.d.ts} +0 -0
  78. /package/src/plugins/{deepbook/ordersFetcher.d.ts → doubleup/redeemTicketsFetcher.d.ts} +0 -0
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
13
+ const constants_1 = require("../constants");
14
+ const ElementRegistry_1 = require("../../../utils/elementbuilder/ElementRegistry");
15
+ const helpers_1 = require("./helpers");
16
+ const clients_1 = require("../../../utils/clients");
17
+ const constants_2 = require("./constants");
18
+ const multiGetObjects_1 = require("../../../utils/sui/multiGetObjects");
19
+ const multipleGetDynamicFieldsObjectsSafe_1 = require("../../../utils/sui/multipleGetDynamicFieldsObjectsSafe");
20
+ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
21
+ const client = (0, clients_1.getClientSui)();
22
+ const deepbookBalanceManagerIds = yield (0, helpers_1.getDeepbookBalanceManagerIds)(client, owner);
23
+ if (!deepbookBalanceManagerIds.length)
24
+ return [];
25
+ const pools = yield cache.getItem(constants_2.poolsCacheKey, {
26
+ prefix: constants_1.platformId,
27
+ networkId: portfolio_core_1.NetworkId.sui,
28
+ });
29
+ if (!pools)
30
+ return [];
31
+ const [unflattenedLockedBalances, deepbookBalanceManagers] = yield Promise.all([
32
+ Promise.all(deepbookBalanceManagerIds.map((deepbookBalanceManagerId) => (0, helpers_1.getLockedBalances)(pools, client, owner, deepbookBalanceManagerId))),
33
+ (0, multiGetObjects_1.multiGetObjects)(client, deepbookBalanceManagerIds),
34
+ ]);
35
+ const lockedBalances = unflattenedLockedBalances.flat();
36
+ const elementRegistry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.sui, constants_1.platformId);
37
+ const element = elementRegistry.addElementMultiple({
38
+ label: 'Deposit',
39
+ name: 'V3',
40
+ });
41
+ // Locked
42
+ lockedBalances.forEach((balance) => {
43
+ element.addAsset({
44
+ address: balance.baseAsset,
45
+ amount: balance.base,
46
+ });
47
+ element.addAsset({
48
+ address: balance.quoteAsset,
49
+ amount: balance.quote,
50
+ });
51
+ });
52
+ // Free Balance
53
+ if (deepbookBalanceManagers.length) {
54
+ const balanceIds = deepbookBalanceManagers
55
+ .map((bm) => { var _a, _b; return (_b = (_a = bm.data) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.fields.balances.fields.id.id; })
56
+ .filter((b) => b !== null);
57
+ if (balanceIds.length) {
58
+ const balances = (yield (0, multipleGetDynamicFieldsObjectsSafe_1.multipleGetDynamicFieldsObjectsSafe)(client, balanceIds)).flat();
59
+ if (balances.length) {
60
+ balances.forEach((balance) => {
61
+ var _a;
62
+ if (!((_a = balance.data) === null || _a === void 0 ? void 0 : _a.content))
63
+ return;
64
+ const { keys } = (0, portfolio_core_1.parseTypeString)(balance.data.type);
65
+ if (!keys || !keys[0] || !keys[0].keys || !keys[0].keys[0])
66
+ return;
67
+ element.addAsset({
68
+ address: keys[0].keys[0].type,
69
+ amount: balance.data.content.fields.value,
70
+ });
71
+ });
72
+ }
73
+ }
74
+ }
75
+ return elementRegistry.getElements(cache);
76
+ });
77
+ const fetcher = {
78
+ id: `${constants_1.platformId}-v3-deposits`,
79
+ networkId: portfolio_core_1.NetworkId.sui,
80
+ executor,
81
+ };
82
+ exports.default = fetcher;
83
+ //# sourceMappingURL=depositsFetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"depositsFetcher.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/deepbook/v3/depositsFetcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import BigNumber from 'bignumber.js';
2
+ import { SuiClient } from '../../../utils/clients/types';
3
+ import { PoolSummary } from '../types';
4
+ export declare const getDeepbookBalanceManagerIds: (client: SuiClient, owner: string) => Promise<string[]>;
5
+ export declare const getLockedBalances: (pools: PoolSummary[], client: SuiClient, owner: string, managerKey: string) => Promise<{
6
+ base: BigNumber;
7
+ quote: BigNumber;
8
+ deep: BigNumber;
9
+ poolId: string;
10
+ baseAsset: string;
11
+ quoteAsset: string;
12
+ }[]>;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.getLockedBalances = exports.getDeepbookBalanceManagerIds = void 0;
16
+ const transactions_1 = require("@mysten/sui/transactions");
17
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
18
+ const bcs_1 = require("@mysten/bcs");
19
+ const constants_1 = require("./constants");
20
+ const getDeepbookBalanceManagerIds = (client, owner) => __awaiter(void 0, void 0, void 0, function* () {
21
+ const tx = new transactions_1.Transaction();
22
+ tx.moveCall({
23
+ target: `0x624a80998bfca8118a794c71cccca771c351158eecd425661e07056f4ed94683::cetus_balance_manager::get_balance_managers_by_owner`,
24
+ arguments: [
25
+ tx.object('0x5c1a039f97ed1cbd84d54b5d633bdffd681086acc38961b1d366c4ecf680d150'),
26
+ tx.pure.address(owner),
27
+ ],
28
+ typeArguments: [],
29
+ });
30
+ const simulateRes = yield client.devInspectTransactionBlock({
31
+ transactionBlock: tx,
32
+ sender: owner,
33
+ });
34
+ return simulateRes.events
35
+ .filter((e) => e.type ===
36
+ '0x624a80998bfca8118a794c71cccca771c351158eecd425661e07056f4ed94683::cetus_balance_manager::GetCetusBalanceManagerList')
37
+ .map((e) => e.parsedJson
38
+ .deepbook_balance_managers)
39
+ .flat();
40
+ });
41
+ exports.getDeepbookBalanceManagerIds = getDeepbookBalanceManagerIds;
42
+ const getLockedBalances = (pools, client, owner, managerKey) => __awaiter(void 0, void 0, void 0, function* () {
43
+ const simulateRess = yield Promise.all(pools.map((pool) => __awaiter(void 0, void 0, void 0, function* () {
44
+ // https://github.com/MystenLabs/sui/blob/5bc14df0074eb549ff9e431aee69fc6ffb2052fc/sdk/deepbook-v3/src/transactions/deepbook.ts#L676
45
+ const tx = new transactions_1.Transaction();
46
+ tx.moveCall({
47
+ target: `${constants_1.PACKAGE_ID}::pool::locked_balance`,
48
+ arguments: [tx.object(pool.poolId), tx.object(managerKey)],
49
+ typeArguments: [pool.baseAsset, pool.quoteAsset],
50
+ });
51
+ return client.devInspectTransactionBlock({
52
+ transactionBlock: tx,
53
+ sender: owner,
54
+ });
55
+ })));
56
+ const lockedBalances = [];
57
+ pools.forEach((pool, i) => {
58
+ const simulateRes = simulateRess[i];
59
+ if (!simulateRes || simulateRes.error || !simulateRes.results)
60
+ return;
61
+ const { returnValues } = simulateRes.results[0];
62
+ if (!returnValues)
63
+ return;
64
+ lockedBalances.push(Object.assign(Object.assign({}, pool), { base: new bignumber_js_1.default(new bcs_1.BcsReader(Uint8Array.from(returnValues[0][0])).read64()), quote: new bignumber_js_1.default(new bcs_1.BcsReader(Uint8Array.from(returnValues[1][0])).read64()), deep: new bignumber_js_1.default(new bcs_1.BcsReader(Uint8Array.from(returnValues[2][0])).read64()) }));
65
+ });
66
+ return lockedBalances;
67
+ });
68
+ exports.getLockedBalances = getLockedBalances;
69
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/deepbook/v3/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Job } from '../../../Job';
2
+ declare const job: Job;
3
+ export default job;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
13
+ const clients_1 = require("../../../utils/clients");
14
+ const constants_1 = require("./constants");
15
+ const queryEvents_1 = require("../../../utils/sui/queryEvents");
16
+ const helpers_1 = require("../helpers");
17
+ const constants_2 = require("../constants");
18
+ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
19
+ const client = (0, clients_1.getClientSui)();
20
+ const pools = (yield (0, queryEvents_1.queryEvents)(client, {
21
+ MoveEventModule: {
22
+ module: constants_1.MODULE_CLOB,
23
+ package: constants_1.PACKAGE_ID,
24
+ },
25
+ }))
26
+ .filter((e) => e.type.startsWith(constants_1.PoolCreatedEvent))
27
+ .map((e) => {
28
+ var _a;
29
+ const { keys } = (0, portfolio_core_1.parseTypeString)(e.type);
30
+ return (e.parsedJson &&
31
+ keys && {
32
+ poolId: e.parsedJson.pool_id,
33
+ baseAsset: (0, helpers_1.normalizeStructTag)((_a = keys[0]) === null || _a === void 0 ? void 0 : _a.type),
34
+ quoteAsset: (0, helpers_1.normalizeStructTag)(keys[1].type),
35
+ });
36
+ });
37
+ yield cache.setItem(constants_1.poolsCacheKey, pools, {
38
+ prefix: constants_2.platformId,
39
+ networkId: portfolio_core_1.NetworkId.sui,
40
+ });
41
+ });
42
+ const job = {
43
+ id: `${constants_2.platformId}-v3-pools`,
44
+ executor,
45
+ label: 'normal',
46
+ };
47
+ exports.default = job;
48
+ //# sourceMappingURL=poolsJob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poolsJob.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/deepbook/v3/poolsJob.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAwE;AAGxE,oDAAsD;AACtD,2CAKqB;AACrB,gEAA6D;AAC7D,wCAAgD;AAChD,4CAA0C;AAE1C,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,MAAM,GAAG,IAAA,sBAAY,GAAE,CAAC;IAE9B,MAAM,KAAK,GAAG,CACZ,MAAM,IAAA,yBAAW,EAAsB,MAAM,EAAE;QAC7C,eAAe,EAAE;YACf,MAAM,EAAE,uBAAW;YACnB,OAAO,EAAE,sBAAU;SACpB;KACF,CAAC,CACH;SACE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,4BAAgB,CAAC,CAAC;SAClD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;;QACT,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,gCAAe,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,CACL,CAAC,CAAC,UAAU;YACZ,IAAI,IAAI;YACN,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,OAAiB;YACtC,SAAS,EAAE,IAAA,4BAAkB,EAAC,MAAA,IAAI,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC;YAC5C,UAAU,EAAE,IAAA,4BAAkB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SAC7C,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,MAAM,KAAK,CAAC,OAAO,CAAC,yBAAa,EAAE,KAAK,EAAE;QACxC,MAAM,EAAE,sBAAU;QAClB,SAAS,EAAE,0BAAS,CAAC,GAAG;KACzB,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,WAAW;IAC5B,QAAQ;IACR,KAAK,EAAE,QAAQ;CAChB,CAAC;AACF,kBAAe,GAAG,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Platform } from '@sonarwatch/portfolio-core';
2
+ export declare const platformId = "doubleup";
3
+ export declare const platform: Platform;
4
+ export declare const houseType = "0x2f2226a22ebeb7a0e63ea39551829b238589d981d1c6dd454f01fcc513035593::house::House";
5
+ export declare const unihouse = "0x75c63644536b1a7155d20d62d9f88bf794dc847ea296288ddaf306aa320168ab";
6
+ export declare const redeemType = "0x2f2226a22ebeb7a0e63ea39551829b238589d981d1c6dd454f01fcc513035593::unihouse::RedeemRequest";
7
+ export declare const redeemTicketsKey = "redeemTickets";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.redeemTicketsKey = exports.redeemType = exports.unihouse = exports.houseType = exports.platform = exports.platformId = void 0;
4
+ exports.platformId = 'doubleup';
5
+ exports.platform = {
6
+ id: exports.platformId,
7
+ name: 'DoubleUp',
8
+ image: 'https://sonar.watch/img/platforms/doubleup.webp',
9
+ website: 'https://www.doubleup.fun/',
10
+ twitter: 'https://x.com/doubleup_app',
11
+ defiLlamaId: 'doubleup', // from https://defillama.com/docs/api
12
+ };
13
+ exports.houseType = '0x2f2226a22ebeb7a0e63ea39551829b238589d981d1c6dd454f01fcc513035593::house::House';
14
+ exports.unihouse = '0x75c63644536b1a7155d20d62d9f88bf794dc847ea296288ddaf306aa320168ab';
15
+ exports.redeemType = '0x2f2226a22ebeb7a0e63ea39551829b238589d981d1c6dd454f01fcc513035593::unihouse::RedeemRequest';
16
+ exports.redeemTicketsKey = 'redeemTickets';
17
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/doubleup/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG,UAAU,CAAC;AACxB,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,iDAAiD;IACxD,OAAO,EAAE,2BAA2B;IACpC,OAAO,EAAE,4BAA4B;IACrC,WAAW,EAAE,UAAU,EAAE,sCAAsC;CAChE,CAAC;AAEW,QAAA,SAAS,GACpB,kFAAkF,CAAC;AACxE,QAAA,QAAQ,GACnB,oEAAoE,CAAC;AAC1D,QAAA,UAAU,GACrB,6FAA6F,CAAC;AACnF,QAAA,gBAAgB,GAAG,eAAe,CAAC"}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
16
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
17
+ const constants_1 = require("./constants");
18
+ const clients_1 = require("../../utils/clients");
19
+ const getDecimals_1 = require("../../utils/sui/getDecimals");
20
+ const getDynamicFields_1 = require("../../utils/sui/getDynamicFields");
21
+ const multiGetObjects_1 = require("../../utils/sui/multiGetObjects");
22
+ const depositsFetcher_1 = require("../drift-market-maker-vault/depositsFetcher");
23
+ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
24
+ var _a, _b, _c, _d, _e;
25
+ const client = (0, clients_1.getClientSui)();
26
+ const objects = yield (0, getDynamicFields_1.getDynamicFields)(client, constants_1.unihouse);
27
+ // House to price the LP tokens (gTokens)
28
+ const housesDynFields = objects.filter((obj) => obj.objectType.includes(constants_1.houseType));
29
+ // RedeemRequest to show pending withdraw to users
30
+ const redeemDynFields = objects.filter((obj) => obj.objectType.includes(constants_1.redeemType));
31
+ const [housesObjects, redeemRequestsObjects] = yield Promise.all([
32
+ (0, multiGetObjects_1.multiGetObjects)(client, housesDynFields.map((obj) => obj.objectId)),
33
+ (0, multiGetObjects_1.multiGetObjects)(client, redeemDynFields.map((obj) => obj.objectId)),
34
+ ]);
35
+ const mints = [];
36
+ housesObjects.forEach((house) => {
37
+ var _a;
38
+ if ((_a = house.data) === null || _a === void 0 ? void 0 : _a.type) {
39
+ const { keys } = (0, portfolio_core_1.parseTypeString)(house.data.type);
40
+ if (keys) {
41
+ const { type } = keys[0];
42
+ if (type)
43
+ mints.push(type);
44
+ }
45
+ }
46
+ });
47
+ const tokenPriceById = yield cache.getTokenPricesAsMap(mints, portfolio_core_1.NetworkId.sui);
48
+ const tokenPriceSources = [];
49
+ for (const houseObj of housesObjects) {
50
+ if (!houseObj.data || !((_a = houseObj.data.content) === null || _a === void 0 ? void 0 : _a.fields))
51
+ continue;
52
+ const houseFields = houseObj.data.content.fields;
53
+ let mint;
54
+ let tokenTicker;
55
+ const { keys } = (0, portfolio_core_1.parseTypeString)(houseObj.data.type);
56
+ if (keys) {
57
+ const { type, struct } = keys[0];
58
+ if (type)
59
+ mint = type;
60
+ tokenTicker = struct;
61
+ }
62
+ if (!mint)
63
+ continue;
64
+ const tokenPrice = tokenPriceById.get(mint);
65
+ if (!tokenPrice)
66
+ continue;
67
+ const decimals = yield (0, getDecimals_1.getDecimals)(client, mint);
68
+ if (decimals === null)
69
+ continue;
70
+ const ratio = (0, bignumber_js_1.default)(houseFields.pool)
71
+ .plus(houseFields.pipe_debt.fields.value)
72
+ .dividedBy(houseFields.supply.fields.value);
73
+ const lpMint = (_c = (_b = (0, portfolio_core_1.parseTypeString)(houseFields.supply.type).keys) === null || _b === void 0 ? void 0 : _b.at(0)) === null || _c === void 0 ? void 0 : _c.type;
74
+ if (!lpMint)
75
+ continue;
76
+ tokenPriceSources.push({
77
+ address: lpMint,
78
+ decimals,
79
+ id: houseObj.data.objectId,
80
+ networkId: portfolio_core_1.NetworkId.sui,
81
+ platformId: constants_1.platformId,
82
+ price: ratio.times(tokenPrice.price).toNumber(),
83
+ underlyings: [
84
+ {
85
+ address: tokenPrice.address,
86
+ amountPerLp: ratio.toNumber(),
87
+ decimals: tokenPrice.decimals,
88
+ networkId: tokenPrice.networkId,
89
+ price: tokenPrice.price,
90
+ },
91
+ ],
92
+ timestamp: Date.now(),
93
+ weight: 1,
94
+ liquidityName: tokenTicker ? `g${tokenTicker}` : undefined,
95
+ });
96
+ }
97
+ const redeemTickets = [];
98
+ for (const redeemReq of redeemRequestsObjects) {
99
+ if (!redeemReq.data || !redeemReq.data.content)
100
+ continue;
101
+ const lockUntil = (0, bignumber_js_1.default)(redeemReq.data.content.fields.created_at)
102
+ .plus(depositsFetcher_1.oneDay)
103
+ .toNumber();
104
+ const amount = redeemReq.data.content.fields.s_coin.fields.balance;
105
+ const mint = (_e = (_d = (0, portfolio_core_1.parseTypeString)(redeemReq.data.content.fields.s_coin.type).keys) === null || _d === void 0 ? void 0 : _d.at(0)) === null || _e === void 0 ? void 0 : _e.type;
106
+ if (!mint)
107
+ continue;
108
+ redeemTickets.push({
109
+ owner: redeemReq.data.content.fields.sender,
110
+ amount,
111
+ mint,
112
+ lockUntil,
113
+ });
114
+ }
115
+ yield cache.setItem(constants_1.redeemTicketsKey, redeemTickets, {
116
+ prefix: constants_1.platformId,
117
+ networkId: portfolio_core_1.NetworkId.sui,
118
+ });
119
+ yield cache.setTokenPriceSources(tokenPriceSources);
120
+ });
121
+ const job = {
122
+ id: `${constants_1.platformId}-houses`,
123
+ executor,
124
+ label: 'normal',
125
+ };
126
+ exports.default = job;
127
+ //# sourceMappingURL=housesAndRedeemJob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"housesAndRedeemJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/doubleup/housesAndRedeemJob.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Platform } from '@sonarwatch/portfolio-core';
2
+ import { Fetcher } from '../../Fetcher';
3
+ import { Job } from '../../Job';
4
+ export declare const platforms: Platform[];
5
+ export declare const jobs: Job[];
6
+ export declare const fetchers: Fetcher[];
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.fetchers = exports.jobs = exports.platforms = void 0;
7
+ const constants_1 = require("./constants");
8
+ const housesAndRedeemJob_1 = __importDefault(require("./housesAndRedeemJob"));
9
+ const redeemTicketsFetcher_1 = __importDefault(require("./redeemTicketsFetcher"));
10
+ exports.platforms = [constants_1.platform];
11
+ exports.jobs = [housesAndRedeemJob_1.default];
12
+ exports.fetchers = [redeemTicketsFetcher_1.default];
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/doubleup/index.ts"],"names":[],"mappings":";;;;;;AAGA,2CAAuC;AACvC,8EAA6C;AAC7C,kFAAyD;AAE5C,QAAA,SAAS,GAAe,CAAC,oBAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,GAAU,CAAC,4BAAS,CAAC,CAAC;AAC1B,QAAA,QAAQ,GAAc,CAAC,8BAAmB,CAAC,CAAC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
13
+ const ElementRegistry_1 = require("../../utils/elementbuilder/ElementRegistry");
14
+ const constants_1 = require("./constants");
15
+ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
16
+ const tickets = yield cache.getItem(constants_1.redeemTicketsKey, {
17
+ prefix: constants_1.platformId,
18
+ networkId: portfolio_core_1.NetworkId.sui,
19
+ });
20
+ if (!tickets)
21
+ return [];
22
+ const elementRegistry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.sui, constants_1.platformId);
23
+ const withdrawElement = elementRegistry.addElementMultiple({
24
+ label: 'LiquidityPool',
25
+ });
26
+ for (const ticket of tickets) {
27
+ if (ticket.owner !== owner)
28
+ continue;
29
+ withdrawElement.addAsset({
30
+ address: ticket.mint,
31
+ amount: ticket.amount,
32
+ attributes: {
33
+ lockedUntil: ticket.lockUntil,
34
+ tags: ['Pending Withdraw'],
35
+ },
36
+ });
37
+ }
38
+ return elementRegistry.getElements(cache);
39
+ });
40
+ const fetcher = {
41
+ id: `${constants_1.platformId}-redeem-ticket`,
42
+ networkId: portfolio_core_1.NetworkId.sui,
43
+ executor,
44
+ };
45
+ exports.default = fetcher;
46
+ //# sourceMappingURL=redeemTicketsFetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redeemTicketsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/doubleup/redeemTicketsFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAuD;AAGvD,gFAA6E;AAC7E,2CAA2D;AAG3D,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAiB,4BAAgB,EAAE;QACpE,MAAM,EAAE,sBAAU;QAClB,SAAS,EAAE,0BAAS,CAAC,GAAG;KACzB,CAAC,CAAC;IACH,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,0BAAS,CAAC,GAAG,EAAE,sBAAU,CAAC,CAAC;IACvE,MAAM,eAAe,GAAG,eAAe,CAAC,kBAAkB,CAAC;QACzD,KAAK,EAAE,eAAe;KACvB,CAAC,CAAC;IACH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK;YAAE,SAAS;QACrC,eAAe,CAAC,QAAQ,CAAC;YACvB,OAAO,EAAE,MAAM,CAAC,IAAI;YACpB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE;gBACV,WAAW,EAAE,MAAM,CAAC,SAAS;gBAC7B,IAAI,EAAE,CAAC,kBAAkB,CAAC;aAC3B;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC,CAAA,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,sBAAU,gBAAgB;IACjC,SAAS,EAAE,0BAAS,CAAC,GAAG;IACxB,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}
@@ -0,0 +1,19 @@
1
+ /// <reference types="node" />
2
+ import { BeetStruct } from '@metaplex-foundation/beet';
3
+ import { PublicKey } from '@solana/web3.js';
4
+ import BigNumber from 'bignumber.js';
5
+ export declare enum State {
6
+ Uninitialized = 0,
7
+ StakePool = 1,
8
+ InactiveStakePool = 2,
9
+ StakeAccount = 3
10
+ }
11
+ export type Liquidity = {
12
+ buffer: Buffer;
13
+ state: State;
14
+ mint: PublicKey;
15
+ owner: PublicKey;
16
+ amountDeposited: BigNumber;
17
+ space: number[];
18
+ };
19
+ export declare const liquidityStruct: BeetStruct<Liquidity, Partial<Liquidity>>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.liquidityStruct = exports.State = void 0;
4
+ const beet_1 = require("@metaplex-foundation/beet");
5
+ const beet_solana_1 = require("@metaplex-foundation/beet-solana");
6
+ const solana_1 = require("../../utils/solana");
7
+ var State;
8
+ (function (State) {
9
+ State[State["Uninitialized"] = 0] = "Uninitialized";
10
+ State[State["StakePool"] = 1] = "StakePool";
11
+ State[State["InactiveStakePool"] = 2] = "InactiveStakePool";
12
+ State[State["StakeAccount"] = 3] = "StakeAccount";
13
+ })(State || (exports.State = State = {}));
14
+ exports.liquidityStruct = new beet_1.BeetStruct([
15
+ ['buffer', (0, solana_1.blob)(8)],
16
+ ['state', beet_1.u8],
17
+ ['mint', beet_solana_1.publicKey],
18
+ ['owner', beet_solana_1.publicKey],
19
+ ['amountDeposited', solana_1.u64],
20
+ ['space', (0, beet_1.uniformFixedSizeArray)(beet_1.u8, 128)],
21
+ ], (args) => args);
22
+ //# sourceMappingURL=structs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structs.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/doubleup/structs.ts"],"names":[],"mappings":";;;AAAA,oDAImC;AACnC,kEAA6D;AAG7D,+CAA+C;AAE/C,IAAY,KAKX;AALD,WAAY,KAAK;IACf,mDAAa,CAAA;IACb,2CAAS,CAAA;IACT,2DAAiB,CAAA;IACjB,iDAAY,CAAA;AACd,CAAC,EALW,KAAK,qBAAL,KAAK,QAKhB;AAWY,QAAA,eAAe,GAAG,IAAI,iBAAU,CAC3C;IACE,CAAC,QAAQ,EAAE,IAAA,aAAI,EAAC,CAAC,CAAC,CAAC;IACnB,CAAC,OAAO,EAAE,SAAE,CAAC;IACb,CAAC,MAAM,EAAE,uBAAS,CAAC;IACnB,CAAC,OAAO,EAAE,uBAAS,CAAC;IACpB,CAAC,iBAAiB,EAAE,YAAG,CAAC;IACxB,CAAC,OAAO,EAAE,IAAA,4BAAqB,EAAC,SAAE,EAAE,GAAG,CAAC,CAAC;CAC1C,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAiB,CAC5B,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { ID } from '../../utils/sui/types/id';
2
+ export type Receipt = {
3
+ id: ID;
4
+ amountDeposited: string;
5
+ };
6
+ export type House = {
7
+ house_pipe_debt: ValueFields;
8
+ house_pool: string;
9
+ id: ID;
10
+ max_supply: string;
11
+ pipe_debt: ValueFields;
12
+ pool: string;
13
+ supply: ValueFields;
14
+ voucher_pool: string;
15
+ };
16
+ export type ValueFields = {
17
+ fields: Value;
18
+ type: string;
19
+ };
20
+ export type Value = {
21
+ value: string;
22
+ };
23
+ export type RedeemRequest = {
24
+ created_at: string;
25
+ id: ID;
26
+ s_coin: SCoin;
27
+ sender: string;
28
+ };
29
+ export type SCoin = {
30
+ fields: BalanceFields;
31
+ type: string;
32
+ };
33
+ export type BalanceFields = {
34
+ balance: string;
35
+ id: ID;
36
+ };
37
+ export type RedeemTicket = {
38
+ owner: string;
39
+ amount: string;
40
+ mint: string;
41
+ lockUntil: number;
42
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/doubleup/types.ts"],"names":[],"mappings":""}
@@ -4,4 +4,4 @@ export declare const platformId = "moonwalk";
4
4
  export declare const platform: Platform;
5
5
  export declare const gamesCacheId = "games";
6
6
  export declare const programId: PublicKey;
7
- export declare const api = "https://api.moonwalk.fit/api/users/tokens/";
7
+ export declare const newApi = "https://data.moonwalk.fit/api/v1/users/tokens/";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.api = exports.programId = exports.gamesCacheId = exports.platform = exports.platformId = void 0;
3
+ exports.newApi = exports.programId = exports.gamesCacheId = exports.platform = exports.platformId = void 0;
4
4
  const web3_js_1 = require("@solana/web3.js");
5
5
  exports.platformId = 'moonwalk';
6
6
  exports.platform = {
@@ -13,5 +13,5 @@ exports.platform = {
13
13
  };
14
14
  exports.gamesCacheId = `games`;
15
15
  exports.programId = new web3_js_1.PublicKey('FitAFk15vtx2PBjfr7QTnefaHRx6HwajRiZMt1DdSSKU');
16
- exports.api = 'https://api.moonwalk.fit/api/users/tokens/';
16
+ exports.newApi = 'https://data.moonwalk.fit/api/v1/users/tokens/';
17
17
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/moonwalk/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAG/B,QAAA,UAAU,GAAG,UAAU,CAAC;AACxB,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,iDAAiD;IACxD,OAAO,EAAE,2BAA2B;IACpC,OAAO,EAAE,qCAAqC;IAC9C,qEAAqE;CACtE,CAAC;AACW,QAAA,YAAY,GAAG,OAAO,CAAC;AACvB,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,8CAA8C,CAC/C,CAAC;AAEW,QAAA,GAAG,GAAG,4CAA4C,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/moonwalk/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAG/B,QAAA,UAAU,GAAG,UAAU,CAAC;AACxB,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,iDAAiD;IACxD,OAAO,EAAE,2BAA2B;IACpC,OAAO,EAAE,qCAAqC;IAC9C,qEAAqE;CACtE,CAAC;AACW,QAAA,YAAY,GAAG,OAAO,CAAC;AACvB,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,8CAA8C,CAC/C,CAAC;AAEW,QAAA,MAAM,GAAG,gDAAgD,CAAC"}