@ercworldio/blockchain-shared 1.0.1-dev.16 → 1.0.1-dev.18

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.
@@ -44,7 +44,8 @@
44
44
  "funding_wallet": "TN4tXH5F36BxWEe8UQuUeMr1EuPwJjNUFJ",
45
45
  "treasury_receiver": "TN4tXH5F36BxWEe8UQuUeMr1EuPwJjNUFJ",
46
46
  "overflow_treasury_receiver": "TCdE3ZGvBjUcqVCreT25SWwF36gkiLYTGD",
47
- "overflow_threshold_decimal": 100000
47
+ "overflow_threshold_decimal": 100000,
48
+ "min_funding_wallet_balance_usd": 5
48
49
  },
49
50
  "rpcBaseUrl": "https://api.nileex.io",
50
51
  "rpcBaseUrlWss": "",
@@ -108,7 +109,8 @@
108
109
  "funding_wallet": "GLfRJqsRtTNDVvYVccXrz8RCKNnad2hqQfgFaApAKXCq",
109
110
  "treasury_receiver": "AAuFzrm6H4Vv7UyJi8R5Gsm4ixtR2yVmqzLmuyUTS5cu",
110
111
  "overflow_treasury_receiver": "GLfRJqsRtTNDVvYVccXrz8RCKNnad2hqQfgFaApAKXCq",
111
- "overflow_threshold_decimal": 100000
112
+ "overflow_threshold_decimal": 100000,
113
+ "min_funding_wallet_balance_usd": 5
112
114
  },
113
115
  "custodialAlchemyWebhooks": [
114
116
  {
@@ -121,6 +123,13 @@
121
123
  }
122
124
  ],
