@instadapp/interop-x 0.0.0-dev.733ff78 → 0.0.0-dev.76d0265

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. package/dist/package.json +13 -12
  2. package/dist/src/abi/index.js +2 -4
  3. package/dist/src/abi/interopXContract.json +454 -0
  4. package/dist/src/alias.js +10 -0
  5. package/dist/src/constants/addresses.js +7 -7
  6. package/dist/src/constants/index.js +0 -1
  7. package/dist/src/constants/tokens.js +62 -39
  8. package/dist/src/db/models/transaction.js +19 -11
  9. package/dist/src/gnosis/actions/index.js +0 -2
  10. package/dist/src/gnosis/actions/withdraw/index.js +115 -0
  11. package/dist/src/gnosis/index.js +4 -4
  12. package/dist/src/index.js +5 -19
  13. package/dist/src/net/protocol/dial/SignatureDialProtocol.js +6 -2
  14. package/dist/src/tasks/{InteropBridge/ProcessWithdrawEvents.js → InteropXContract/ProcessBridgeRequestEvents.js} +50 -53
  15. package/dist/src/tasks/InteropXContract/SyncBridgeCommittedEvents.js +93 -0
  16. package/dist/src/tasks/InteropXContract/SyncBridgeRequestEvents.js +78 -0
  17. package/dist/src/tasks/InteropXContract/SyncBridgeRequestSentEvents.js +90 -0
  18. package/dist/src/tasks/index.js +16 -30
  19. package/dist/src/typechain/{InteropBridgeToken.js → InteropXContract.js} +0 -0
  20. package/dist/src/typechain/factories/InteropXContract__factory.js +635 -0
  21. package/dist/src/typechain/factories/index.js +3 -5
  22. package/dist/src/typechain/index.js +3 -5
  23. package/dist/src/utils/index.js +44 -8
  24. package/package.json +13 -12
  25. package/src/abi/index.ts +2 -4
  26. package/src/abi/interopXContract.json +454 -0
  27. package/src/alias.ts +6 -0
  28. package/src/constants/addresses.ts +8 -8
  29. package/src/constants/index.ts +0 -1
  30. package/src/constants/tokens.ts +63 -40
  31. package/src/db/models/transaction.ts +66 -27
  32. package/src/gnosis/actions/index.ts +0 -2
  33. package/src/gnosis/actions/withdraw/index.ts +155 -0
  34. package/src/gnosis/index.ts +5 -5
  35. package/src/index.ts +4 -18
  36. package/src/net/protocol/dial/SignatureDialProtocol.ts +6 -2
  37. package/src/tasks/{InteropBridge/ProcessWithdrawEvents.ts → InteropXContract/ProcessBridgeRequestEvents.ts} +78 -100
  38. package/src/tasks/InteropXContract/SyncBridgeCommittedEvents.ts +125 -0
  39. package/src/tasks/InteropXContract/SyncBridgeRequestEvents.ts +115 -0
  40. package/src/tasks/InteropXContract/SyncBridgeRequestSentEvents.ts +121 -0
  41. package/src/tasks/index.ts +18 -36
  42. package/src/typechain/InteropXContract.ts +680 -0
  43. package/src/typechain/factories/InteropXContract__factory.ts +642 -0
  44. package/src/typechain/factories/index.ts +1 -2
  45. package/src/typechain/index.ts +2 -4
  46. package/src/utils/index.ts +85 -8
  47. package/tsconfig.json +7 -2
  48. package/dist/src/abi/interopBridgeToken.json +0 -298
  49. package/dist/src/abi/interopXGateway.json +0 -184
  50. package/dist/src/constants/itokens.js +0 -13
  51. package/dist/src/gnosis/actions/deposit.js +0 -48
  52. package/dist/src/gnosis/actions/withdraw.js +0 -50
  53. package/dist/src/tasks/InteropBridge/SyncBurnEvents.js +0 -71
  54. package/dist/src/tasks/InteropBridge/SyncMintEvents.js +0 -67
  55. package/dist/src/tasks/InteropXGateway/ProcessDepositEvents.js +0 -164
  56. package/dist/src/tasks/InteropXGateway/SyncDepositEvents.js +0 -74
  57. package/dist/src/tasks/InteropXGateway/SyncWithdrawtEvents.js +0 -72
  58. package/dist/src/typechain/InteropXGateway.js +0 -2
  59. package/dist/src/typechain/factories/InteropBridgeToken__factory.js +0 -471
  60. package/dist/src/typechain/factories/InteropXGateway__factory.js +0 -265
  61. package/src/abi/interopBridgeToken.json +0 -298
  62. package/src/abi/interopXGateway.json +0 -184
  63. package/src/constants/itokens.ts +0 -10
  64. package/src/gnosis/actions/deposit.ts +0 -63
  65. package/src/gnosis/actions/withdraw.ts +0 -67
  66. package/src/tasks/InteropBridge/SyncBurnEvents.ts +0 -119
  67. package/src/tasks/InteropBridge/SyncMintEvents.ts +0 -99
  68. package/src/tasks/InteropXGateway/ProcessDepositEvents.ts +0 -260
  69. package/src/tasks/InteropXGateway/SyncDepositEvents.ts +0 -124
  70. package/src/tasks/InteropXGateway/SyncWithdrawtEvents.ts +0 -105
  71. package/src/typechain/InteropBridgeToken.ts +0 -692
  72. package/src/typechain/InteropXGateway.ts +0 -407
  73. package/src/typechain/factories/InteropBridgeToken__factory.ts +0 -478
  74. package/src/typechain/factories/InteropXGateway__factory.ts +0 -272
