@sonarwatch/portfolio-plugins 0.14.62 → 0.14.63

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [0.14.63](https://github.com/sonarwatch/portfolio/compare/plugins-0.14.62...plugins-0.14.63) (2024-12-11)
6
+
7
+
8
+
5
9
  ## [0.14.62](https://github.com/sonarwatch/portfolio/compare/plugins-0.14.61...plugins-0.14.62) (2024-12-10)
6
10
 
7
11
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-plugins",
3
- "version": "0.14.62",
3
+ "version": "0.14.63",
4
4
  "type": "commonjs",
5
5
  "types": "./src/index.d.ts",
6
6
  "peerDependencies": {
@@ -5,3 +5,5 @@ export declare const platform: Platform;
5
5
  export declare const m2Prefix = "m2";
6
6
  export declare const m2Program: PublicKey;
7
7
  export declare const m2AuctionHouse: PublicKey;
8
+ export declare const stakingPid: PublicKey;
9
+ export declare const meMint = "MEFNBXixkEbait3xn9bkm8WsJzXtVsaJEn4c8Sam21u";
@@ -1,17 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.m2AuctionHouse = exports.m2Program = exports.m2Prefix = exports.platform = exports.platformId = void 0;
3
+ exports.meMint = exports.stakingPid = exports.m2AuctionHouse = exports.m2Program = exports.m2Prefix = exports.platform = exports.platformId = void 0;
4
4
  const web3_js_1 = require("@solana/web3.js");
5
5
  exports.platformId = 'magiceden';
6
6
  exports.platform = {
7
7
  id: exports.platformId,
8
8
  name: 'MagicEden',
9
9
  image: 'https://sonar.watch/img/platforms/magiceden.webp',
10
- // defiLlamaId: 'foo-finance', // from https://defillama.com/docs/api
11
10
  website: 'https://magiceden.io/',
12
11
  twitter: 'https://twitter.com/MagicEden',
13
12
  };
14
13
  exports.m2Prefix = 'm2';
15
14
  exports.m2Program = new web3_js_1.PublicKey('M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K');
16
15
  exports.m2AuctionHouse = new web3_js_1.PublicKey('E8cU1WiRWjanGxmn96ewBgk9vPTcL6AEZ1t6F6fkgUWe');
16
+ exports.stakingPid = new web3_js_1.PublicKey('veTbq5fF2HWYpgmkwjGKTYLVpY6miWYYmakML7R7LRf');
17
+ exports.meMint = 'MEFNBXixkEbait3xn9bkm8WsJzXtVsaJEn4c8Sam21u';
17
18
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/magiceden/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAG/B,QAAA,UAAU,GAAG,WAAW,CAAC;AACzB,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,kDAAkD;IACzD,qEAAqE;IACrE,OAAO,EAAE,uBAAuB;IAChC,OAAO,EAAE,+BAA+B;CACzC,CAAC;AAEW,QAAA,QAAQ,GAAG,IAAI,CAAC;AAChB,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,6CAA6C,CAC9C,CAAC;AACW,QAAA,cAAc,GAAG,IAAI,mBAAS,CACzC,8CAA8C,CAC/C,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/magiceden/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAG/B,QAAA,UAAU,GAAG,WAAW,CAAC;AACzB,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,kDAAkD;IACzD,OAAO,EAAE,uBAAuB;IAChC,OAAO,EAAE,+BAA+B;CACzC,CAAC;AAEW,QAAA,QAAQ,GAAG,IAAI,CAAC;AAChB,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,6CAA6C,CAC9C,CAAC;AACW,QAAA,cAAc,GAAG,IAAI,mBAAS,CACzC,8CAA8C,CAC/C,CAAC;AACW,QAAA,UAAU,GAAG,IAAI,mBAAS,CACrC,6CAA6C,CAC9C,CAAC;AACW,QAAA,MAAM,GAAG,6CAA6C,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import { PublicKey } from '@solana/web3.js';
2
2
  export declare function getEscrowAccount(owner: string): PublicKey;
3
+ export declare function getStakingAccount(owner: string): PublicKey;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getEscrowAccount = void 0;
3
+ exports.getStakingAccount = exports.getEscrowAccount = void 0;
4
4
  const web3_js_1 = require("@solana/web3.js");
5
5
  const constants_1 = require("./constants");
6
6
  function getEscrowAccount(owner) {
@@ -11,4 +11,12 @@ function getEscrowAccount(owner) {
11
11
  ], constants_1.m2Program)[0];
12
12
  }
13
13
  exports.getEscrowAccount = getEscrowAccount;
14
+ function getStakingAccount(owner) {
15
+ return web3_js_1.PublicKey.findProgramAddressSync([
16
+ Buffer.from('lockup'),
17
+ new web3_js_1.PublicKey('acAvyneD7adS3yrXUp41c1AuoYoYRhnjeAWH9stbdTf').toBuffer(),
18
+ new web3_js_1.PublicKey(owner).toBuffer(),
19
+ ], constants_1.stakingPid)[0];
20
+ }
21
+ exports.getStakingAccount = getStakingAccount;
14
22
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/magiceden/helpers.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAC5C,2CAAkE;AAElE,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,OAAO,mBAAS,CAAC,sBAAsB,CACrC;QACE,MAAM,CAAC,IAAI,CAAC,oBAAQ,CAAC;QACrB,0BAAc,CAAC,QAAQ,EAAE;QACzB,IAAI,mBAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;KAChC,EACD,qBAAS,CACV,CAAC,CAAC,CAAC,CAAC;AACP,CAAC;AATD,4CASC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/magiceden/helpers.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAC5C,2CAA8E;AAE9E,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,OAAO,mBAAS,CAAC,sBAAsB,CACrC;QACE,MAAM,CAAC,IAAI,CAAC,oBAAQ,CAAC;QACrB,0BAAc,CAAC,QAAQ,EAAE;QACzB,IAAI,mBAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;KAChC,EACD,qBAAS,CACV,CAAC,CAAC,CAAC,CAAC;AACP,CAAC;AATD,4CASC;AAED,SAAgB,iBAAiB,CAAC,KAAa;IAC7C,OAAO,mBAAS,CAAC,sBAAsB,CACrC;QACE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QACrB,IAAI,mBAAS,CAAC,6CAA6C,CAAC,CAAC,QAAQ,EAAE;QACvE,IAAI,mBAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;KAChC,EACD,sBAAU,CACX,CAAC,CAAC,CAAC,CAAC;AACP,CAAC;AATD,8CASC"}
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.fetchers = exports.jobs = exports.platforms = void 0;
7
7
  const constants_1 = require("./constants");
8
8
  const escrowFetcher_1 = __importDefault(require("./escrowFetcher"));
9
+ const stakingFetcher_1 = __importDefault(require("./stakingFetcher"));
9
10
  exports.platforms = [constants_1.platform];
10
11
  exports.jobs = [];
11
- exports.fetchers = [escrowFetcher_1.default];
12
+ exports.fetchers = [escrowFetcher_1.default, stakingFetcher_1.default];
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/magiceden/index.ts"],"names":[],"mappings":";;;;;;AAGA,2CAAuC;AACvC,oEAA4C;AAE/B,QAAA,SAAS,GAAe,CAAC,oBAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,GAAU,EAAE,CAAC;AACjB,QAAA,QAAQ,GAAc,CAAC,uBAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/magiceden/index.ts"],"names":[],"mappings":";;;;;;AAGA,2CAAuC;AACvC,oEAA4C;AAC5C,sEAA8C;AAEjC,QAAA,SAAS,GAAe,CAAC,oBAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,GAAU,EAAE,CAAC;AACjB,QAAA,QAAQ,GAAc,CAAC,uBAAa,EAAE,wBAAc,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Fetcher } from '../../Fetcher';
2
+ declare const fetcher: Fetcher;
3
+ export default fetcher;
@@ -0,0 +1,41 @@
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 clients_1 = require("../../utils/clients");
15
+ const structs_1 = require("./structs");
16
+ const ElementRegistry_1 = require("../../utils/elementbuilder/ElementRegistry");
17
+ const helpers_1 = require("./helpers");
18
+ const getParsedAccountInfo_1 = require("../../utils/solana/getParsedAccountInfo");
19
+ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
20
+ const client = (0, clients_1.getClientSolana)();
21
+ const lockupAccount = yield (0, getParsedAccountInfo_1.getParsedAccountInfo)(client, structs_1.lockUpStruct, (0, helpers_1.getStakingAccount)(owner));
22
+ if (!lockupAccount)
23
+ return [];
24
+ const registry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.solana, constants_1.platformId);
25
+ const element = registry.addElementMultiple({ label: 'Staked' });
26
+ element.addAsset({
27
+ address: constants_1.meMint,
28
+ amount: lockupAccount.amount,
29
+ attributes: {
30
+ lockedUntil: lockupAccount.endTs.times(1000).toNumber(),
31
+ },
32
+ });
33
+ return registry.getElements(cache);
34
+ });
35
+ const fetcher = {
36
+ id: `${constants_1.platformId}-staking`,
37
+ networkId: portfolio_core_1.NetworkId.solana,
38
+ executor,
39
+ };
40
+ exports.default = fetcher;
41
+ //# sourceMappingURL=stakingFetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stakingFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/magiceden/stakingFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAuD;AAGvD,2CAAiD;AACjD,iDAAsD;AACtD,uCAAyC;AACzC,gFAA6E;AAC7E,uCAA8C;AAC9C,kFAA+E;AAE/E,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;IAEjC,MAAM,aAAa,GAAG,MAAM,IAAA,2CAAoB,EAC9C,MAAM,EACN,sBAAY,EACZ,IAAA,2BAAiB,EAAC,KAAK,CAAC,CACzB,CAAC;IACF,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,CAAC;IAE9B,MAAM,QAAQ,GAAG,IAAI,iCAAe,CAAC,0BAAS,CAAC,MAAM,EAAE,sBAAU,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,QAAQ,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEjE,OAAO,CAAC,QAAQ,CAAC;QACf,OAAO,EAAE,kBAAM;QACf,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,UAAU,EAAE;YACV,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;SACxD;KACF,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC,CAAA,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,sBAAU,UAAU;IAC3B,SAAS,EAAE,0BAAS,CAAC,MAAM;IAC3B,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}
@@ -0,0 +1,16 @@
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 type LockUp = {
6
+ buffer: Buffer;
7
+ ns: PublicKey;
8
+ owner: PublicKey;
9
+ amount: BigNumber;
10
+ startTs: BigNumber;
11
+ endTs: BigNumber;
12
+ targetRewardsPct: number;
13
+ targetVotingPct: number;
14
+ padding: number[];
15
+ };
16
+ export declare const lockUpStruct: BeetStruct<LockUp, Partial<LockUp>>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.lockUpStruct = 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
+ exports.lockUpStruct = new beet_1.BeetStruct([
8
+ ['buffer', (0, solana_1.blob)(8)],
9
+ ['ns', beet_solana_1.publicKey],
10
+ ['owner', beet_solana_1.publicKey],
11
+ ['amount', solana_1.u64],
12
+ ['startTs', solana_1.i64],
13
+ ['endTs', solana_1.i64],
14
+ ['targetRewardsPct', beet_1.u16],
15
+ ['targetVotingPct', beet_1.u16],
16
+ ['padding', (0, beet_1.uniformFixedSizeArray)(beet_1.u8, 240)],
17
+ ], (args) => args);
18
+ //# sourceMappingURL=structs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structs.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/magiceden/structs.ts"],"names":[],"mappings":";;;AAAA,oDAKmC;AACnC,kEAA6D;AAG7D,+CAAoD;AAcvC,QAAA,YAAY,GAAG,IAAI,iBAAU,CACxC;IACE,CAAC,QAAQ,EAAE,IAAA,aAAI,EAAC,CAAC,CAAC,CAAC;IACnB,CAAC,IAAI,EAAE,uBAAS,CAAC;IACjB,CAAC,OAAO,EAAE,uBAAS,CAAC;IACpB,CAAC,QAAQ,EAAE,YAAG,CAAC;IACf,CAAC,SAAS,EAAE,YAAG,CAAC;IAChB,CAAC,OAAO,EAAE,YAAG,CAAC;IACd,CAAC,kBAAkB,EAAE,UAAG,CAAC;IACzB,CAAC,iBAAiB,EAAE,UAAG,CAAC;IACxB,CAAC,SAAS,EAAE,IAAA,4BAAqB,EAAC,SAAE,EAAE,GAAG,CAAC,CAAC;CAC5C,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAc,CACzB,CAAC"}
@@ -16,12 +16,6 @@ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
16
16
  const axios_1 = __importDefault(require("axios"));
