@atomiqlabs/chain-evm 1.0.0-dev.75 → 1.0.0-dev.77
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/LICENSE +201 -201
- package/dist/chains/botanix/BotanixChainType.d.ts +13 -13
- package/dist/chains/botanix/BotanixChainType.js +2 -2
- package/dist/chains/botanix/BotanixInitializer.d.ts +30 -30
- package/dist/chains/botanix/BotanixInitializer.js +122 -122
- package/dist/chains/citrea/CitreaBtcRelay.d.ts +21 -21
- package/dist/chains/citrea/CitreaBtcRelay.js +43 -43
- package/dist/chains/citrea/CitreaChainType.d.ts +13 -13
- package/dist/chains/citrea/CitreaChainType.js +2 -2
- package/dist/chains/citrea/CitreaFees.d.ts +29 -29
- package/dist/chains/citrea/CitreaFees.js +67 -67
- package/dist/chains/citrea/CitreaInitializer.d.ts +30 -30
- package/dist/chains/citrea/CitreaInitializer.js +129 -129
- package/dist/chains/citrea/CitreaSpvVaultContract.d.ts +15 -15
- package/dist/chains/citrea/CitreaSpvVaultContract.js +74 -74
- package/dist/chains/citrea/CitreaSwapContract.d.ts +22 -22
- package/dist/chains/citrea/CitreaSwapContract.js +96 -96
- package/dist/chains/citrea/CitreaTokens.d.ts +9 -9
- package/dist/chains/citrea/CitreaTokens.js +20 -20
- package/dist/evm/btcrelay/BtcRelayAbi.d.ts +198 -198
- package/dist/evm/btcrelay/BtcRelayAbi.js +261 -261
- package/dist/evm/btcrelay/BtcRelayTypechain.d.ts +172 -172
- package/dist/evm/btcrelay/BtcRelayTypechain.js +2 -2
- package/dist/evm/btcrelay/EVMBtcRelay.d.ts +197 -197
- package/dist/evm/btcrelay/EVMBtcRelay.js +435 -435
- package/dist/evm/btcrelay/headers/EVMBtcHeader.d.ts +33 -33
- package/dist/evm/btcrelay/headers/EVMBtcHeader.js +84 -84
- package/dist/evm/btcrelay/headers/EVMBtcStoredHeader.d.ts +56 -56
- package/dist/evm/btcrelay/headers/EVMBtcStoredHeader.js +123 -123
- package/dist/evm/chain/EVMChainInterface.d.ts +51 -51
- package/dist/evm/chain/EVMChainInterface.js +89 -89
- package/dist/evm/chain/EVMModule.d.ts +9 -9
- package/dist/evm/chain/EVMModule.js +13 -13
- package/dist/evm/chain/modules/ERC20Abi.d.ts +168 -168
- package/dist/evm/chain/modules/ERC20Abi.js +225 -225
- package/dist/evm/chain/modules/EVMAddresses.d.ts +10 -10
- package/dist/evm/chain/modules/EVMAddresses.js +30 -30
- package/dist/evm/chain/modules/EVMBlocks.d.ts +20 -20
- package/dist/evm/chain/modules/EVMBlocks.js +64 -64
- package/dist/evm/chain/modules/EVMEvents.d.ts +36 -36
- package/dist/evm/chain/modules/EVMEvents.js +122 -122
- package/dist/evm/chain/modules/EVMFees.d.ts +36 -36
- package/dist/evm/chain/modules/EVMFees.js +74 -74
- package/dist/evm/chain/modules/EVMSignatures.d.ts +29 -29
- package/dist/evm/chain/modules/EVMSignatures.js +68 -68
- package/dist/evm/chain/modules/EVMTokens.d.ts +70 -70
- package/dist/evm/chain/modules/EVMTokens.js +142 -142
- package/dist/evm/chain/modules/EVMTransactions.d.ts +94 -94
- package/dist/evm/chain/modules/EVMTransactions.js +286 -286
- package/dist/evm/contract/EVMContractBase.d.ts +22 -22
- package/dist/evm/contract/EVMContractBase.js +34 -34
- package/dist/evm/contract/EVMContractModule.d.ts +8 -8
- package/dist/evm/contract/EVMContractModule.js +11 -11
- package/dist/evm/contract/modules/EVMContractEvents.d.ts +42 -42
- package/dist/evm/contract/modules/EVMContractEvents.js +75 -75
- package/dist/evm/events/EVMChainEvents.d.ts +22 -22
- package/dist/evm/events/EVMChainEvents.js +69 -69
- package/dist/evm/events/EVMChainEventsBrowser.d.ts +102 -102
- package/dist/evm/events/EVMChainEventsBrowser.js +413 -404
- package/dist/evm/providers/JsonRpcProviderWithRetries.d.ts +15 -15
- package/dist/evm/providers/JsonRpcProviderWithRetries.js +19 -19
- package/dist/evm/providers/ReconnectingWebSocketProvider.d.ts +22 -22
- package/dist/evm/providers/ReconnectingWebSocketProvider.js +87 -87
- package/dist/evm/providers/SocketProvider.d.ts +111 -111
- package/dist/evm/providers/SocketProvider.js +334 -334
- package/dist/evm/providers/WebSocketProviderWithRetries.d.ts +17 -17
- package/dist/evm/providers/WebSocketProviderWithRetries.js +19 -19
- package/dist/evm/spv_swap/EVMSpvVaultContract.d.ts +79 -79
- package/dist/evm/spv_swap/EVMSpvVaultContract.js +482 -482
- package/dist/evm/spv_swap/EVMSpvVaultData.d.ts +39 -39
- package/dist/evm/spv_swap/EVMSpvVaultData.js +0 -180
- package/dist/evm/spv_swap/EVMSpvWithdrawalData.d.ts +19 -19
- package/dist/evm/spv_swap/EVMSpvWithdrawalData.js +55 -55
- package/dist/evm/spv_swap/SpvVaultContractAbi.d.ts +91 -91
- package/dist/evm/spv_swap/SpvVaultContractAbi.js +849 -849
- package/dist/evm/spv_swap/SpvVaultContractTypechain.d.ts +450 -450
- package/dist/evm/spv_swap/SpvVaultContractTypechain.js +2 -2
- package/dist/evm/swaps/EVMSwapContract.d.ts +193 -193
- package/dist/evm/swaps/EVMSwapContract.js +378 -378
- package/dist/evm/swaps/EVMSwapData.d.ts +66 -66
- package/dist/evm/swaps/EVMSwapData.js +260 -260
- package/dist/evm/swaps/EVMSwapModule.d.ts +9 -9
- package/dist/evm/swaps/EVMSwapModule.js +11 -11
- package/dist/evm/swaps/EscrowManagerAbi.d.ts +120 -120
- package/dist/evm/swaps/EscrowManagerAbi.js +985 -985
- package/dist/evm/swaps/EscrowManagerTypechain.d.ts +475 -475
- package/dist/evm/swaps/EscrowManagerTypechain.js +2 -2
- package/dist/evm/swaps/handlers/IHandler.d.ts +13 -13
- package/dist/evm/swaps/handlers/IHandler.js +2 -2
- package/dist/evm/swaps/handlers/claim/ClaimHandlers.d.ts +10 -10
- package/dist/evm/swaps/handlers/claim/ClaimHandlers.js +13 -13
- package/dist/evm/swaps/handlers/claim/HashlockClaimHandler.d.ts +20 -20
- package/dist/evm/swaps/handlers/claim/HashlockClaimHandler.js +39 -39
- package/dist/evm/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.d.ts +24 -24
- package/dist/evm/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.js +59 -59
- package/dist/evm/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.d.ts +25 -25
- package/dist/evm/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.js +51 -51
- package/dist/evm/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.d.ts +21 -21
- package/dist/evm/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.js +28 -28
- package/dist/evm/swaps/handlers/claim/btc/IBitcoinClaimHandler.d.ts +48 -48
- package/dist/evm/swaps/handlers/claim/btc/IBitcoinClaimHandler.js +63 -63
- package/dist/evm/swaps/handlers/refund/TimelockRefundHandler.d.ts +17 -17
- package/dist/evm/swaps/handlers/refund/TimelockRefundHandler.js +28 -28
- package/dist/evm/swaps/modules/EVMLpVault.d.ts +69 -69
- package/dist/evm/swaps/modules/EVMLpVault.js +134 -134
- package/dist/evm/swaps/modules/EVMSwapClaim.d.ts +54 -54
- package/dist/evm/swaps/modules/EVMSwapClaim.js +137 -137
- package/dist/evm/swaps/modules/EVMSwapInit.d.ts +88 -88
- package/dist/evm/swaps/modules/EVMSwapInit.js +274 -274
- package/dist/evm/swaps/modules/EVMSwapRefund.d.ts +62 -62
- package/dist/evm/swaps/modules/EVMSwapRefund.js +167 -167
- package/dist/evm/typechain/common.d.ts +50 -50
- package/dist/evm/typechain/common.js +2 -2
- package/dist/evm/wallet/EVMBrowserSigner.d.ts +5 -5
- package/dist/evm/wallet/EVMBrowserSigner.js +11 -11
- package/dist/evm/wallet/EVMPersistentSigner.d.ts +29 -29
- package/dist/evm/wallet/EVMPersistentSigner.js +222 -222
- package/dist/evm/wallet/EVMSigner.d.ts +11 -11
- package/dist/evm/wallet/EVMSigner.js +24 -24
- package/dist/index.d.ts +44 -44
- package/dist/index.js +60 -60
- package/dist/utils/Utils.d.ts +17 -17
- package/dist/utils/Utils.js +81 -81
- package/package.json +39 -39
- package/src/chains/botanix/BotanixChainType.ts +28 -28
- package/src/chains/botanix/BotanixInitializer.ts +171 -171
- package/src/chains/citrea/CitreaBtcRelay.ts +57 -57
- package/src/chains/citrea/CitreaChainType.ts +28 -28
- package/src/chains/citrea/CitreaFees.ts +77 -77
- package/src/chains/citrea/CitreaInitializer.ts +178 -178
- package/src/chains/citrea/CitreaSpvVaultContract.ts +75 -75
- package/src/chains/citrea/CitreaSwapContract.ts +102 -102
- package/src/chains/citrea/CitreaTokens.ts +21 -21
- package/src/evm/btcrelay/BtcRelayAbi.ts +258 -258
- package/src/evm/btcrelay/BtcRelayTypechain.ts +371 -371
- package/src/evm/btcrelay/EVMBtcRelay.ts +537 -537
- package/src/evm/btcrelay/headers/EVMBtcHeader.ts +109 -109
- package/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts +152 -152
- package/src/evm/chain/EVMChainInterface.ts +155 -155
- package/src/evm/chain/EVMModule.ts +21 -21
- package/src/evm/chain/modules/ERC20Abi.ts +222 -222
- package/src/evm/chain/modules/EVMAddresses.ts +28 -28
- package/src/evm/chain/modules/EVMBlocks.ts +75 -75
- package/src/evm/chain/modules/EVMEvents.ts +139 -139
- package/src/evm/chain/modules/EVMFees.ts +104 -104
- package/src/evm/chain/modules/EVMSignatures.ts +76 -76
- package/src/evm/chain/modules/EVMTokens.ts +155 -155
- package/src/evm/chain/modules/EVMTransactions.ts +325 -325
- package/src/evm/contract/EVMContractBase.ts +63 -63
- package/src/evm/contract/EVMContractModule.ts +16 -16
- package/src/evm/contract/modules/EVMContractEvents.ts +102 -102
- package/src/evm/events/EVMChainEvents.ts +82 -82
- package/src/evm/events/EVMChainEventsBrowser.ts +534 -525
- package/src/evm/providers/JsonRpcProviderWithRetries.ts +24 -24
- package/src/evm/providers/ReconnectingWebSocketProvider.ts +101 -101
- package/src/evm/providers/SocketProvider.ts +368 -368
- package/src/evm/providers/WebSocketProviderWithRetries.ts +27 -27
- package/src/evm/spv_swap/EVMSpvVaultContract.ts +615 -615
- package/src/evm/spv_swap/EVMSpvVaultData.ts +224 -224
- package/src/evm/spv_swap/EVMSpvWithdrawalData.ts +70 -70
- package/src/evm/spv_swap/SpvVaultContractAbi.ts +846 -846
- package/src/evm/spv_swap/SpvVaultContractTypechain.ts +685 -685
- package/src/evm/swaps/EVMSwapContract.ts +600 -600
- package/src/evm/swaps/EVMSwapData.ts +378 -378
- package/src/evm/swaps/EVMSwapModule.ts +16 -16
- package/src/evm/swaps/EscrowManagerAbi.ts +982 -982
- package/src/evm/swaps/EscrowManagerTypechain.ts +723 -723
- package/src/evm/swaps/handlers/IHandler.ts +17 -17
- package/src/evm/swaps/handlers/claim/ClaimHandlers.ts +20 -20
- package/src/evm/swaps/handlers/claim/HashlockClaimHandler.ts +46 -46
- package/src/evm/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.ts +82 -82
- package/src/evm/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.ts +76 -76
- package/src/evm/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.ts +46 -46
- package/src/evm/swaps/handlers/claim/btc/IBitcoinClaimHandler.ts +115 -115
- package/src/evm/swaps/handlers/refund/TimelockRefundHandler.ts +37 -37
- package/src/evm/swaps/modules/EVMLpVault.ts +154 -154
- package/src/evm/swaps/modules/EVMSwapClaim.ts +172 -172
- package/src/evm/swaps/modules/EVMSwapInit.ts +328 -328
- package/src/evm/swaps/modules/EVMSwapRefund.ts +229 -229
- package/src/evm/typechain/common.ts +131 -131
- package/src/evm/wallet/EVMBrowserSigner.ts +11 -11
- package/src/evm/wallet/EVMPersistentSigner.ts +298 -298
- package/src/evm/wallet/EVMSigner.ts +31 -31
- package/src/index.ts +53 -53
- package/src/utils/Utils.ts +92 -92
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
import { EVMSwapModule } from "../EVMSwapModule";
|
|
2
|
-
import { EVMSwapData } from "../EVMSwapData";
|
|
3
|
-
import { EVMSigner } from "../../wallet/EVMSigner";
|
|
4
|
-
import { EVMTx } from "../../chain/modules/EVMTransactions";
|
|
5
|
-
export declare class EVMSwapRefund extends EVMSwapModule {
|
|
6
|
-
private static readonly GasCosts;
|
|
7
|
-
/**
|
|
8
|
-
* Action for generic Refund instruction
|
|
9
|
-
*
|
|
10
|
-
* @param signer
|
|
11
|
-
* @param swapData
|
|
12
|
-
* @param witness
|
|
13
|
-
* @param feeRate
|
|
14
|
-
* @param handlerGas
|
|
15
|
-
* @private
|
|
16
|
-
*/
|
|
17
|
-
private Refund;
|
|
18
|
-
/**
|
|
19
|
-
* Action for cooperative refunding with signature
|
|
20
|
-
*
|
|
21
|
-
* @param sender
|
|
22
|
-
* @param swapData
|
|
23
|
-
* @param timeout
|
|
24
|
-
* @param signature
|
|
25
|
-
* @param feeRate
|
|
26
|
-
* @private
|
|
27
|
-
*/
|
|
28
|
-
private RefundWithSignature;
|
|
29
|
-
signSwapRefund(signer: EVMSigner, swapData: EVMSwapData, authorizationTimeout: number): Promise<{
|
|
30
|
-
prefix: string;
|
|
31
|
-
timeout: string;
|
|
32
|
-
signature: string;
|
|
33
|
-
}>;
|
|
34
|
-
isSignatureValid(swapData: EVMSwapData, timeout: string, prefix: string, signature: string): Promise<null>;
|
|
35
|
-
/**
|
|
36
|
-
* Creates transactions required for refunding timed out swap
|
|
37
|
-
*
|
|
38
|
-
* @param signer
|
|
39
|
-
* @param swapData swap data to refund
|
|
40
|
-
* @param check whether to check if swap is already expired and refundable
|
|
41
|
-
* @param feeRate fee rate to be used for the transactions
|
|
42
|
-
* @param witnessData
|
|
43
|
-
*/
|
|
44
|
-
txsRefund<T>(signer: string, swapData: EVMSwapData, check?: boolean, feeRate?: string, witnessData?: T): Promise<EVMTx[]>;
|
|
45
|
-
/**
|
|
46
|
-
* Creates transactions required for refunding the swap with authorization signature, also unwraps WSOL to SOL
|
|
47
|
-
*
|
|
48
|
-
* @param signer
|
|
49
|
-
* @param swapData swap data to refund
|
|
50
|
-
* @param timeout signature timeout
|
|
51
|
-
* @param prefix signature prefix of the counterparty
|
|
52
|
-
* @param signature signature of the counterparty
|
|
53
|
-
* @param check whether to check if swap is committed before attempting refund
|
|
54
|
-
* @param feeRate fee rate to be used for the transactions
|
|
55
|
-
*/
|
|
56
|
-
txsRefundWithAuthorization(signer: string, swapData: EVMSwapData, timeout: string, prefix: string, signature: string, check?: boolean, feeRate?: string): Promise<EVMTx[]>;
|
|
57
|
-
getRefundGas(swapData: EVMSwapData): number;
|
|
58
|
-
/**
|
|
59
|
-
* Get the estimated transaction fee of the refund transaction
|
|
60
|
-
*/
|
|
61
|
-
getRefundFee(swapData: EVMSwapData, feeRate?: string): Promise<bigint>;
|
|
62
|
-
}
|
|
1
|
+
import { EVMSwapModule } from "../EVMSwapModule";
|
|
2
|
+
import { EVMSwapData } from "../EVMSwapData";
|
|
3
|
+
import { EVMSigner } from "../../wallet/EVMSigner";
|
|
4
|
+
import { EVMTx } from "../../chain/modules/EVMTransactions";
|
|
5
|
+
export declare class EVMSwapRefund extends EVMSwapModule {
|
|
6
|
+
private static readonly GasCosts;
|
|
7
|
+
/**
|
|
8
|
+
* Action for generic Refund instruction
|
|
9
|
+
*
|
|
10
|
+
* @param signer
|
|
11
|
+
* @param swapData
|
|
12
|
+
* @param witness
|
|
13
|
+
* @param feeRate
|
|
14
|
+
* @param handlerGas
|
|
15
|
+
* @private
|
|
16
|
+
*/
|
|
17
|
+
private Refund;
|
|
18
|
+
/**
|
|
19
|
+
* Action for cooperative refunding with signature
|
|
20
|
+
*
|
|
21
|
+
* @param sender
|
|
22
|
+
* @param swapData
|
|
23
|
+
* @param timeout
|
|
24
|
+
* @param signature
|
|
25
|
+
* @param feeRate
|
|
26
|
+
* @private
|
|
27
|
+
*/
|
|
28
|
+
private RefundWithSignature;
|
|
29
|
+
signSwapRefund(signer: EVMSigner, swapData: EVMSwapData, authorizationTimeout: number): Promise<{
|
|
30
|
+
prefix: string;
|
|
31
|
+
timeout: string;
|
|
32
|
+
signature: string;
|
|
33
|
+
}>;
|
|
34
|
+
isSignatureValid(swapData: EVMSwapData, timeout: string, prefix: string, signature: string): Promise<null>;
|
|
35
|
+
/**
|
|
36
|
+
* Creates transactions required for refunding timed out swap
|
|
37
|
+
*
|
|
38
|
+
* @param signer
|
|
39
|
+
* @param swapData swap data to refund
|
|
40
|
+
* @param check whether to check if swap is already expired and refundable
|
|
41
|
+
* @param feeRate fee rate to be used for the transactions
|
|
42
|
+
* @param witnessData
|
|
43
|
+
*/
|
|
44
|
+
txsRefund<T>(signer: string, swapData: EVMSwapData, check?: boolean, feeRate?: string, witnessData?: T): Promise<EVMTx[]>;
|
|
45
|
+
/**
|
|
46
|
+
* Creates transactions required for refunding the swap with authorization signature, also unwraps WSOL to SOL
|
|
47
|
+
*
|
|
48
|
+
* @param signer
|
|
49
|
+
* @param swapData swap data to refund
|
|
50
|
+
* @param timeout signature timeout
|
|
51
|
+
* @param prefix signature prefix of the counterparty
|
|
52
|
+
* @param signature signature of the counterparty
|
|
53
|
+
* @param check whether to check if swap is committed before attempting refund
|
|
54
|
+
* @param feeRate fee rate to be used for the transactions
|
|
55
|
+
*/
|
|
56
|
+
txsRefundWithAuthorization(signer: string, swapData: EVMSwapData, timeout: string, prefix: string, signature: string, check?: boolean, feeRate?: string): Promise<EVMTx[]>;
|
|
57
|
+
getRefundGas(swapData: EVMSwapData): number;
|
|
58
|
+
/**
|
|
59
|
+
* Get the estimated transaction fee of the refund transaction
|
|
60
|
+
*/
|
|
61
|
+
getRefundFee(swapData: EVMSwapData, feeRate?: string): Promise<bigint>;
|
|
62
|
+
}
|
|
@@ -1,167 +1,167 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EVMSwapRefund = void 0;
|
|
4
|
-
const base_1 = require("@atomiqlabs/base");
|
|
5
|
-
const Utils_1 = require("../../../utils/Utils");
|
|
6
|
-
const EVMSwapModule_1 = require("../EVMSwapModule");
|
|
7
|
-
const EVMFees_1 = require("../../chain/modules/EVMFees");
|
|
8
|
-
const Refund = [
|
|
9
|
-
{ name: "swapHash", type: "bytes32" },
|
|
10
|
-
{ name: "timeout", type: "uint256" }
|
|
11
|
-
];
|
|
12
|
-
class EVMSwapRefund extends EVMSwapModule_1.EVMSwapModule {
|
|
13
|
-
/**
|
|
14
|
-
* Action for generic Refund instruction
|
|
15
|
-
*
|
|
16
|
-
* @param signer
|
|
17
|
-
* @param swapData
|
|
18
|
-
* @param witness
|
|
19
|
-
* @param feeRate
|
|
20
|
-
* @param handlerGas
|
|
21
|
-
* @private
|
|
22
|
-
*/
|
|
23
|
-
async Refund(signer, swapData, witness, feeRate, handlerGas) {
|
|
24
|
-
const tx = await this.swapContract.refund.populateTransaction(swapData.toEscrowStruct(), witness);
|
|
25
|
-
tx.from = signer;
|
|
26
|
-
EVMFees_1.EVMFees.applyFeeRate(tx, this.getRefundGas(swapData) + (handlerGas ?? 0), feeRate);
|
|
27
|
-
return tx;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Action for cooperative refunding with signature
|
|
31
|
-
*
|
|
32
|
-
* @param sender
|
|
33
|
-
* @param swapData
|
|
34
|
-
* @param timeout
|
|
35
|
-
* @param signature
|
|
36
|
-
* @param feeRate
|
|
37
|
-
* @private
|
|
38
|
-
*/
|
|
39
|
-
async RefundWithSignature(sender, swapData, timeout, signature, feeRate) {
|
|
40
|
-
const tx = await this.swapContract.cooperativeRefund.populateTransaction(swapData.toEscrowStruct(), signature, BigInt(timeout));
|
|
41
|
-
tx.from = sender;
|
|
42
|
-
EVMFees_1.EVMFees.applyFeeRate(tx, this.getRefundGas(swapData), feeRate);
|
|
43
|
-
return tx;
|
|
44
|
-
}
|
|
45
|
-
async signSwapRefund(signer, swapData, authorizationTimeout) {
|
|
46
|
-
const authPrefix = "refund";
|
|
47
|
-
const authTimeout = Math.floor(Date.now() / 1000) + authorizationTimeout;
|
|
48
|
-
const signature = await this.root.Signatures.signTypedMessage(this.contract.contractAddress, signer, Refund, "Refund", {
|
|
49
|
-
"swapHash": "0x" + swapData.getEscrowHash(),
|
|
50
|
-
"timeout": BigInt(authTimeout)
|
|
51
|
-
});
|
|
52
|
-
return {
|
|
53
|
-
prefix: authPrefix,
|
|
54
|
-
timeout: authTimeout.toString(10),
|
|
55
|
-
signature: signature
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
async isSignatureValid(swapData, timeout, prefix, signature) {
|
|
59
|
-
if (prefix !== "refund")
|
|
60
|
-
throw new base_1.SignatureVerificationError("Invalid prefix");
|
|
61
|
-
const expiryTimestamp = BigInt(timeout);
|
|
62
|
-
const currentTimestamp = BigInt(Math.floor(Date.now() / 1000));
|
|
63
|
-
const isExpired = (expiryTimestamp - currentTimestamp) < BigInt(this.contract.authGracePeriod);
|
|
64
|
-
if (isExpired)
|
|
65
|
-
throw new base_1.SignatureVerificationError("Authorization expired!");
|
|
66
|
-
const valid = await this.root.Signatures.isValidSignature(this.contract.contractAddress, signature, swapData.claimer, Refund, "Refund", {
|
|
67
|
-
"swapHash": "0x" + swapData.getEscrowHash(),
|
|
68
|
-
"timeout": BigInt(expiryTimestamp)
|
|
69
|
-
});
|
|
70
|
-
if (!valid) {
|
|
71
|
-
throw new base_1.SignatureVerificationError("Invalid signature!");
|
|
72
|
-
}
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Creates transactions required for refunding timed out swap
|
|
77
|
-
*
|
|
78
|
-
* @param signer
|
|
79
|
-
* @param swapData swap data to refund
|
|
80
|
-
* @param check whether to check if swap is already expired and refundable
|
|
81
|
-
* @param feeRate fee rate to be used for the transactions
|
|
82
|
-
* @param witnessData
|
|
83
|
-
*/
|
|
84
|
-
async txsRefund(signer, swapData, check, feeRate, witnessData) {
|
|
85
|
-
const refundHandler = this.contract.refundHandlersByAddress[swapData.refundHandler.toLowerCase()];
|
|
86
|
-
if (refundHandler == null)
|
|
87
|
-
throw new Error("Invalid refund handler");
|
|
88
|
-
if (check && !await (0, Utils_1.tryWithRetries)(() => this.contract.isRequestRefundable(swapData.offerer.toString(), swapData), this.retryPolicy)) {
|
|
89
|
-
throw new base_1.SwapDataVerificationError("Not refundable yet!");
|
|
90
|
-
}
|
|
91
|
-
feeRate ?? (feeRate = await this.root.Fees.getFeeRate());
|
|
92
|
-
const { initialTxns, witness } = await refundHandler.getWitness(signer, swapData, witnessData, feeRate);
|
|
93
|
-
const tx = await this.Refund(signer, swapData, witness, feeRate, refundHandler.getGas(swapData));
|
|
94
|
-
this.logger.debug("txsRefund(): creating refund transaction, swap: " + swapData.getClaimHash());
|
|
95
|
-
return [...initialTxns, tx];
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Creates transactions required for refunding the swap with authorization signature, also unwraps WSOL to SOL
|
|
99
|
-
*
|
|
100
|
-
* @param signer
|
|
101
|
-
* @param swapData swap data to refund
|
|
102
|
-
* @param timeout signature timeout
|
|
103
|
-
* @param prefix signature prefix of the counterparty
|
|
104
|
-
* @param signature signature of the counterparty
|
|
105
|
-
* @param check whether to check if swap is committed before attempting refund
|
|
106
|
-
* @param feeRate fee rate to be used for the transactions
|
|
107
|
-
*/
|
|
108
|
-
async txsRefundWithAuthorization(signer, swapData, timeout, prefix, signature, check, feeRate) {
|
|
109
|
-
if (check && !await (0, Utils_1.tryWithRetries)(() => this.contract.isCommited(swapData), this.retryPolicy)) {
|
|
110
|
-
throw new base_1.SwapDataVerificationError("Not correctly committed");
|
|
111
|
-
}
|
|
112
|
-
await (0, Utils_1.tryWithRetries)(() => this.isSignatureValid(swapData, timeout, prefix, signature), this.retryPolicy, (e) => e instanceof base_1.SignatureVerificationError);
|
|
113
|
-
feeRate ?? (feeRate = await this.root.Fees.getFeeRate());
|
|
114
|
-
const tx = await this.RefundWithSignature(signer, swapData, timeout, signature, feeRate);
|
|
115
|
-
this.logger.debug("txsRefundWithAuthorization(): creating refund transaction, swap: " + swapData.getClaimHash() +
|
|
116
|
-
" auth expiry: " + timeout + " signature: " + signature);
|
|
117
|
-
return [tx];
|
|
118
|
-
}
|
|
119
|
-
getRefundGas(swapData) {
|
|
120
|
-
let totalGas = EVMSwapRefund.GasCosts.BASE;
|
|
121
|
-
if (swapData.reputation)
|
|
122
|
-
totalGas += EVMSwapRefund.GasCosts.REPUTATION;
|
|
123
|
-
if (swapData.isPayIn()) {
|
|
124
|
-
if (swapData.isToken(this.root.getNativeCurrencyAddress())) {
|
|
125
|
-
totalGas += EVMSwapRefund.GasCosts.NATIVE_TRANSFER;
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
totalGas += EVMSwapRefund.GasCosts.ERC20_TRANSFER;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
totalGas += EVMSwapRefund.GasCosts.LP_VAULT_TRANSFER;
|
|
133
|
-
}
|
|
134
|
-
if (swapData.getSecurityDeposit() > 0n) {
|
|
135
|
-
if (swapData.isDepositToken(this.root.getNativeCurrencyAddress())) {
|
|
136
|
-
totalGas += EVMSwapRefund.GasCosts.NATIVE_TRANSFER;
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
totalGas += EVMSwapRefund.GasCosts.ERC20_TRANSFER;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
if (swapData.getClaimerBounty() > swapData.getSecurityDeposit()) {
|
|
143
|
-
if (swapData.isDepositToken(this.root.getNativeCurrencyAddress())) {
|
|
144
|
-
totalGas += EVMSwapRefund.GasCosts.NATIVE_TRANSFER;
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
totalGas += EVMSwapRefund.GasCosts.ERC20_TRANSFER;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return totalGas;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Get the estimated transaction fee of the refund transaction
|
|
154
|
-
*/
|
|
155
|
-
async getRefundFee(swapData, feeRate) {
|
|
156
|
-
feeRate ?? (feeRate = await this.root.Fees.getFeeRate());
|
|
157
|
-
return EVMFees_1.EVMFees.getGasFee(this.getRefundGas(swapData), feeRate);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
exports.EVMSwapRefund = EVMSwapRefund;
|
|
161
|
-
EVMSwapRefund.GasCosts = {
|
|
162
|
-
BASE: 35000 + 21000,
|
|
163
|
-
ERC20_TRANSFER: 40000,
|
|
164
|
-
NATIVE_TRANSFER: 35500,
|
|
165
|
-
LP_VAULT_TRANSFER: 10000,
|
|
166
|
-
REPUTATION: 25000
|
|
167
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EVMSwapRefund = void 0;
|
|
4
|
+
const base_1 = require("@atomiqlabs/base");
|
|
5
|
+
const Utils_1 = require("../../../utils/Utils");
|
|
6
|
+
const EVMSwapModule_1 = require("../EVMSwapModule");
|
|
7
|
+
const EVMFees_1 = require("../../chain/modules/EVMFees");
|
|
8
|
+
const Refund = [
|
|
9
|
+
{ name: "swapHash", type: "bytes32" },
|
|
10
|
+
{ name: "timeout", type: "uint256" }
|
|
11
|
+
];
|
|
12
|
+
class EVMSwapRefund extends EVMSwapModule_1.EVMSwapModule {
|
|
13
|
+
/**
|
|
14
|
+
* Action for generic Refund instruction
|
|
15
|
+
*
|
|
16
|
+
* @param signer
|
|
17
|
+
* @param swapData
|
|
18
|
+
* @param witness
|
|
19
|
+
* @param feeRate
|
|
20
|
+
* @param handlerGas
|
|
21
|
+
* @private
|
|
22
|
+
*/
|
|
23
|
+
async Refund(signer, swapData, witness, feeRate, handlerGas) {
|
|
24
|
+
const tx = await this.swapContract.refund.populateTransaction(swapData.toEscrowStruct(), witness);
|
|
25
|
+
tx.from = signer;
|
|
26
|
+
EVMFees_1.EVMFees.applyFeeRate(tx, this.getRefundGas(swapData) + (handlerGas ?? 0), feeRate);
|
|
27
|
+
return tx;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Action for cooperative refunding with signature
|
|
31
|
+
*
|
|
32
|
+
* @param sender
|
|
33
|
+
* @param swapData
|
|
34
|
+
* @param timeout
|
|
35
|
+
* @param signature
|
|
36
|
+
* @param feeRate
|
|
37
|
+
* @private
|
|
38
|
+
*/
|
|
39
|
+
async RefundWithSignature(sender, swapData, timeout, signature, feeRate) {
|
|
40
|
+
const tx = await this.swapContract.cooperativeRefund.populateTransaction(swapData.toEscrowStruct(), signature, BigInt(timeout));
|
|
41
|
+
tx.from = sender;
|
|
42
|
+
EVMFees_1.EVMFees.applyFeeRate(tx, this.getRefundGas(swapData), feeRate);
|
|
43
|
+
return tx;
|
|
44
|
+
}
|
|
45
|
+
async signSwapRefund(signer, swapData, authorizationTimeout) {
|
|
46
|
+
const authPrefix = "refund";
|
|
47
|
+
const authTimeout = Math.floor(Date.now() / 1000) + authorizationTimeout;
|
|
48
|
+
const signature = await this.root.Signatures.signTypedMessage(this.contract.contractAddress, signer, Refund, "Refund", {
|
|
49
|
+
"swapHash": "0x" + swapData.getEscrowHash(),
|
|
50
|
+
"timeout": BigInt(authTimeout)
|
|
51
|
+
});
|
|
52
|
+
return {
|
|
53
|
+
prefix: authPrefix,
|
|
54
|
+
timeout: authTimeout.toString(10),
|
|
55
|
+
signature: signature
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
async isSignatureValid(swapData, timeout, prefix, signature) {
|
|
59
|
+
if (prefix !== "refund")
|
|
60
|
+
throw new base_1.SignatureVerificationError("Invalid prefix");
|
|
61
|
+
const expiryTimestamp = BigInt(timeout);
|
|
62
|
+
const currentTimestamp = BigInt(Math.floor(Date.now() / 1000));
|
|
63
|
+
const isExpired = (expiryTimestamp - currentTimestamp) < BigInt(this.contract.authGracePeriod);
|
|
64
|
+
if (isExpired)
|
|
65
|
+
throw new base_1.SignatureVerificationError("Authorization expired!");
|
|
66
|
+
const valid = await this.root.Signatures.isValidSignature(this.contract.contractAddress, signature, swapData.claimer, Refund, "Refund", {
|
|
67
|
+
"swapHash": "0x" + swapData.getEscrowHash(),
|
|
68
|
+
"timeout": BigInt(expiryTimestamp)
|
|
69
|
+
});
|
|
70
|
+
if (!valid) {
|
|
71
|
+
throw new base_1.SignatureVerificationError("Invalid signature!");
|
|
72
|
+
}
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Creates transactions required for refunding timed out swap
|
|
77
|
+
*
|
|
78
|
+
* @param signer
|
|
79
|
+
* @param swapData swap data to refund
|
|
80
|
+
* @param check whether to check if swap is already expired and refundable
|
|
81
|
+
* @param feeRate fee rate to be used for the transactions
|
|
82
|
+
* @param witnessData
|
|
83
|
+
*/
|
|
84
|
+
async txsRefund(signer, swapData, check, feeRate, witnessData) {
|
|
85
|
+
const refundHandler = this.contract.refundHandlersByAddress[swapData.refundHandler.toLowerCase()];
|
|
86
|
+
if (refundHandler == null)
|
|
87
|
+
throw new Error("Invalid refund handler");
|
|
88
|
+
if (check && !await (0, Utils_1.tryWithRetries)(() => this.contract.isRequestRefundable(swapData.offerer.toString(), swapData), this.retryPolicy)) {
|
|
89
|
+
throw new base_1.SwapDataVerificationError("Not refundable yet!");
|
|
90
|
+
}
|
|
91
|
+
feeRate ?? (feeRate = await this.root.Fees.getFeeRate());
|
|
92
|
+
const { initialTxns, witness } = await refundHandler.getWitness(signer, swapData, witnessData, feeRate);
|
|
93
|
+
const tx = await this.Refund(signer, swapData, witness, feeRate, refundHandler.getGas(swapData));
|
|
94
|
+
this.logger.debug("txsRefund(): creating refund transaction, swap: " + swapData.getClaimHash());
|
|
95
|
+
return [...initialTxns, tx];
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Creates transactions required for refunding the swap with authorization signature, also unwraps WSOL to SOL
|
|
99
|
+
*
|
|
100
|
+
* @param signer
|
|
101
|
+
* @param swapData swap data to refund
|
|
102
|
+
* @param timeout signature timeout
|
|
103
|
+
* @param prefix signature prefix of the counterparty
|
|
104
|
+
* @param signature signature of the counterparty
|
|
105
|
+
* @param check whether to check if swap is committed before attempting refund
|
|
106
|
+
* @param feeRate fee rate to be used for the transactions
|
|
107
|
+
*/
|
|
108
|
+
async txsRefundWithAuthorization(signer, swapData, timeout, prefix, signature, check, feeRate) {
|
|
109
|
+
if (check && !await (0, Utils_1.tryWithRetries)(() => this.contract.isCommited(swapData), this.retryPolicy)) {
|
|
110
|
+
throw new base_1.SwapDataVerificationError("Not correctly committed");
|
|
111
|
+
}
|
|
112
|
+
await (0, Utils_1.tryWithRetries)(() => this.isSignatureValid(swapData, timeout, prefix, signature), this.retryPolicy, (e) => e instanceof base_1.SignatureVerificationError);
|
|
113
|
+
feeRate ?? (feeRate = await this.root.Fees.getFeeRate());
|
|
114
|
+
const tx = await this.RefundWithSignature(signer, swapData, timeout, signature, feeRate);
|
|
115
|
+
this.logger.debug("txsRefundWithAuthorization(): creating refund transaction, swap: " + swapData.getClaimHash() +
|
|
116
|
+
" auth expiry: " + timeout + " signature: " + signature);
|
|
117
|
+
return [tx];
|
|
118
|
+
}
|
|
119
|
+
getRefundGas(swapData) {
|
|
120
|
+
let totalGas = EVMSwapRefund.GasCosts.BASE;
|
|
121
|
+
if (swapData.reputation)
|
|
122
|
+
totalGas += EVMSwapRefund.GasCosts.REPUTATION;
|
|
123
|
+
if (swapData.isPayIn()) {
|
|
124
|
+
if (swapData.isToken(this.root.getNativeCurrencyAddress())) {
|
|
125
|
+
totalGas += EVMSwapRefund.GasCosts.NATIVE_TRANSFER;
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
totalGas += EVMSwapRefund.GasCosts.ERC20_TRANSFER;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
totalGas += EVMSwapRefund.GasCosts.LP_VAULT_TRANSFER;
|
|
133
|
+
}
|
|
134
|
+
if (swapData.getSecurityDeposit() > 0n) {
|
|
135
|
+
if (swapData.isDepositToken(this.root.getNativeCurrencyAddress())) {
|
|
136
|
+
totalGas += EVMSwapRefund.GasCosts.NATIVE_TRANSFER;
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
totalGas += EVMSwapRefund.GasCosts.ERC20_TRANSFER;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
if (swapData.getClaimerBounty() > swapData.getSecurityDeposit()) {
|
|
143
|
+
if (swapData.isDepositToken(this.root.getNativeCurrencyAddress())) {
|
|
144
|
+
totalGas += EVMSwapRefund.GasCosts.NATIVE_TRANSFER;
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
totalGas += EVMSwapRefund.GasCosts.ERC20_TRANSFER;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return totalGas;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Get the estimated transaction fee of the refund transaction
|
|
154
|
+
*/
|
|
155
|
+
async getRefundFee(swapData, feeRate) {
|
|
156
|
+
feeRate ?? (feeRate = await this.root.Fees.getFeeRate());
|
|
157
|
+
return EVMFees_1.EVMFees.getGasFee(this.getRefundGas(swapData), feeRate);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
exports.EVMSwapRefund = EVMSwapRefund;
|
|
161
|
+
EVMSwapRefund.GasCosts = {
|
|
162
|
+
BASE: 35000 + 21000,
|
|
163
|
+
ERC20_TRANSFER: 40000,
|
|
164
|
+
NATIVE_TRANSFER: 35500,
|
|
165
|
+
LP_VAULT_TRANSFER: 10000,
|
|
166
|
+
REPUTATION: 25000
|
|
167
|
+
};
|
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
import type { FunctionFragment, Typed, EventFragment, ContractTransaction, ContractTransactionResponse, DeferredTopicFilter, EventLog, TransactionRequest, LogDescription } from "ethers";
|
|
2
|
-
export interface TypedDeferredTopicFilter<_TCEvent extends TypedContractEvent> extends DeferredTopicFilter {
|
|
3
|
-
}
|
|
4
|
-
export interface TypedContractEvent<InputTuple extends Array<any> = any, OutputTuple extends Array<any> = any, OutputObject = any> {
|
|
5
|
-
(...args: Partial<InputTuple>): TypedDeferredTopicFilter<TypedContractEvent<InputTuple, OutputTuple, OutputObject>>;
|
|
6
|
-
name: string;
|
|
7
|
-
fragment: EventFragment;
|
|
8
|
-
getFragment(...args: Partial<InputTuple>): EventFragment;
|
|
9
|
-
}
|
|
10
|
-
type __TypechainAOutputTuple<T> = T extends TypedContractEvent<infer _U, infer W> ? W : never;
|
|
11
|
-
type __TypechainOutputObject<T> = T extends TypedContractEvent<infer _U, infer _W, infer V> ? V : never;
|
|
12
|
-
export interface TypedEventLog<TCEvent extends TypedContractEvent> extends Omit<EventLog, "args"> {
|
|
13
|
-
args: __TypechainAOutputTuple<TCEvent> & __TypechainOutputObject<TCEvent>;
|
|
14
|
-
}
|
|
15
|
-
export interface TypedLogDescription<TCEvent extends TypedContractEvent> extends Omit<LogDescription, "args"> {
|
|
16
|
-
args: __TypechainAOutputTuple<TCEvent> & __TypechainOutputObject<TCEvent>;
|
|
17
|
-
}
|
|
18
|
-
export type TypedListener<TCEvent extends TypedContractEvent> = (...listenerArg: [
|
|
19
|
-
...__TypechainAOutputTuple<TCEvent>,
|
|
20
|
-
TypedEventLog<TCEvent>,
|
|
21
|
-
...undefined[]
|
|
22
|
-
]) => void;
|
|
23
|
-
export type MinEthersFactory<C, ARGS> = {
|
|
24
|
-
deploy(...a: ARGS[]): Promise<C>;
|
|
25
|
-
};
|
|
26
|
-
export type GetContractTypeFromFactory<F> = F extends MinEthersFactory<infer C, any> ? C : never;
|
|
27
|
-
export type GetARGsTypeFromFactory<F> = F extends MinEthersFactory<any, any> ? Parameters<F["deploy"]> : never;
|
|
28
|
-
export type StateMutability = "nonpayable" | "payable" | "view";
|
|
29
|
-
export type BaseOverrides = Omit<TransactionRequest, "to" | "data">;
|
|
30
|
-
export type NonPayableOverrides = Omit<BaseOverrides, "value" | "blockTag" | "enableCcipRead">;
|
|
31
|
-
export type PayableOverrides = Omit<BaseOverrides, "blockTag" | "enableCcipRead">;
|
|
32
|
-
export type ViewOverrides = Omit<TransactionRequest, "to" | "data">;
|
|
33
|
-
export type Overrides<S extends StateMutability> = S extends "nonpayable" ? NonPayableOverrides : S extends "payable" ? PayableOverrides : ViewOverrides;
|
|
34
|
-
export type PostfixOverrides<A extends Array<any>, S extends StateMutability> = A | [...A, Overrides<S>];
|
|
35
|
-
export type ContractMethodArgs<A extends Array<any>, S extends StateMutability> = PostfixOverrides<{
|
|
36
|
-
[I in keyof A]-?: A[I] | Typed;
|
|
37
|
-
}, S>;
|
|
38
|
-
export type DefaultReturnType<R> = R extends Array<any> ? R[0] : R;
|
|
39
|
-
export interface TypedContractMethod<A extends Array<any> = Array<any>, R = any, S extends StateMutability = "payable"> {
|
|
40
|
-
(...args: ContractMethodArgs<A, S>): S extends "view" ? Promise<DefaultReturnType<R>> : Promise<ContractTransactionResponse>;
|
|
41
|
-
name: string;
|
|
42
|
-
fragment: FunctionFragment;
|
|
43
|
-
getFragment(...args: ContractMethodArgs<A, S>): FunctionFragment;
|
|
44
|
-
populateTransaction(...args: ContractMethodArgs<A, S>): Promise<ContractTransaction>;
|
|
45
|
-
staticCall(...args: ContractMethodArgs<A, "view">): Promise<DefaultReturnType<R>>;
|
|
46
|
-
send(...args: ContractMethodArgs<A, S>): Promise<ContractTransactionResponse>;
|
|
47
|
-
estimateGas(...args: ContractMethodArgs<A, S>): Promise<bigint>;
|
|
48
|
-
staticCallResult(...args: ContractMethodArgs<A, "view">): Promise<R>;
|
|
49
|
-
}
|
|
50
|
-
export {};
|
|
1
|
+
import type { FunctionFragment, Typed, EventFragment, ContractTransaction, ContractTransactionResponse, DeferredTopicFilter, EventLog, TransactionRequest, LogDescription } from "ethers";
|
|
2
|
+
export interface TypedDeferredTopicFilter<_TCEvent extends TypedContractEvent> extends DeferredTopicFilter {
|
|
3
|
+
}
|
|
4
|
+
export interface TypedContractEvent<InputTuple extends Array<any> = any, OutputTuple extends Array<any> = any, OutputObject = any> {
|
|
5
|
+
(...args: Partial<InputTuple>): TypedDeferredTopicFilter<TypedContractEvent<InputTuple, OutputTuple, OutputObject>>;
|
|
6
|
+
name: string;
|
|
7
|
+
fragment: EventFragment;
|
|
8
|
+
getFragment(...args: Partial<InputTuple>): EventFragment;
|
|
9
|
+
}
|
|
10
|
+
type __TypechainAOutputTuple<T> = T extends TypedContractEvent<infer _U, infer W> ? W : never;
|
|
11
|
+
type __TypechainOutputObject<T> = T extends TypedContractEvent<infer _U, infer _W, infer V> ? V : never;
|
|
12
|
+
export interface TypedEventLog<TCEvent extends TypedContractEvent> extends Omit<EventLog, "args"> {
|
|
13
|
+
args: __TypechainAOutputTuple<TCEvent> & __TypechainOutputObject<TCEvent>;
|
|
14
|
+
}
|
|
15
|
+
export interface TypedLogDescription<TCEvent extends TypedContractEvent> extends Omit<LogDescription, "args"> {
|
|
16
|
+
args: __TypechainAOutputTuple<TCEvent> & __TypechainOutputObject<TCEvent>;
|
|
17
|
+
}
|
|
18
|
+
export type TypedListener<TCEvent extends TypedContractEvent> = (...listenerArg: [
|
|
19
|
+
...__TypechainAOutputTuple<TCEvent>,
|
|
20
|
+
TypedEventLog<TCEvent>,
|
|
21
|
+
...undefined[]
|
|
22
|
+
]) => void;
|
|
23
|
+
export type MinEthersFactory<C, ARGS> = {
|
|
24
|
+
deploy(...a: ARGS[]): Promise<C>;
|
|
25
|
+
};
|
|
26
|
+
export type GetContractTypeFromFactory<F> = F extends MinEthersFactory<infer C, any> ? C : never;
|
|
27
|
+
export type GetARGsTypeFromFactory<F> = F extends MinEthersFactory<any, any> ? Parameters<F["deploy"]> : never;
|
|
28
|
+
export type StateMutability = "nonpayable" | "payable" | "view";
|
|
29
|
+
export type BaseOverrides = Omit<TransactionRequest, "to" | "data">;
|
|
30
|
+
export type NonPayableOverrides = Omit<BaseOverrides, "value" | "blockTag" | "enableCcipRead">;
|
|
31
|
+
export type PayableOverrides = Omit<BaseOverrides, "blockTag" | "enableCcipRead">;
|
|
32
|
+
export type ViewOverrides = Omit<TransactionRequest, "to" | "data">;
|
|
33
|
+
export type Overrides<S extends StateMutability> = S extends "nonpayable" ? NonPayableOverrides : S extends "payable" ? PayableOverrides : ViewOverrides;
|
|
34
|
+
export type PostfixOverrides<A extends Array<any>, S extends StateMutability> = A | [...A, Overrides<S>];
|
|
35
|
+
export type ContractMethodArgs<A extends Array<any>, S extends StateMutability> = PostfixOverrides<{
|
|
36
|
+
[I in keyof A]-?: A[I] | Typed;
|
|
37
|
+
}, S>;
|
|
38
|
+
export type DefaultReturnType<R> = R extends Array<any> ? R[0] : R;
|
|
39
|
+
export interface TypedContractMethod<A extends Array<any> = Array<any>, R = any, S extends StateMutability = "payable"> {
|
|
40
|
+
(...args: ContractMethodArgs<A, S>): S extends "view" ? Promise<DefaultReturnType<R>> : Promise<ContractTransactionResponse>;
|
|
41
|
+
name: string;
|
|
42
|
+
fragment: FunctionFragment;
|
|
43
|
+
getFragment(...args: ContractMethodArgs<A, S>): FunctionFragment;
|
|
44
|
+
populateTransaction(...args: ContractMethodArgs<A, S>): Promise<ContractTransaction>;
|
|
45
|
+
staticCall(...args: ContractMethodArgs<A, "view">): Promise<DefaultReturnType<R>>;
|
|
46
|
+
send(...args: ContractMethodArgs<A, S>): Promise<ContractTransactionResponse>;
|
|
47
|
+
estimateGas(...args: ContractMethodArgs<A, S>): Promise<bigint>;
|
|
48
|
+
staticCallResult(...args: ContractMethodArgs<A, "view">): Promise<R>;
|
|
49
|
+
}
|
|
50
|
+
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Signer } from "ethers";
|
|
2
|
-
import { EVMSigner } from "./EVMSigner";
|
|
3
|
-
export declare class EVMBrowserSigner extends EVMSigner {
|
|
4
|
-
constructor(account: Signer, address: string);
|
|
5
|
-
}
|
|
1
|
+
import { Signer } from "ethers";
|
|
2
|
+
import { EVMSigner } from "./EVMSigner";
|
|
3
|
+
export declare class EVMBrowserSigner extends EVMSigner {
|
|
4
|
+
constructor(account: Signer, address: string);
|
|
5
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EVMBrowserSigner = void 0;
|
|
4
|
-
const EVMSigner_1 = require("./EVMSigner");
|
|
5
|
-
class EVMBrowserSigner extends EVMSigner_1.EVMSigner {
|
|
6
|
-
constructor(account, address) {
|
|
7
|
-
super(account, address, false);
|
|
8
|
-
this.signTransaction = null;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
exports.EVMBrowserSigner = EVMBrowserSigner;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EVMBrowserSigner = void 0;
|
|
4
|
+
const EVMSigner_1 = require("./EVMSigner");
|
|
5
|
+
class EVMBrowserSigner extends EVMSigner_1.EVMSigner {
|
|
6
|
+
constructor(account, address) {
|
|
7
|
+
super(account, address, false);
|
|
8
|
+
this.signTransaction = null;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.EVMBrowserSigner = EVMBrowserSigner;
|