@@ -0,0 +1,93 @@
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
+ const BaseTask_1 = require("../BaseTask");
7
+ const logger_1 = __importDefault(require("@/logger"));
8
+ const ethers_1 = require("ethers");
9
+ const abi_1 = __importDefault(require("@/abi"));
10
+ const db_1 = require("@/db");
11
+ const utils_1 = require("@/utils");
12
+ const constants_1 = require("@/constants");
13
+ const config_1 = __importDefault(require("@/config"));
14
+ const sequelize_1 = require("sequelize");
15
+ class SyncBridgeCommittedEvents extends BaseTask_1.BaseTask {
16
+ constructor({ chainId }) {
17
+ super({
18
+ logger: new logger_1.default("InteropXContract::SyncBridgeCommittedEvents"),
19
+ });
20
+ this.chainId = chainId;
21
+ }
22
+ async pollHandler() {
23
+ const currentBlock = await this.provider.getBlockNumber();
24
+ const events = await this.contract.queryFilter(this.contract.filters.LogBridgeCommitted(), currentBlock - 2000, currentBlock);
25
+ let processedEvents = 0;
26
+ for (const event of events) {
27
+ try {
28
+ if (!event.args) {
29
+ continue;
30
+ }
31
+ const { actionId, bridger, position, sourceChainId, targetChainId, requestTransactionHash, metadata } = event.args;
32
+ const uniqueIdentifier = {
33
+ actionId,
34
+ bridger,
35
+ requestTransactionHash,
36
+ sourceChainId: sourceChainId,
37
+ targetChainId: targetChainId,
38
+ };
39
+ let transactionHash = (0, utils_1.generateInteropTransactionHash)(uniqueIdentifier);
40
+ const transaction = await db_1.Transaction.findOne({
41
+ where: {
42
+ transactionHash,
43
+ sourceStatus: 'success',
44
+ committedEvent: {
45
+ [sequelize_1.Op.eq]: null,
46
+ }
47
+ }
48
+ });
49
+ if (!transaction) {
50
+ continue;
51
+ }
52
+ transaction.targetStatus = 'success';
53
+ transaction.targetBlockNumber = event.blockNumber;
54
+ transaction.targetTransactionHash = event.transactionHash;
55
+ transaction.committedEvent = {
56
+ actionId,
57
+ bridger,
58
+ position: {
59
+ withdraw: position.withdraw.map((v) => ({
60
+ sourceToken: v.sourceToken,
61
+ targetToken: v.targetToken,
62
+ amount: v.amount.toString()
63
+ })),
64
+ supply: position.supply.map((v) => ({
65
+ sourceToken: v.sourceToken,
66
+ targetToken: v.targetToken,
67
+ amount: v.amount.toString()
68
+ })),
69
+ },
70
+ sourceChainId: sourceChainId,
71
+ targetChainId: targetChainId,
72
+ metadata,
73
+ requestTransactionHash,
74
+ };
75
+ transaction.status = 'success';
76
+ await transaction.save();
77
+ this.logger.info(`New bridge committed received: ${transactionHash} `);
78
+ }
79
+ catch (error) {
80
+ this.logger.error(error);
81
+ }
82
+ }
83
+ if (processedEvents > 0)
84
+ this.logger.info(`${processedEvents} events processed`);
85
+ }
86
+ async start() {
87
+ this.contractAddress = constants_1.addresses[this.chainId].interopXContract;
88
+ this.provider = new ethers_1.ethers.providers.JsonRpcProvider((0, utils_1.getRpcProviderUrl)(this.chainId));
89
+ this.contract = (0, utils_1.getContract)(this.contractAddress, abi_1.default.interopXContract, new ethers_1.ethers.Wallet(config_1.default.privateKey, this.provider));
90
+ await super.start();
91
+ }
92
+ }
93
+ exports.default = SyncBridgeCommittedEvents;
@@ -0,0 +1,78 @@
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
+ const BaseTask_1 = require("../BaseTask");
7
+ const logger_1 = __importDefault(require("@/logger"));
8
+ const ethers_1 = require("ethers");
9
+ const abi_1 = __importDefault(require("@/abi"));
10
+ const db_1 = require("@/db");
11
+ const utils_1 = require("@/utils");
12
+ const constants_1 = require("@/constants");
13
+ const config_1 = __importDefault(require("@/config"));
14
+ class SyncBridgeRequestEvents extends BaseTask_1.BaseTask {
15
+ constructor({ chainId }) {
16
+ super({
17
+ logger: new logger_1.default("InteropXContract::SyncBridgeRequestEvents"),
18
+ });
19
+ this.chainId = chainId;
20
+ }
21
+ async pollHandler() {
22
+ const currentBlock = await this.provider.getBlockNumber();
23
+ const events = await this.contract.queryFilter(this.contract.filters.LogBridgeRequest(), currentBlock - 2000, currentBlock);
24
+ let processedEvents = 0;
25
+ for (const event of events) {
26
+ try {
27
+ if (!event.args) {
28
+ continue;
29
+ }
30
+ const { actionId, bridger, position, sourceChainId, targetChainId, metadata } = event.args;
31
+ const uniqueIdentifier = {
32
+ actionId,
33
+ bridger,
34
+ requestTransactionHash: event.transactionHash,
35
+ sourceChainId: sourceChainId.toNumber(),
36
+ targetChainId: targetChainId.toNumber(),
37
+ };
38
+ let transactionHash = (0, utils_1.generateInteropTransactionHash)(uniqueIdentifier);
39
+ const transaction = await db_1.Transaction.findOne({ where: { transactionHash } });
40
+ if (transaction) {
41
+ continue;
42
+ }
43
+ await db_1.Transaction.create(Object.assign(Object.assign({ transactionHash }, uniqueIdentifier), { requestBlockNumber: event.blockNumber, requestEvent: {
44
+ actionId,
45
+ bridger,
46
+ position: {
47
+ withdraw: position.withdraw.map((v) => ({
48
+ sourceToken: v.sourceToken,
49
+ targetToken: v.targetToken,
50
+ amount: v.amount.toString()
51
+ })),
52
+ supply: position.supply.map((v) => ({
53
+ sourceToken: v.sourceToken,
54
+ targetToken: v.targetToken,
55
+ amount: v.amount.toString()
56
+ })),
57
+ },
58
+ sourceChainId: sourceChainId.toNumber(),
59
+ targetChainId: targetChainId.toNumber(),
60
+ metadata,
61
+ } }));
62
+ this.logger.info(`New bridge request received: ${transactionHash} `);
63
+ }
64
+ catch (error) {
65
+ this.logger.error(error);
66
+ }
67
+ }
68
+ if (processedEvents > 0)
69
+ this.logger.info(`${processedEvents} events processed`);
70
+ }
71
+ async start() {
72
+ this.contractAddress = constants_1.addresses[this.chainId].interopXContract;
73
+ this.provider = new ethers_1.ethers.providers.JsonRpcProvider((0, utils_1.getRpcProviderUrl)(this.chainId));
74
+ this.contract = (0, utils_1.getContract)(this.contractAddress, abi_1.default.interopXContract, new ethers_1.ethers.Wallet(config_1.default.privateKey, this.provider));
75
+ await super.start();
76
+ }
77
+ }
78
+ exports.default = SyncBridgeRequestEvents;
@@ -0,0 +1,90 @@
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
+ const BaseTask_1 = require("../BaseTask");
7
+ const logger_1 = __importDefault(require("@/logger"));
8
+ const ethers_1 = require("ethers");
9
+ const abi_1 = __importDefault(require("@/abi"));
10
+ const db_1 = require("@/db");
11
+ const utils_1 = require("@/utils");
12
+ const constants_1 = require("@/constants");
13
+ const config_1 = __importDefault(require("@/config"));
14
+ const sequelize_1 = require("sequelize");
15
+ class SyncBridgeRequestSentEvents extends BaseTask_1.BaseTask {
16
+ constructor({ chainId }) {
17
+ super({
18
+ logger: new logger_1.default("InteropXContract::SyncBridgeRequestSentEvents"),
19
+ });
20
+ this.chainId = chainId;
21
+ }
22
+ async pollHandler() {
23
+ const currentBlock = await this.provider.getBlockNumber();
24
+ const events = await this.contract.queryFilter(this.contract.filters.LogBridgeRequestSent(), currentBlock - 2000, currentBlock);
25
+ let processedEvents = 0;
26
+ for (const event of events) {
27
+ try {
28
+ if (!event.args) {
29
+ continue;
30
+ }
31
+ const { actionId, bridger, position, sourceChainId, targetChainId, requestTransactionHash, metadata } = event.args;
32
+ const uniqueIdentifier = {
33
+ actionId,
34
+ bridger,
35
+ requestTransactionHash,
36
+ sourceChainId: sourceChainId,
37
+ targetChainId: targetChainId,
38
+ };
39
+ let transactionHash = (0, utils_1.generateInteropTransactionHash)(uniqueIdentifier);
40
+ const transaction = await db_1.Transaction.findOne({
41
+ where: {
42
+ transactionHash, requestSentEvent: {
43
+ [sequelize_1.Op.eq]: null,
44
+ }
45
+ }
46
+ });
47
+ if (!transaction) {
48
+ continue;
49
+ }
50
+ transaction.sourceStatus = 'success';
51
+ transaction.sourceBlockNumber = event.blockNumber;
52
+ transaction.sourceTransactionHash = event.transactionHash;
53
+ transaction.requestSentEvent = {
54
+ actionId,
55
+ bridger,
56
+ position: {
57
+ withdraw: position.withdraw.map((v) => ({
58
+ sourceToken: v.sourceToken,
59
+ targetToken: v.targetToken,
60
+ amount: v.amount.toString()
61
+ })),
62
+ supply: position.supply.map((v) => ({
63
+ sourceToken: v.sourceToken,
64
+ targetToken: v.targetToken,
65
+ amount: v.amount.toString()
66
+ })),
67
+ },
68
+ sourceChainId: sourceChainId,
69
+ targetChainId: targetChainId,
70
+ metadata,
71
+ requestTransactionHash,
72
+ };
73
+ await transaction.save();
74
+ this.logger.info(`New bridge request sent received: ${transactionHash} `);
75
+ }
76
+ catch (error) {
77
+ this.logger.error(error);
78
+ }
79
+ }
80
+ if (processedEvents > 0)
81
+ this.logger.info(`${processedEvents} events processed`);
82
+ }
83
+ async start() {
84
+ this.contractAddress = constants_1.addresses[this.chainId].interopXContract;
85
+ this.provider = new ethers_1.ethers.providers.JsonRpcProvider((0, utils_1.getRpcProviderUrl)(this.chainId));
86
+ this.contract = (0, utils_1.getContract)(this.contractAddress, abi_1.default.interopXContract, new ethers_1.ethers.Wallet(config_1.default.privateKey, this.provider));
87
+ await super.start();
88
+ }
89
+ }
90
+ exports.default = SyncBridgeRequestSentEvents;
@@ -4,47 +4,33 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Tasks = void 0;
7
- const ProcessDepositEvents_1 = __importDefault(require("./InteropXGateway/ProcessDepositEvents"));
8
- const SyncDepositEvents_1 = __importDefault(require("./InteropXGateway/SyncDepositEvents"));
9
- const SyncWithdrawtEvents_1 = __importDefault(require("./InteropXGateway/SyncWithdrawtEvents"));
10
- const ProcessWithdrawEvents_1 = __importDefault(require("./InteropBridge/ProcessWithdrawEvents"));
11
- const SyncBurnEvents_1 = __importDefault(require("./InteropBridge/SyncBurnEvents"));
12
- const SyncMintEvents_1 = __importDefault(require("./InteropBridge/SyncMintEvents"));
13
- const SyncTransactionStatusTask_1 = __importDefault(require("./Transactions/SyncTransactionStatusTask"));
7
+ const waait_1 = __importDefault(require("waait"));
14
8
  const AutoUpdateTask_1 = __importDefault(require("./AutoUpdateTask"));