17
17
  const constants_1 = require("./constants");
18
18
  const ElementRegistry_1 = require("../../utils/elementbuilder/ElementRegistry");
19
- const solana_1 = require("../../utils/solana");
20
- const tokenMap = new Map([
21
- ['usdc', solana_1.usdcSolanaMint],
22
- ['sol', portfolio_core_1.solanaNativeWrappedAddress],
23
- ['bonk', 'DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263'],
24
- ]);
25
19
  const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
26
20
  const apiKey = process.env['PORTFOLIO_MOONWALK_API_BEARER'];
27
21
  if (!apiKey)
@@ -40,21 +34,18 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
40
34
  label: 'Deposit',
41
35
  name: game.game,
42
36
  });
43
- const token = tokenMap.get(game.token);
44
- if (token) {
45
- element.addAsset({
46
- address: token,
47
- amount: game.claimable,
48
- alreadyShifted: true,
49
- attributes: { isClaimable: true },
50
- });
51
- element.addAsset({
52
- address: token,
53
- amount: game.locked,
54
- alreadyShifted: true,
55
- attributes: { lockedUntil: game.end * 1000 },
56
- });
57
- }
37
+ element.addAsset({
38
+ address: game.mint,
39
+ amount: game.claimable,
40
+ alreadyShifted: true,
41
+ attributes: { isClaimable: true },
42
+ });
43
+ element.addAsset({
44
+ address: game.mint,
45
+ amount: game.locked,
46
+ alreadyShifted: true,
47
+ attributes: { lockedUntil: game.end * 1000 },
48
+ });
58
49
  for (const sponsor of game.sponsors) {
59
50
  element.addAsset({
60
51
  address: sponsor.token,
@@ -1 +1 @@
1
- {"version":3,"file":"gamesFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/moonwalk/gamesFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAGoC;AACpC,kDAA6C;AAE7C,2CAAiD;AAGjD,gFAA6E;AAC7E,+CAAoD;AAEpD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;IACvB,CAAC,MAAM,EAAE,uBAAc,CAAC;IACxB,CAAC,KAAK,EAAE,2CAA0B,CAAC;IACnC,CAAC,MAAM,EAAE,8CAA8C,CAAC;CACzD,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC5D,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,MAAM,WAAW,GAAyB,MAAM,eAAK,CAAC,GAAG,CAAC,kBAAM,GAAG,KAAK,EAAE;QACxE,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACP,WAAW,EAAE,MAAM;SACpB;KACF,CAAC,CAAC;IACH,IAAI,CAAC,WAAW,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,QAAQ,GAAG,IAAI,iCAAe,CAAC,0BAAS,CAAC,MAAM,EAAE,sBAAU,CAAC,CAAC;IACnE,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,kBAAkB,CAAC;YAC1C,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,QAAQ,CAAC;gBACf,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,IAAI,CAAC,SAAS;gBACtB,cAAc,EAAE,IAAI;gBACpB,UAAU,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;aAClC,CAAC,CAAC;YACH,OAAO,CAAC,QAAQ,CAAC;gBACf,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,cAAc,EAAE,IAAI;gBACpB,UAAU,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,EAAE;aAC7C,CAAC,CAAC;QACL,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,OAAO,CAAC,QAAQ,CAAC;gBACf,OAAO,EAAE,OAAO,CAAC,KAAK;gBACtB,MAAM,EAAE,OAAO,CAAC,SAAS;gBACzB,cAAc,EAAE,IAAI;gBACpB,UAAU,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;aAClC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC,CAAA,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,sBAAU,QAAQ;IACzB,SAAS,EAAE,0BAAS,CAAC,MAAM;IAC3B,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"gamesFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/moonwalk/gamesFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAAuD;AACvD,kDAA6C;AAE7C,2CAAiD;AAGjD,gFAA6E;AAE7E,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC5D,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,MAAM,WAAW,GAAyB,MAAM,eAAK,CAAC,GAAG,CAAC,kBAAM,GAAG,KAAK,EAAE;QACxE,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACP,WAAW,EAAE,MAAM;SACpB;KACF,CAAC,CAAC;IACH,IAAI,CAAC,WAAW,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,QAAQ,GAAG,IAAI,iCAAe,CAAC,0BAAS,CAAC,MAAM,EAAE,sBAAU,CAAC,CAAC;IACnE,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,kBAAkB,CAAC;YAC1C,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,CAAC;YACf,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,MAAM,EAAE,IAAI,CAAC,SAAS;YACtB,cAAc,EAAE,IAAI;YACpB,UAAU,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;SAClC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,CAAC;YACf,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,cAAc,EAAE,IAAI;YACpB,UAAU,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,EAAE;SAC7C,CAAC,CAAC;QACH,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,OAAO,CAAC,QAAQ,CAAC;gBACf,OAAO,EAAE,OAAO,CAAC,KAAK;gBACtB,MAAM,EAAE,OAAO,CAAC,SAAS;gBACzB,cAAc,EAAE,IAAI;gBACpB,UAAU,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;aAClC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC,CAAA,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,sBAAU,QAAQ;IACzB,SAAS,EAAE,0BAAS,CAAC,MAAM;IAC3B,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}
@@ -3,6 +3,7 @@ export type Games = {
3
3
  claimable: number;
4
4
  locked: number;
5
5
  token: string;
6
+ mint: string;
6
7
  end: number;
7
8
  sponsors: {
8
9
  name: string;
@@ -0,0 +1,3 @@
1
+ import { Job } from '../../Job';
2
+ declare const job: Job;
3
+ export default job;
@@ -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 clients_1 = require("../../utils/clients");
14
+ const constants_1 = require("./constants");
15
+ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
16
+ var _a;
17
+ const client = (0, clients_1.getClientSui)();
18
+ const resource = yield client.getLatestSuiSystemState();
19
+ const { activeValidators } = resource;
20
+ const validatorsApys = yield client.getValidatorsApy();
21
+ if (!activeValidators)
22
+ return;
23
+ const validatorsWithStake = [];
24
+ for (let i = 0; i < activeValidators.length; i++) {
25
+ const validator = activeValidators[i];
26
+ const apy = (_a = validatorsApys.apys.find((validatorInfo) => validatorInfo.address === validator.suiAddress)) === null || _a === void 0 ? void 0 : _a.apy;
27
+ validatorsWithStake.push({
28
+ apy: apy ? Number(apy) : undefined,
29
+ logoUrl: validator.imageUrl,
30
+ name: validator.name,
31
+ stakeCommission: Number(validator.commissionRate),
32
+ address: validator.suiAddress,
33
+ });
34
+ }
35
+ yield cache.setItem(constants_1.validatorsKey, validatorsWithStake, {
36
+ prefix: constants_1.validatorsPrefix,
37
+ networkId: portfolio_core_1.NetworkId.sui,
38
+ });
39
+ });
40
+ const job = {
41
+ id: `${constants_1.platformId}-active-validators-sui`,
42
+ executor,
43
+ label: 'normal',
44
+ };
45
+ exports.default = job;
46
+ //# sourceMappingURL=activeValidatorsSuiJob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activeValidatorsSuiJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/native-stake/activeValidatorsSuiJob.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAuD;AAGvD,iDAAmD;AACnD,2CAA0E;AAG1E,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;;IACnD,MAAM,MAAM,GAAG,IAAA,sBAAY,GAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,uBAAuB,EAAE,CAAC;IAExD,MAAM,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC;IACtC,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC;IACvD,IAAI,CAAC,gBAAgB;QAAE,OAAO;IAC9B,MAAM,mBAAmB,GAAuB,EAAE,CAAC;IACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,MAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAClC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,KAAK,SAAS,CAAC,UAAU,CAClE,0CAAE,GAAG,CAAC;QACP,mBAAmB,CAAC,IAAI,CAAC;YACvB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;YAClC,OAAO,EAAE,SAAS,CAAC,QAAQ;YAC3B,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;YACjD,OAAO,EAAE,SAAS,CAAC,UAAU;SAC9B,CAAC,CAAC;IACL,CAAC;IACD,MAAM,KAAK,CAAC,OAAO,CAAC,yBAAa,EAAE,mBAAmB,EAAE;QACtD,MAAM,EAAE,4BAAgB;QACxB,SAAS,EAAE,0BAAS,CAAC,GAAG;KACzB,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,wBAAwB;IACzC,QAAQ;IACR,KAAK,EAAE,QAAQ;CAChB,CAAC;AACF,kBAAe,GAAG,CAAC"}
@@ -12,11 +12,13 @@ const activeValidatorsAptosJob_1 = __importDefault(require("./activeValidatorsAp
12
12
  const constants_1 = require("./constants");
13
13
  const solanaEpochJob_1 = __importDefault(require("./solana/solanaEpochJob"));
14
14
  const solanaValidatorsJob_1 = __importDefault(require("./solana/solanaValidatorsJob"));
15
+ const activeValidatorsSuiJob_1 = __importDefault(require("./activeValidatorsSuiJob"));
15
16
  exports.platforms = [constants_1.nativeStakePlatform];
16
17
  exports.jobs = [
17
18
  activeValidatorsAptosJob_1.default,
18
19
  solanaEpochJob_1.default,
19
20
  solanaValidatorsJob_1.default,
21
+ activeValidatorsSuiJob_1.default,
20
22
  ];
21
23
  exports.fetchers = [
22
24
  suiFetcher_1.default,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/native-stake/index.ts"],"names":[],"mappings":";;;;;;AAGA,8DAAsC;AACtC,kEAA0C;AAC1C,2EAAmD;AACnD,8DAAsC;AACtC,0FAAkE;AAClE,2CAAkD;AAClD,6EAAqD;AACrD,uFAA+D;AAElD,QAAA,SAAS,GAAe,CAAC,+BAAmB,CAAC,CAAC;AAC9C,QAAA,IAAI,GAAU;IACzB,kCAAwB;IACxB,wBAAc;IACd,6BAAmB;CACpB,CAAC;AACW,QAAA,QAAQ,GAAc;IACjC,oBAAU;IACV,sBAAY;IACZ,uBAAa;IACb,oBAAU;CACX,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/native-stake/index.ts"],"names":[],"mappings":";;;;;;AAGA,8DAAsC;AACtC,kEAA0C;AAC1C,2EAAmD;AACnD,8DAAsC;AACtC,0FAAkE;AAClE,2CAAkD;AAClD,6EAAqD;AACrD,uFAA+D;AAC/D,sFAAwD;AAE3C,QAAA,SAAS,GAAe,CAAC,+BAAmB,CAAC,CAAC;AAC9C,QAAA,IAAI,GAAU;IACzB,kCAAwB;IACxB,wBAAc;IACd,6BAAmB;IACnB,gCAAgB;CACjB,CAAC;AACW,QAAA,QAAQ,GAAc;IACjC,oBAAU;IACV,sBAAY;IACZ,uBAAa;IACb,oBAAU;CACX,CAAC"}
@@ -22,36 +22,50 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
22
22
  const stakedValidators = yield client.getStakes({ owner });
23
23
  if (stakedValidators.length === 0)
24
24
  return [];
25
- const suiTokenPrice = yield cache.getTokenPrice(portfolio_core_1.suiNetwork.native.address, portfolio_core_1.NetworkId.sui);
25
+ const [suiTokenPrice, validatorsInfo] = yield Promise.all([
26
+ cache.getTokenPrice(portfolio_core_1.suiNetwork.native.address, portfolio_core_1.NetworkId.sui),
27
+ cache.getItem(constants_1.validatorsKey, {
28
+ prefix: constants_1.validatorsPrefix,
29
+ networkId: portfolio_core_1.NetworkId.sui,
30
+ }),
31
+ ]);
26
32
  if (!suiTokenPrice)
27
33
  return [];
28
34
  const elements = [];
29
35
  for (let i = 0; i < stakedValidators.length; i++) {
30
- const { stakes } = stakedValidators[i];
36
+ const { stakes, validatorAddress } = stakedValidators[i];
31
37
  if (stakes.length === 0)
32
38
  continue;
33
- const assets = [];
34
- let value = 0;
39
+ const validatorInfo = validatorsInfo === null || validatorsInfo === void 0 ? void 0 : validatorsInfo.find((validator) => validator.address === validatorAddress);
35
40
  for (let j = 0; j < stakes.length; j++) {
41
+ let value = 0;
42
+ const assets = [];
36
43
  const stakeInfo = stakes[j];
44
+ if (stakeInfo.status === 'Active' &&
45
+ !(0, bignumber_js_1.default)(stakeInfo.estimatedReward).isZero()) {
46
+ const rewardAsset = (0, tokenPriceToAssetToken_1.default)(portfolio_core_1.suiNetwork.native.address, new bignumber_js_1.default(stakeInfo.estimatedReward)
47
+ .div(Math.pow(10, portfolio_core_1.suiNetwork.native.decimals))
48
+ .toNumber(), portfolio_core_1.NetworkId.sui, suiTokenPrice);
49
+ assets.push(rewardAsset);
50
+ value += rewardAsset.value !== null ? rewardAsset.value : 0;
51
+ }
37
52
  const stakedAmount = new bignumber_js_1.default(stakeInfo.principal)
38
53
  .div(Math.pow(10, portfolio_core_1.suiNetwork.native.decimals))
39
54
  .toNumber();
40
- const stakedAsset = (0, tokenPriceToAssetToken_1.default)(portfolio_core_1.suiNetwork.native.address, stakedAmount, portfolio_core_1.NetworkId.sui, suiTokenPrice);
41
- assets.push(stakedAsset);
55
+ const stakedAsset = (0, tokenPriceToAssetToken_1.default)(portfolio_core_1.suiNetwork.native.address, stakedAmount, portfolio_core_1.NetworkId.sui, suiTokenPrice, undefined, { tags: [stakeInfo.status] });
56
+ assets.push(Object.assign(Object.assign({}, stakedAsset), { imageUri: validatorInfo === null || validatorInfo === void 0 ? void 0 : validatorInfo.logoUrl, name: validatorInfo === null || validatorInfo === void 0 ? void 0 : validatorInfo.name }));
42
57
  value += stakedAsset.value !== null ? stakedAsset.value : 0;
58
+ elements.push({
59
+ networkId: portfolio_core_1.NetworkId.sui,
60
+ platformId: constants_1.nativeStakePlatform.id,
61
+ type: 'multiple',
62
+ label: 'Staked',
63
+ value,
64
+ data: {
65
+ assets,
66
+ },
67
+ });
43
68
  }
44
- elements.push({
45
- networkId: portfolio_core_1.NetworkId.sui,
46
- platformId: constants_1.nativeStakePlatform.id,
47
- type: 'multiple',
48
- label: 'Staked',
49
- tags: ['Native Stake'],
50
- value,
51
- data: {
52
- assets,
53
- },
54
- });
55
69
  }
56
70
  return elements;
57
71
  });
@@ -1 +1 @@
1
- {"version":3,"file":"suiFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/native-stake/suiFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAKoC;AACpC,gEAAqC;AAGrC,2CAA8D;AAC9D,iDAAmD;AACnD,qGAA6E;AAE7E,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,sBAAY,GAAE,CAAC;IAC9B,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE7C,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,aAAa,CAC7C,2BAAU,CAAC,MAAM,CAAC,OAAO,EACzB,0BAAS,CAAC,GAAG,CACd,CAAC;IACF,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,CAAC;IAE9B,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAElC,MAAM,MAAM,GAA0B,EAAE,CAAC;QACzC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,YAAY,GAAG,IAAI,sBAAS,CAAC,SAAS,CAAC,SAAS,CAAC;iBACpD,GAAG,CAAC,SAAA,EAAE,EAAI,2BAAU,CAAC,MAAM,CAAC,QAAQ,CAAA,CAAC;iBACrC,QAAQ,EAAE,CAAC;YACd,MAAM,WAAW,GAAG,IAAA,gCAAsB,EACxC,2BAAU,CAAC,MAAM,CAAC,OAAO,EACzB,YAAY,EACZ,0BAAS,CAAC,GAAG,EACb,aAAa,CACd,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACzB,KAAK,IAAI,WAAW,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC;YACZ,SAAS,EAAE,0BAAS,CAAC,GAAG;YACxB,UAAU,EAAE,+BAAmB,CAAC,EAAE;YAClC,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,CAAC,cAAc,CAAC;YACtB,KAAK;YACL,IAAI,EAAE;gBACJ,MAAM;aACP;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAA,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,sBAAU,MAAM;IACvB,SAAS,EAAE,0BAAS,CAAC,GAAG;IACxB,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"suiFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/native-stake/suiFetcher.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type ValidatorInfo = {
1
+ export type AptosValidatorInfo = {
2
2
  addr: string;
3
3
  config: {
4
4
  consensus_pubkey: string;
@@ -9,7 +9,7 @@ export type ValidatorInfo = {
9
9
  voting_power: string;
10
10
  };
11
11
  export type ValidatorSet = {
12
- active_validators: ValidatorInfo[];
12
+ active_validators: AptosValidatorInfo[];
13
13
  consensus_scheme: string;
14
14
  pending_active: string[];
15
15
  pending_inactive: string[];
@@ -27,3 +27,10 @@ export type DelegationResponse = {
27
27
  amount: string;
28
28
  };
29
29
  };
30
+ export type SuiValidatorInfo = {
31
+ address: string;
32
+ apy?: number;
33
+ logoUrl?: string;
34
+ name?: string;
35
+ stakeCommission?: number;
36
+ };