123
125
  "quicknodeNotificationConfig": [
126
+ {
127
+ "name": "escrow-sol-dev",
128
+ "network": "solana-devnet",
129
+ "template": "solanaWalletFilter",
130
+ "source": "contract",
131
+ "chain_id": 103
132
+ },
124
133
  {
125
134
  "name": "qn-custodial-webhook-sol-dev",
126
135
  "network": "solana-devnet",
@@ -194,7 +203,8 @@
194
203
  "funding_wallet": "0xF84a78E56fBACAADd73E59eDAe02b3b80e4966C8",
195
204
  "treasury_receiver": "0xaD372aCDd0F14A9430Af29DaEc8229A9F109d7F5",
196
205
  "overflow_treasury_receiver": "0xF84a78E56fBACAADd73E59eDAe02b3b80e4966C8",
197
- "overflow_threshold_decimal": 100000
206
+ "overflow_threshold_decimal": 100000,
207
+ "min_funding_wallet_balance_usd": 5
198
208
  },
199
209
  "custodialAlchemyWebhooks": [
200
210
  {
@@ -207,13 +217,6 @@
207
217
  }
208
218
  ],
209
219
  "quicknodeNotificationConfig": [
210
- {
211
- "name": "escrow-bnb-dev",
212
- "network": "bnbchain-testnet",
213
- "template": "evmWalletFilter",
214
- "source": "contract",
215
- "chain_id": 97
216
- },
217
220
  {
218
221
  "name": "qn-custodial-webhook-bsc-dev",
219
222
  "network": "bnbchain-testnet",
@@ -360,7 +363,8 @@
360
363
  "funding_wallet": "0xF84a78E56fBACAADd73E59eDAe02b3b80e4966C8",
361
364
  "treasury_receiver": "0x89DecB6b265D7714A69EE05E3Bc50Fd829D7Ef90",
362
365
  "overflow_treasury_receiver": "0xF84a78E56fBACAADd73E59eDAe02b3b80e4966C8",
363
- "overflow_threshold_decimal": 100000
366
+ "overflow_threshold_decimal": 100000,
367
+ "min_funding_wallet_balance_usd": 5
364
368
  },
365
369
  "custodialAlchemyWebhooks": [
366
370
  {
@@ -373,13 +377,6 @@
373
377
  }
374
378
  ],
375
379
  "quicknodeNotificationConfig": [
376
- {
377
- "name": "escrow-avax-dev",
378
- "network": "avalanche-fuji",
379
- "template": "evmWalletFilter",
380
- "source": "contract",
381
- "chain_id": 43113
382
- },
383
380
  {
384
381
  "name": "qn-custodial-webhook-avax-dev",
385
382
  "network": "avalanche-fuji",
@@ -468,7 +465,8 @@
468
465
  "funding_wallet": "0xF84a78E56fBACAADd73E59eDAe02b3b80e4966C8",
469
466
  "treasury_receiver": "0xEA8Ad078561B83724EEcDBb5b5A4f03369115Cf8",
470
467
  "overflow_treasury_receiver": "0xF84a78E56fBACAADd73E59eDAe02b3b80e4966C8",
471
- "overflow_threshold_decimal": 100000
468
+ "overflow_threshold_decimal": 100000,
469
+ "min_funding_wallet_balance_usd": 5
472
470
  },
473
471
  "custodialAlchemyWebhooks": [
474
472
  {
@@ -481,13 +479,6 @@
481
479
  }
482
480
  ],
483
481
  "quicknodeNotificationConfig": [
484
- {
485
- "name": "escrow-eth-dev",
486
- "network": "ethereum-sepolia",
487
- "template": "evmWalletFilter",
488
- "source": "contract",
489
- "chain_id": 11155111
490
- },
491
482
  {
492
483
  "name": "qn-custodial-webhook-eth-dev",
493
484
  "network": "ethereum-sepolia",
@@ -562,7 +553,8 @@
562
553
  "funding_wallet": "0xF84a78E56fBACAADd73E59eDAe02b3b80e4966C8",
563
554
  "treasury_receiver": "0x69E1F9316E03Da502B52f4682b0349d36CFBfFfD",
564
555
  "overflow_treasury_receiver": "0xF84a78E56fBACAADd73E59eDAe02b3b80e4966C8",
565
- "overflow_threshold_decimal": 100000
556
+ "overflow_threshold_decimal": 100000,
557
+ "min_funding_wallet_balance_usd": 1
566
558
  },
567
559
  "custodialAlchemyWebhooks": [
568
560
  {
@@ -575,13 +567,6 @@
575
567
  }
576
568
  ],
577
569
  "quicknodeNotificationConfig": [
578
- {
579
- "name": "escrow-pol-dev",
580
- "network": "polygon-amoy",
581
- "template": "evmWalletFilter",
582
- "source": "contract",
583
- "chain_id": 80002
584
- },
585
570
  {
586
571
  "name": "qn-custodial-webhook-pol-dev",
587
572
  "network": "polygon-amoy",
@@ -655,7 +640,8 @@
655
640
  "funding_wallet": "0xF84a78E56fBACAADd73E59eDAe02b3b80e4966C8",
656
641
  "treasury_receiver": "0xf4BE5695F5eCd281171ab625ceb59bEee081e14f",
657
642
  "overflow_treasury_receiver": "0xF84a78E56fBACAADd73E59eDAe02b3b80e4966C8",
658
- "overflow_threshold_decimal": 100000
643
+ "overflow_threshold_decimal": 100000,
644
+ "min_funding_wallet_balance_usd": 0.5
659
645
  },
660
646
  "custodialAlchemyWebhooks": [
661
647
  {
@@ -1 +1 @@
1
- {"version":3,"file":"SetupNotifications.d.ts","sourceRoot":"","sources":["../../../src/services/quicknode-notifications/SetupNotifications.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAiB,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAQlE,MAAM,WAAW,wBAAwB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,cAAc,CAAC;IAC3B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC5B;AAWD,cAAM,kBAAmB,SAAQ,UAAU;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO,CAAC,GAAG,CAAqB;IAEhC,OAAO,CAAC,WAAW,CAAoD;IAEvE,OAAO,CAAC,aAAa,CAA8D;IAEnF,OAAO,CAAC,eAAe,CAAqD;IAC5E,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,EAAE,CAAgB;IAC1B,OAAO;IAOP,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,kBAAkB,GAAG,kBAAkB;IAO5F,mBAAmB,IAAI,MAAM,EAAE;IAI/B,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS;IAOhF;;;;OAIG;YACW,wBAAwB;YAUxB,sBAAsB;IAuBpC;;OAEG;IACH,OAAO,CAAC,cAAc;IAOT,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA0H3B,WAAW,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDvE,cAAc,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAe1F;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"SetupNotifications.d.ts","sourceRoot":"","sources":["../../../src/services/quicknode-notifications/SetupNotifications.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAiB,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAUlE,MAAM,WAAW,wBAAwB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,cAAc,CAAC;IAC3B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC5B;AAWD,cAAM,kBAAmB,SAAQ,UAAU;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO,CAAC,GAAG,CAAqB;IAEhC,OAAO,CAAC,WAAW,CAAoD;IAEvE,OAAO,CAAC,aAAa,CAA8D;IAEnF,OAAO,CAAC,eAAe,CAAqD;IAC5E,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,EAAE,CAAgB;IAC1B,OAAO;IAOP,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,kBAAkB,GAAG,kBAAkB;IAO5F,mBAAmB,IAAI,MAAM,EAAE;IAI/B,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS;IAOhF;;;;OAIG;YACW,wBAAwB;YAoBxB,sBAAsB;IAuBpC;;OAEG;IACH,OAAO,CAAC,cAAc;IAOT,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA0H3B,WAAW,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDvE,cAAc,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAe1F;AAED,eAAe,kBAAkB,CAAC"}
@@ -12,11 +12,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
+ const web3_js_1 = require("@solana/web3.js");
16
+ const constants_1 = require("../../constants");
15
17
  const errors_1 = __importDefault(require("../../errors/errors"));
16
18
  const ChainManager_1 = __importDefault(require("../ChainManager"));
17
19
  const DepositAddressService_1 = __importDefault(require("../DepositAddressService"));
18
20
  const QuicknodeWebhookSignature_1 = __importDefault(require("../QuicknodeWebhookSignature"));
19
21
  const QnNotificationsApi_1 = __importDefault(require("./QnNotificationsApi"));
22
+ const Wallets_1 = require("../../utils/Wallets");
23
+ const __1 = require("../..");
20
24
  const ADDRESS_SYNC_BATCH_SIZE = 500;
21
25
  const ADDRESS_LOG_THRESHOLD = 1000;
22
26
  class SetupNotifications extends errors_1.default {
@@ -62,6 +66,15 @@ class SetupNotifications extends errors_1.default {
62
66
  }
63
67
  const chain_manager = ChainManager_1.default.getInstance(this.config);
64
68
  const escrow_config = chain_manager.getEscrowContractForChain(notif_config.chain_id);
69
+ // Derive vault authority for solana escrow program
70
+ if (notif_config.chain_id !== undefined && notif_config.blockchain === constants_1.BLOCKCHAINS.SOLANA) {
71
+ const chain_manager = ChainManager_1.default.getInstance(this.config);
72
+ const escrow_config = chain_manager.getEscrowContractForChain(parseInt(notif_config.chain_id.toString()));
73
+ // TODO handle multiple escrow contracts on solana
74
+ const escrow_program_pubkey = new web3_js_1.PublicKey((0, Wallets_1.normalizeAddress)(escrow_config.addresses[0], "solana"));
75
+ const vault_authority = __1.EscrowService.findVaultAuthorityPda(escrow_program_pubkey);
76
+ return [vault_authority.toString()];
77
+ }
65
78
  return (_a = escrow_config === null || escrow_config === void 0 ? void 0 : escrow_config.addresses) !== null && _a !== void 0 ? _a : [];
66
79
  });
67
80
  }
@@ -50,6 +50,7 @@ export interface ChainAccountingDetails {
50
50
  treasury_receiver: string;
51
51
  overflow_treasury_receiver: string;
52
52
  overflow_threshold_decimal: number;
53
+ min_funding_wallet_balance_usd: number;
53
54
  }
54
55
  export interface TronConfig {
55
56
  trxTransferCost: number;
@@ -1 +1 @@
1
- {"version":3,"file":"chain_manager.d.ts","sourceRoot":"","sources":["../../../src/services/types/chain_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAElD,MAAM,MAAM,6BAA6B,GAAG;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,qBAAqB,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC;CACjC,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,oBAAoB,GAAG,iBAAiB,CAAC;IACnD,+FAA+F;IAC/F,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC/B,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,GAAG,qBAAqB,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,CAAC;IAC7H,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAC3C,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,0BAA0B,EAAE,CAAC;IACpD,SAAS,EAAE,MAAM,EAAE,CAAC;CACvB,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,qBAAqB,CAAC;IAC/B,IAAI,EAAE,SAAS,GAAG,kBAAkB,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAA;CAChC,CAAA;AAGD,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,MAAM,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,0BAA0B,EAAE,MAAM,CAAC;IACnC,0BAA0B,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,UAAU;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC7B"}
1
+ {"version":3,"file":"chain_manager.d.ts","sourceRoot":"","sources":["../../../src/services/types/chain_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAElD,MAAM,MAAM,6BAA6B,GAAG;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,qBAAqB,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC;CACjC,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,oBAAoB,GAAG,iBAAiB,CAAC;IACnD,+FAA+F;IAC/F,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC/B,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,GAAG,qBAAqB,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,CAAC;IAC7H,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAC3C,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,0BAA0B,EAAE,CAAC;IACpD,SAAS,EAAE,MAAM,EAAE,CAAC;CACvB,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,qBAAqB,CAAC;IAC/B,IAAI,EAAE,SAAS,GAAG,kBAAkB,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAA;CAChC,CAAA;AAGD,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,MAAM,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,0BAA0B,EAAE,MAAM,CAAC;IACnC,0BAA0B,EAAE,MAAM,CAAC;IACnC,8BAA8B,EAAE,MAAM,CAAC;CAC1C;AAED,MAAM,WAAW,UAAU;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC7B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ercworldio/blockchain-shared",
3
- "version": "1.0.1-dev.16",
3
+ "version": "1.0.1-dev.18",
4
4
  "description": "Shared library for blockchain projects",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",