9
+ const SyncBridgeRequestEvents_1 = __importDefault(require("./InteropXContract/SyncBridgeRequestEvents"));
10
+ const ProcessBridgeRequestEvents_1 = __importDefault(require("./InteropXContract/ProcessBridgeRequestEvents"));
11
+ const SyncBridgeRequestSentEvents_1 = __importDefault(require("./InteropXContract/SyncBridgeRequestSentEvents"));
12
+ const SyncBridgeCommittedEvents_1 = __importDefault(require("./InteropXContract/SyncBridgeCommittedEvents"));
15
13
  class Tasks {
16
14
  constructor() {
17
15
  this.tasks = [
18
- new SyncTransactionStatusTask_1.default(),
16
+ // new SyncTransactionStatusTask(),
19
17
  new AutoUpdateTask_1.default(),
20
- // InteropXGateway
21
- new SyncDepositEvents_1.default({
22
- chainId: 43114
23
- }),
24
- new ProcessDepositEvents_1.default({
25
- chainId: 43114
26
- }),
27
- new SyncWithdrawtEvents_1.default({
28
- chainId: 43114
29
- }),
30
- // InteropBridge
31
- new ProcessWithdrawEvents_1.default({
32
- chainId: 137,
33
- }),
34
- new SyncMintEvents_1.default({
35
- chainId: 137,
36
- itokenAddress: '0x62c0045f3277e7067cacad3c8038eeabb1bd92d1',
37
- }),
38
- new SyncBurnEvents_1.default({
39
- chainId: 137,
40
- itokenAddress: '0x62c0045f3277e7067cacad3c8038eeabb1bd92d1',
41
- })
18
+ // InteropXContract
19
+ new SyncBridgeRequestEvents_1.default({ chainId: 137 }),
20
+ new SyncBridgeRequestEvents_1.default({ chainId: 43114 }),
21
+ new SyncBridgeRequestSentEvents_1.default({ chainId: 137 }),
22
+ new SyncBridgeRequestSentEvents_1.default({ chainId: 43114 }),
23
+ new SyncBridgeCommittedEvents_1.default({ chainId: 137 }),
24
+ new SyncBridgeCommittedEvents_1.default({ chainId: 43114 }),
25
+ new ProcessBridgeRequestEvents_1.default({ chainId: 137 }),
26
+ new ProcessBridgeRequestEvents_1.default({ chainId: 43114 }),
42
27
  ];
43
28
  }
44
29
  async start() {
45
30
  for (const task of this.tasks) {
46
31
  try {
47
32
  task.start();
33
+ await (0, waait_1.default)(1000);
48
34
  }
49
35
  catch (error) {
50
36
  console.error(`Error starting task: ${task.constructor.name}`);