@socket.tech/dl-common 1.0.16 → 1.0.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.
- package/dist/constants/confirmations.d.ts +5 -0
- package/dist/constants/confirmations.js +17 -0
- package/dist/constants/enums.d.ts +44 -0
- package/dist/constants/enums.js +52 -0
- package/dist/constants/index.d.ts +3 -0
- package/dist/constants/index.js +19 -0
- package/dist/constants/types.d.ts +136 -0
- package/dist/constants/types.js +53 -0
- package/dist/constants/waitTime.d.ts +8 -0
- package/dist/constants/waitTime.js +45 -0
- package/dist/dl-common/constants/index.d.ts +1 -0
- package/dist/dl-common/constants/index.js +1 -0
- package/dist/dl-common/constants/index.js.map +1 -1
- package/dist/dl-common/constants/relay-types.d.ts +78 -0
- package/dist/dl-common/constants/relay-types.js +24 -0
- package/dist/dl-common/constants/relay-types.js.map +1 -0
- package/dist/dl-common/constants/types.d.ts +0 -6
- package/dist/dl-common/constants/types.js +1 -8
- package/dist/dl-common/constants/types.js.map +1 -1
- package/dist/dl-common/utils/index.d.ts +1 -0
- package/dist/dl-common/utils/index.js +1 -0
- package/dist/dl-common/utils/index.js.map +1 -1
- package/dist/dl-common/utils/relaySigner.d.ts +6 -2
- package/dist/dl-common/utils/relaySigner.js +23 -5
- package/dist/dl-common/utils/relaySigner.js.map +1 -1
- package/dist/dl-common/utils/relayUtils.d.ts +2 -0
- package/dist/dl-common/utils/relayUtils.js +21 -0
- package/dist/dl-common/utils/relayUtils.js.map +1 -0
- package/dist/dl-common/utils/signer/adapter.js.map +1 -1
- package/dist/dl-common/utils/signer/kms-ethers-signer.js.map +1 -1
- package/dist/dl-common/utils/signer/kms-signer.js +1 -1
- package/dist/dl-common/utils/signer/socketSigner.js +1 -1
- package/dist/dl-common/utils/signer/socketSigner.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +36 -0
- package/dist/models/attestSignature.d.ts +35 -0
- package/dist/models/attestSignature.js +53 -0
- package/dist/models/attestation.d.ts +70 -0
- package/dist/models/attestation.js +86 -0
- package/dist/models/index.d.ts +7 -0
- package/dist/models/index.js +23 -0
- package/dist/models/lastBlock.d.ts +28 -0
- package/dist/models/lastBlock.js +27 -0
- package/dist/models/message.d.ts +171 -0
- package/dist/models/message.js +193 -0
- package/dist/models/packet.d.ts +240 -0
- package/dist/models/packet.js +249 -0
- package/dist/models/proposal.d.ts +127 -0
- package/dist/models/proposal.js +141 -0
- package/dist/models/switchboard.d.ts +69 -0
- package/dist/models/switchboard.js +92 -0
- package/dist/models/transaction.d.ts +0 -0
- package/dist/models/transaction.js +280 -0
- package/dist/services/cacheService.d.ts +14 -0
- package/dist/services/cacheService.js +77 -0
- package/dist/services/eventBridgeService.d.ts +8 -0
- package/dist/services/eventBridgeService.js +40 -0
- package/dist/services/index.d.ts +3 -0
- package/dist/services/index.js +20 -0
- package/dist/services/queueService.d.ts +10 -0
- package/dist/services/queueService.js +62 -0
- package/dist/src/constants/gasEstimation.d.ts +8 -0
- package/dist/src/constants/gasEstimation.js +61 -0
- package/dist/src/constants/relayer.d.ts +0 -3
- package/dist/src/constants/relayer.js +4 -9
- package/dist/src/constants/relayer.js.map +1 -1
- package/dist/src/constants/types.d.ts +3 -3
- package/dist/src/handlers/statusHandler.js +1 -1
- package/dist/src/handlers/statusHandler.js.map +1 -1
- package/dist/src/relayers/common.js +3 -3
- package/dist/src/relayers/common.js.map +1 -1
- package/dist/src/relayers/propose/main.js +4 -8
- package/dist/src/relayers/propose/main.js.map +1 -1
- package/dist/src/relayers/proposeRelayer.d.ts +7 -0
- package/dist/src/relayers/proposeRelayer.js +587 -0
- package/dist/src/relayers/sealRelayer.js +4 -6
- package/dist/src/relayers/sealRelayer.js.map +1 -1
- package/dist/src/services/batcherService.d.ts +9 -0
- package/dist/src/services/batcherService.js +197 -0
- package/dist/src/services/executeService.d.ts +16 -0
- package/dist/src/services/executeService.js +209 -0
- package/dist/src/statusTrackers/message.js +6 -5
- package/dist/src/statusTrackers/message.js.map +1 -1
- package/dist/src/statusTrackers/packet.d.ts +2 -2
- package/dist/src/statusTrackers/packet.js +6 -5
- package/dist/src/statusTrackers/packet.js.map +1 -1
- package/dist/utils/address.d.ts +2 -0
- package/dist/utils/address.js +8 -0
- package/dist/utils/axios.d.ts +2 -0
- package/dist/utils/axios.js +54 -0
- package/dist/utils/dataStructHelper.d.ts +2 -0
- package/dist/utils/dataStructHelper.js +10 -0
- package/dist/utils/discord.d.ts +2 -0
- package/dist/utils/discord.js +43 -0
- package/dist/utils/ethersAwsKmsSigner.d.ts +2 -0
- package/dist/utils/ethersAwsKmsSigner.js +26 -0
- package/dist/utils/eventGetter.d.ts +4 -0
- package/dist/utils/eventGetter.js +50 -0
- package/dist/utils/extraUtils.d.ts +32 -0
- package/dist/utils/extraUtils.js +103 -0
- package/dist/utils/idUtils.d.ts +14 -0
- package/dist/utils/idUtils.js +50 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.js +29 -0
- package/dist/utils/relaySigner.d.ts +21 -0
- package/dist/utils/relaySigner.js +68 -0
- package/dist/utils/s3Service.d.ts +11 -0
- package/dist/utils/s3Service.js +70 -0
- package/dist/utils/secretManagerService.d.ts +2 -0
- package/dist/utils/secretManagerService.js +33 -0
- package/dist/utils/signer/adapter.d.ts +18 -0
- package/dist/utils/signer/adapter.js +71 -0
- package/dist/utils/signer/address.d.ts +9 -0
- package/dist/utils/signer/address.js +42 -0
- package/dist/utils/signer/asn1-parser.d.ts +10 -0
- package/dist/utils/signer/asn1-parser.js +79 -0
- package/dist/utils/signer/crypto.d.ts +5 -0
- package/dist/utils/signer/crypto.js +33 -0
- package/dist/utils/signer/index.d.ts +5 -0
- package/dist/utils/signer/index.js +21 -0
- package/dist/utils/signer/kms-ethers-signer.d.ts +19 -0
- package/dist/utils/signer/kms-ethers-signer.js +32 -0
- package/dist/utils/signer/kms-signer.d.ts +13 -0
- package/dist/utils/signer/kms-signer.js +46 -0
- package/dist/utils/signer/signature.d.ts +16 -0
- package/dist/utils/signer/signature.js +65 -0
- package/dist/utils/signer/signer.d.ts +6 -0
- package/dist/utils/signer/signer.js +2 -0
- package/dist/utils/signer/socketSigner.d.ts +39 -0
- package/dist/utils/signer/socketSigner.js +153 -0
- package/dist/utils/time.d.ts +2 -0
- package/dist/utils/time.js +7 -0
- package/package.json +4 -4
|
@@ -0,0 +1,153 @@
|
|
|
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.SocketSigner = exports.EIP712_SAFE_TX_TYPE = void 0;
|
|
7
|
+
const relaySigner_1 = require("../relaySigner");
|
|
8
|
+
const ethers_1 = require("ethers");
|
|
9
|
+
const MultiSigWrapper_json_1 = __importDefault(require("@socket.tech/dl-core/artifacts/abi/MultiSigWrapper.json"));
|
|
10
|
+
const Safe_json_1 = __importDefault(require("@socket.tech/dl-core/artifacts/abi/Safe.json"));
|
|
11
|
+
const utils_1 = require("ethers/lib/utils");
|
|
12
|
+
exports.EIP712_SAFE_TX_TYPE = {
|
|
13
|
+
// "SafeTx(address to,uint256 value,bytes data,uint8 operation,uint256 safeTxGas,uint256 baseGas,uint256 gasPrice,address gasToken,address refundReceiver,uint256 nonce)"
|
|
14
|
+
SafeTx: [
|
|
15
|
+
{ type: "address", name: "to" },
|
|
16
|
+
{ type: "uint256", name: "value" },
|
|
17
|
+
{ type: "bytes", name: "data" },
|
|
18
|
+
{ type: "uint8", name: "operation" },
|
|
19
|
+
{ type: "uint256", name: "safeTxGas" },
|
|
20
|
+
{ type: "uint256", name: "baseGas" },
|
|
21
|
+
{ type: "uint256", name: "gasPrice" },
|
|
22
|
+
{ type: "address", name: "gasToken" },
|
|
23
|
+
{ type: "address", name: "refundReceiver" },
|
|
24
|
+
{ type: "uint256", name: "nonce" },
|
|
25
|
+
],
|
|
26
|
+
};
|
|
27
|
+
class SocketSigner extends relaySigner_1.SocketRelaySigner {
|
|
28
|
+
constructor(provider, chainId,
|
|
29
|
+
// address of safe
|
|
30
|
+
safeAddress,
|
|
31
|
+
// address of safe wrapper to store sign
|
|
32
|
+
safeWrapperAddress, relayUrl, relayerAPIKey,
|
|
33
|
+
// wallet for signing safe hash data
|
|
34
|
+
signingWallet,
|
|
35
|
+
// if you want to relay tx to wrapper
|
|
36
|
+
useSafe = false,
|
|
37
|
+
// if you want to relay tx using EOA, otherwise it will use relayer
|
|
38
|
+
useEOA = false, sequential = false,
|
|
39
|
+
// if isCritical is set to true, will try multiple relayers
|
|
40
|
+
// to get the transaction included
|
|
41
|
+
isCritical = false, metadata = {}) {
|
|
42
|
+
super(provider, chainId, relayUrl, relayerAPIKey, sequential, isCritical, metadata);
|
|
43
|
+
this.provider = provider;
|
|
44
|
+
this.chainId = chainId;
|
|
45
|
+
this.safeAddress = safeAddress;
|
|
46
|
+
this.safeWrapperAddress = safeWrapperAddress;
|
|
47
|
+
this.relayUrl = relayUrl;
|
|
48
|
+
this.relayerAPIKey = relayerAPIKey;
|
|
49
|
+
this.signingWallet = signingWallet;
|
|
50
|
+
this.useSafe = useSafe;
|
|
51
|
+
this.useEOA = useEOA;
|
|
52
|
+
this.sequential = sequential;
|
|
53
|
+
this.isCritical = isCritical;
|
|
54
|
+
this.metadata = metadata;
|
|
55
|
+
this.address =
|
|
56
|
+
this.signingWallet != null
|
|
57
|
+
? this.signingWallet.address
|
|
58
|
+
: "0x5367Efc17020Aa1CF0943bA7eD17f1D3e4c7d7EE";
|
|
59
|
+
if (this.safeWrapperAddress.length !== 0 ||
|
|
60
|
+
this.safeWrapperAddress !== ethers_1.constants.AddressZero)
|
|
61
|
+
this.safeWrapperContract = new ethers_1.Contract(this.safeWrapperAddress, MultiSigWrapper_json_1.default, this.provider);
|
|
62
|
+
if (this.safeAddress.length !== 0 ||
|
|
63
|
+
this.safeAddress !== ethers_1.constants.AddressZero)
|
|
64
|
+
this.safeContract = new ethers_1.Contract(this.safeAddress, Safe_json_1.default, this.provider);
|
|
65
|
+
}
|
|
66
|
+
setSigningWallet(signingWallet) {
|
|
67
|
+
return new SocketSigner(this.provider, this.chainId, this.safeAddress, this.safeWrapperAddress, this.relayUrl, this.relayerAPIKey, signingWallet, this.useSafe, this.useEOA, this.sequential, this.isCritical, this.metadata);
|
|
68
|
+
}
|
|
69
|
+
setSafeWrapperAddress(safeWrapperAddress) {
|
|
70
|
+
return new SocketSigner(this.provider, this.chainId, this.safeAddress, safeWrapperAddress, this.relayUrl, this.relayerAPIKey, this.signingWallet, this.useSafe, this.useEOA, this.sequential, this.isCritical, this.metadata);
|
|
71
|
+
}
|
|
72
|
+
setSafeAddress(safeAddress) {
|
|
73
|
+
return new SocketSigner(this.provider, this.chainId, safeAddress, this.safeWrapperAddress, this.relayUrl, this.relayerAPIKey, this.signingWallet, this.useSafe, this.useEOA, this.sequential, this.isCritical, this.metadata);
|
|
74
|
+
}
|
|
75
|
+
async getAddress() {
|
|
76
|
+
if (this.signingWallet != null)
|
|
77
|
+
return this.signingWallet.address;
|
|
78
|
+
return await super.getAddress();
|
|
79
|
+
}
|
|
80
|
+
async sendTransaction(transaction) {
|
|
81
|
+
var _a, _b;
|
|
82
|
+
if (this.useSafe) {
|
|
83
|
+
if (this.safeAddress.length === 0 ||
|
|
84
|
+
this.safeAddress === ethers_1.constants.AddressZero)
|
|
85
|
+
throw new Error("safeAddress not provided");
|
|
86
|
+
if (this.safeWrapperContract == null)
|
|
87
|
+
throw new Error("safe wrapper not provided");
|
|
88
|
+
if (this.signingWallet == null)
|
|
89
|
+
throw new Error("signingWallet not provided");
|
|
90
|
+
const signerAddress = await this.getAddress();
|
|
91
|
+
const safeNonce = Number(await this.safeContract.nonce());
|
|
92
|
+
let nonce = Number(await this.safeWrapperContract.lastNonce(signerAddress));
|
|
93
|
+
if (safeNonce != 0) {
|
|
94
|
+
nonce = safeNonce > nonce ? safeNonce : nonce + 1;
|
|
95
|
+
}
|
|
96
|
+
else if (nonce !== 0)
|
|
97
|
+
nonce++;
|
|
98
|
+
if (await this.isTxHashSubmitted(transaction))
|
|
99
|
+
throw new Error("tx already submitted!");
|
|
100
|
+
const contractData = {
|
|
101
|
+
to: transaction.to,
|
|
102
|
+
value: (_a = transaction.value) !== null && _a !== void 0 ? _a : 0,
|
|
103
|
+
data: (_b = transaction.data) !== null && _b !== void 0 ? _b : "0x",
|
|
104
|
+
operation: 0,
|
|
105
|
+
safeTxGas: 0,
|
|
106
|
+
baseGas: 0,
|
|
107
|
+
gasPrice: 0,
|
|
108
|
+
gasToken: ethers_1.constants.AddressZero,
|
|
109
|
+
refundReceiver: ethers_1.constants.AddressZero,
|
|
110
|
+
nonce,
|
|
111
|
+
};
|
|
112
|
+
const signature = await this.signingWallet._signTypedData({ verifyingContract: this.safeAddress, chainId: this.chainId }, exports.EIP712_SAFE_TX_TYPE, contractData);
|
|
113
|
+
// update to & data
|
|
114
|
+
transaction.data = this.safeWrapperContract.interface.encodeFunctionData("storeOrRelaySignatures", [
|
|
115
|
+
this.signingWallet.address,
|
|
116
|
+
contractData.to,
|
|
117
|
+
nonce,
|
|
118
|
+
contractData.value,
|
|
119
|
+
contractData.data,
|
|
120
|
+
signature,
|
|
121
|
+
]);
|
|
122
|
+
transaction.to = this.safeWrapperAddress;
|
|
123
|
+
}
|
|
124
|
+
if (this.useEOA) {
|
|
125
|
+
if (this.signingWallet == null)
|
|
126
|
+
throw new Error("signingWallet not provided");
|
|
127
|
+
return await this.signingWallet.sendTransaction(transaction);
|
|
128
|
+
}
|
|
129
|
+
return await super.sendTransaction(transaction);
|
|
130
|
+
}
|
|
131
|
+
async signMessage(message) {
|
|
132
|
+
if (!this.signingWallet)
|
|
133
|
+
throw Error("No Signing Wallet found!");
|
|
134
|
+
return await this.signingWallet.signMessage(message);
|
|
135
|
+
}
|
|
136
|
+
async isTxHashSubmitted(transaction) {
|
|
137
|
+
var _a, _b;
|
|
138
|
+
if (!this.signingWallet)
|
|
139
|
+
throw Error("No Signing Wallet found!");
|
|
140
|
+
const dataHash = (0, utils_1.keccak256)(utils_1.defaultAbiCoder.encode(["address", "uint256", "bytes"], [transaction.to, (_a = transaction.value) !== null && _a !== void 0 ? _a : 0, (_b = transaction.data) !== null && _b !== void 0 ? _b : "0x"]));
|
|
141
|
+
const safeParams = await this.safeWrapperContract.safeParams(dataHash, this.signingWallet.address);
|
|
142
|
+
return safeParams[1] !== "0x";
|
|
143
|
+
}
|
|
144
|
+
async checkAndSendTransaction(transaction) {
|
|
145
|
+
const isSubmitted = await this.isTxHashSubmitted(transaction);
|
|
146
|
+
if (isSubmitted)
|
|
147
|
+
return { txSent: false, txHash: "" };
|
|
148
|
+
const tx = await this.sendTransaction(transaction);
|
|
149
|
+
await tx.wait();
|
|
150
|
+
return { txSent: true, txHash: tx.hash };
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
exports.SocketSigner = SocketSigner;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sleep = exports.currentTimestampInSeconds = void 0;
|
|
4
|
+
const currentTimestampInSeconds = () => Math.floor(new Date().getTime() / 1000);
|
|
5
|
+
exports.currentTimestampInSeconds = currentTimestampInSeconds;
|
|
6
|
+
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
7
|
+
exports.sleep = sleep;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@socket.tech/dl-common",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.18",
|
|
4
4
|
"main": "./dist/dl-common/index.js",
|
|
5
5
|
"types": "./dist/dl-common/index.d.ts",
|
|
6
6
|
"description": "common utilities for socket data layer.",
|
|
@@ -113,9 +113,9 @@
|
|
|
113
113
|
"serverless-plugin-aws-alerts": "^1.7.5",
|
|
114
114
|
"ts-jest": "^29.1.1",
|
|
115
115
|
"ts-node": "^10.7.0",
|
|
116
|
-
"typescript": "*",
|
|
117
|
-
"typescript-eslint": "^7.6.0",
|
|
118
116
|
"tsc-alias": "^1.8.10",
|
|
119
|
-
"tsconfig-paths": "^4.2.0"
|
|
117
|
+
"tsconfig-paths": "^4.2.0",
|
|
118
|
+
"typescript": "*",
|
|
119
|
+
"typescript-eslint": "^7.6.0"
|
|
120
120
|
}
|
|
121
121
|
}
|