@vetro-protocol/gateway 1.3.0 → 1.3.1
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/_esm/actions/index.js +49 -21
- package/_esm/actions/index.js.map +7 -1
- package/_esm/chunk-ZE4YZMXK.js +1326 -0
- package/_esm/chunk-ZE4YZMXK.js.map +7 -0
- package/_esm/index.js +57 -31
- package/_esm/index.js.map +7 -1
- package/_types/actions/index.d.ts +18 -18
- package/_types/actions/public/getGateway.d.ts.map +1 -1
- package/_types/actions/public/getMaxMint.d.ts.map +1 -1
- package/_types/actions/public/getMaxWithdraw.d.ts.map +1 -1
- package/_types/actions/public/getMintFee.d.ts.map +1 -1
- package/_types/actions/public/getPeggedToken.d.ts.map +1 -1
- package/_types/actions/public/getRedeemFee.d.ts.map +1 -1
- package/_types/actions/public/getRedeemRequest.d.ts.map +1 -1
- package/_types/actions/public/getTreasury.d.ts.map +1 -1
- package/_types/actions/public/getWithdrawalDelay.d.ts.map +1 -1
- package/_types/actions/public/getWithdrawalDelayEnabled.d.ts.map +1 -1
- package/_types/actions/public/index.d.ts +14 -14
- package/_types/actions/public/isInstantRedeemWhitelisted.d.ts.map +1 -1
- package/_types/actions/public/previewDeposit.d.ts.map +1 -1
- package/_types/actions/public/previewRedeem.d.ts.map +1 -1
- package/_types/actions/public/previewWithdraw.d.ts.map +1 -1
- package/_types/actions/wallet/cancelRedeemRequest.d.ts +1 -1
- package/_types/actions/wallet/deposit.d.ts +1 -1
- package/_types/actions/wallet/redeem.d.ts +1 -1
- package/_types/actions/wallet/requestRedeem.d.ts +1 -1
- package/_types/gatewayAddresses.d.ts.map +1 -1
- package/_types/index.d.ts +12 -12
- package/package.json +7 -5
- package/src/actions/index.ts +18 -18
- package/src/actions/public/getGateway.ts +2 -2
- package/src/actions/public/getMaxMint.ts +2 -2
- package/src/actions/public/getMaxWithdraw.ts +2 -2
- package/src/actions/public/getMintFee.ts +2 -2
- package/src/actions/public/getPeggedToken.ts +2 -2
- package/src/actions/public/getRedeemFee.ts +2 -2
- package/src/actions/public/getRedeemRequest.ts +2 -2
- package/src/actions/public/getTreasury.ts +2 -2
- package/src/actions/public/getWithdrawalDelay.ts +2 -2
- package/src/actions/public/getWithdrawalDelayEnabled.ts +2 -2
- package/src/actions/public/index.ts +14 -14
- package/src/actions/public/isInstantRedeemWhitelisted.ts +2 -2
- package/src/actions/public/previewDeposit.ts +2 -2
- package/src/actions/public/previewRedeem.ts +2 -2
- package/src/actions/public/previewWithdraw.ts +2 -2
- package/src/actions/wallet/cancelRedeemRequest.ts +2 -2
- package/src/actions/wallet/deposit.ts +2 -2
- package/src/actions/wallet/redeem.ts +6 -6
- package/src/actions/wallet/requestRedeem.ts +3 -3
- package/src/gatewayAddresses.ts +6 -17
- package/src/index.ts +8 -8
- package/_esm/abi/gatewayAbi.js +0 -223
- package/_esm/abi/gatewayAbi.js.map +0 -1
- package/_esm/abi/peggedTokenAbi.js +0 -10
- package/_esm/abi/peggedTokenAbi.js.map +0 -1
- package/_esm/actions/public/getGateway.js +0 -30
- package/_esm/actions/public/getGateway.js.map +0 -1
- package/_esm/actions/public/getMaxMint.js +0 -23
- package/_esm/actions/public/getMaxMint.js.map +0 -1
- package/_esm/actions/public/getMaxWithdraw.js +0 -28
- package/_esm/actions/public/getMaxWithdraw.js.map +0 -1
- package/_esm/actions/public/getMintFee.js +0 -28
- package/_esm/actions/public/getMintFee.js.map +0 -1
- package/_esm/actions/public/getPeggedToken.js +0 -23
- package/_esm/actions/public/getPeggedToken.js.map +0 -1
- package/_esm/actions/public/getRedeemFee.js +0 -28
- package/_esm/actions/public/getRedeemFee.js.map +0 -1
- package/_esm/actions/public/getRedeemRequest.js +0 -28
- package/_esm/actions/public/getRedeemRequest.js.map +0 -1
- package/_esm/actions/public/getTreasury.js +0 -23
- package/_esm/actions/public/getTreasury.js.map +0 -1
- package/_esm/actions/public/getWithdrawalDelay.js +0 -23
- package/_esm/actions/public/getWithdrawalDelay.js.map +0 -1
- package/_esm/actions/public/getWithdrawalDelayEnabled.js +0 -23
- package/_esm/actions/public/getWithdrawalDelayEnabled.js.map +0 -1
- package/_esm/actions/public/index.js +0 -15
- package/_esm/actions/public/index.js.map +0 -1
- package/_esm/actions/public/isInstantRedeemWhitelisted.js +0 -28
- package/_esm/actions/public/isInstantRedeemWhitelisted.js.map +0 -1
- package/_esm/actions/public/previewDeposit.js +0 -35
- package/_esm/actions/public/previewDeposit.js.map +0 -1
- package/_esm/actions/public/previewRedeem.js +0 -35
- package/_esm/actions/public/previewRedeem.js.map +0 -1
- package/_esm/actions/public/previewWithdraw.js +0 -35
- package/_esm/actions/public/previewWithdraw.js.map +0 -1
- package/_esm/actions/wallet/cancelRedeemRequest.js +0 -89
- package/_esm/actions/wallet/cancelRedeemRequest.js.map +0 -1
- package/_esm/actions/wallet/deposit.js +0 -193
- package/_esm/actions/wallet/deposit.js.map +0 -1
- package/_esm/actions/wallet/redeem.js +0 -226
- package/_esm/actions/wallet/redeem.js.map +0 -1
- package/_esm/actions/wallet/requestRedeem.js +0 -153
- package/_esm/actions/wallet/requestRedeem.js.map +0 -1
- package/_esm/gatewayAddresses.js +0 -18
- package/_esm/gatewayAddresses.js.map +0 -1
- package/_esm/types.js +0 -2
- package/_esm/types.js.map +0 -1
- package/_esm/utils/isAddressValid.js +0 -3
- package/_esm/utils/isAddressValid.js.map +0 -1
- package/_types/utils/isAddressValid.d.ts +0 -3
- package/_types/utils/isAddressValid.d.ts.map +0 -1
- package/src/utils/isAddressValid.ts +0 -4
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
import { toPromiseEvent } from "to-promise-event";
|
|
2
|
-
import { encodeFunctionData, isAddress, isAddressEqual, zeroAddress, } from "viem";
|
|
3
|
-
import { waitForTransactionReceipt, writeContract } from "viem/actions";
|
|
4
|
-
import { allowance, approve } from "viem-erc20/actions";
|
|
5
|
-
import { gatewayAbi } from "../../abi/gatewayAbi.js";
|
|
6
|
-
const canDeposit = function ({ amountIn, approveAmount, client, gatewayAddress, minPeggedTokenOut, receiver, tokenIn, }) {
|
|
7
|
-
// Validate client
|
|
8
|
-
if (!client) {
|
|
9
|
-
return {
|
|
10
|
-
canDeposit: false,
|
|
11
|
-
reason: "Client is not defined",
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
if (!client.chain) {
|
|
15
|
-
return {
|
|
16
|
-
canDeposit: false,
|
|
17
|
-
reason: "Chain is not defined on wallet client",
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
// Validate client has required properties
|
|
21
|
-
if (!client.account) {
|
|
22
|
-
return {
|
|
23
|
-
canDeposit: false,
|
|
24
|
-
reason: "Client must have an account",
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
// Validate gateway address
|
|
28
|
-
if (!gatewayAddress || !isAddress(gatewayAddress)) {
|
|
29
|
-
return {
|
|
30
|
-
canDeposit: false,
|
|
31
|
-
reason: "Invalid gateway address",
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
if (isAddressEqual(gatewayAddress, zeroAddress)) {
|
|
35
|
-
return {
|
|
36
|
-
canDeposit: false,
|
|
37
|
-
reason: "Gateway address cannot be zero address",
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
// Validate tokenIn address
|
|
41
|
-
if (!tokenIn || !isAddress(tokenIn)) {
|
|
42
|
-
return {
|
|
43
|
-
canDeposit: false,
|
|
44
|
-
reason: "Invalid token address",
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
if (isAddressEqual(tokenIn, zeroAddress)) {
|
|
48
|
-
return {
|
|
49
|
-
canDeposit: false,
|
|
50
|
-
reason: "Token address cannot be zero address",
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
// Validate receiver address
|
|
54
|
-
if (!receiver || !isAddress(receiver)) {
|
|
55
|
-
return {
|
|
56
|
-
canDeposit: false,
|
|
57
|
-
reason: "Invalid receiver address",
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
if (isAddressEqual(receiver, zeroAddress)) {
|
|
61
|
-
return {
|
|
62
|
-
canDeposit: false,
|
|
63
|
-
reason: "Receiver address cannot be zero address",
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
// Validate amountIn
|
|
67
|
-
if (typeof amountIn !== "bigint") {
|
|
68
|
-
return {
|
|
69
|
-
canDeposit: false,
|
|
70
|
-
reason: "Amount must be a bigint",
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
if (amountIn <= 0n) {
|
|
74
|
-
return {
|
|
75
|
-
canDeposit: false,
|
|
76
|
-
reason: "Amount must be greater than 0",
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
// Validate minPeggedTokenOut
|
|
80
|
-
if (typeof minPeggedTokenOut !== "bigint") {
|
|
81
|
-
return {
|
|
82
|
-
canDeposit: false,
|
|
83
|
-
reason: "Minimum output must be a bigint",
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
if (minPeggedTokenOut < 0n) {
|
|
87
|
-
return {
|
|
88
|
-
canDeposit: false,
|
|
89
|
-
reason: "Minimum output cannot be negative",
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
// Validate approveAmount
|
|
93
|
-
if (approveAmount < amountIn) {
|
|
94
|
-
return {
|
|
95
|
-
canDeposit: false,
|
|
96
|
-
reason: "Approve amount must be greater than or equal to amount",
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
return { canDeposit: true };
|
|
100
|
-
};
|
|
101
|
-
const runDeposit = (walletClient, { amountIn, approveAmount = amountIn, gatewayAddress, minPeggedTokenOut, receiver, tokenIn, }) => async function (emitter) {
|
|
102
|
-
try {
|
|
103
|
-
const { canDeposit: canDepositFlag, reason } = canDeposit({
|
|
104
|
-
amountIn,
|
|
105
|
-
approveAmount,
|
|
106
|
-
client: walletClient,
|
|
107
|
-
gatewayAddress,
|
|
108
|
-
minPeggedTokenOut,
|
|
109
|
-
receiver,
|
|
110
|
-
tokenIn,
|
|
111
|
-
});
|
|
112
|
-
if (!canDepositFlag) {
|
|
113
|
-
emitter.emit("deposit-failed-validation", reason);
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
// Check current allowance
|
|
117
|
-
const currentAllowance = await allowance(walletClient, {
|
|
118
|
-
address: tokenIn,
|
|
119
|
-
// account is already validated
|
|
120
|
-
owner: walletClient.account.address,
|
|
121
|
-
spender: gatewayAddress,
|
|
122
|
-
});
|
|
123
|
-
// If allowance is insufficient, approve first
|
|
124
|
-
if (currentAllowance < amountIn) {
|
|
125
|
-
emitter.emit("pre-approve");
|
|
126
|
-
const approvalHash = await approve(walletClient, {
|
|
127
|
-
address: tokenIn,
|
|
128
|
-
amount: approveAmount,
|
|
129
|
-
spender: gatewayAddress,
|
|
130
|
-
}).catch(function (error) {
|
|
131
|
-
emitter.emit("user-signing-approval-error", error);
|
|
132
|
-
});
|
|
133
|
-
if (!approvalHash) {
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
emitter.emit("user-signed-approval", approvalHash);
|
|
137
|
-
const approvalReceipt = await waitForTransactionReceipt(walletClient, {
|
|
138
|
-
hash: approvalHash,
|
|
139
|
-
}).catch(function (error) {
|
|
140
|
-
emitter.emit("deposit-failed", error);
|
|
141
|
-
});
|
|
142
|
-
if (!approvalReceipt) {
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
if (approvalReceipt.status === "reverted") {
|
|
146
|
-
emitter.emit("approve-transaction-reverted", approvalReceipt);
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
emitter.emit("approve-transaction-succeeded", approvalReceipt);
|
|
150
|
-
}
|
|
151
|
-
emitter.emit("pre-deposit");
|
|
152
|
-
const depositHash = await writeContract(walletClient, {
|
|
153
|
-
abi: gatewayAbi,
|
|
154
|
-
account: walletClient.account,
|
|
155
|
-
address: gatewayAddress,
|
|
156
|
-
args: [tokenIn, amountIn, minPeggedTokenOut, receiver],
|
|
157
|
-
chain: walletClient.chain,
|
|
158
|
-
functionName: "deposit",
|
|
159
|
-
}).catch(function (error) {
|
|
160
|
-
emitter.emit("user-signing-deposit-error", error);
|
|
161
|
-
});
|
|
162
|
-
if (!depositHash) {
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
emitter.emit("user-signed-deposit", depositHash);
|
|
166
|
-
const depositReceipt = await waitForTransactionReceipt(walletClient, {
|
|
167
|
-
hash: depositHash,
|
|
168
|
-
}).catch(function (error) {
|
|
169
|
-
emitter.emit("deposit-failed", error);
|
|
170
|
-
});
|
|
171
|
-
if (!depositReceipt) {
|
|
172
|
-
return;
|
|
173
|
-
}
|
|
174
|
-
const depositEventMap = {
|
|
175
|
-
reverted: "deposit-transaction-reverted",
|
|
176
|
-
success: "deposit-transaction-succeeded",
|
|
177
|
-
};
|
|
178
|
-
emitter.emit(depositEventMap[depositReceipt.status], depositReceipt);
|
|
179
|
-
}
|
|
180
|
-
catch (error) {
|
|
181
|
-
emitter.emit("unexpected-error", error);
|
|
182
|
-
}
|
|
183
|
-
finally {
|
|
184
|
-
emitter.emit("deposit-settled");
|
|
185
|
-
}
|
|
186
|
-
};
|
|
187
|
-
export const deposit = (...args) => toPromiseEvent(runDeposit(...args));
|
|
188
|
-
export const encodeDeposit = ({ amountIn, minPeggedTokenOut, receiver, tokenIn, }) => encodeFunctionData({
|
|
189
|
-
abi: gatewayAbi,
|
|
190
|
-
args: [tokenIn, amountIn, minPeggedTokenOut, receiver],
|
|
191
|
-
functionName: "deposit",
|
|
192
|
-
});
|
|
193
|
-
//# sourceMappingURL=deposit.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deposit.js","sourceRoot":"","sources":["../../../src/actions/wallet/deposit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAIL,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,WAAW,GACZ,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAYrD,MAAM,UAAU,GAAG,UAAU,EAC3B,QAAQ,EACR,aAAa,EACb,MAAM,EACN,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,OAAO,GASR;IAIC,kBAAkB;IAClB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,uBAAuB;SAChC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,uCAAuC;SAChD,CAAC;IACJ,CAAC;IACD,0CAA0C;IAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,6BAA6B;SACtC,CAAC;IACJ,CAAC;IACD,2BAA2B;IAC3B,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;QAClD,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,yBAAyB;SAClC,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE,CAAC;QAChD,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,wCAAwC;SACjD,CAAC;IACJ,CAAC;IACD,2BAA2B;IAC3B,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,uBAAuB;SAChC,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC;QACzC,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,sCAAsC;SAC/C,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,0BAA0B;SACnC,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC;QAC1C,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,yCAAyC;SAClD,CAAC;IACJ,CAAC;IAED,oBAAoB;IACpB,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,yBAAyB;SAClC,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QACnB,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,+BAA+B;SACxC,CAAC;IACJ,CAAC;IAED,6BAA6B;IAC7B,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,iCAAiC;SAC1C,CAAC;IACJ,CAAC;IACD,IAAI,iBAAiB,GAAG,EAAE,EAAE,CAAC;QAC3B,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,mCAAmC;SAC5C,CAAC;IACJ,CAAC;IAED,yBAAyB;IACzB,IAAI,aAAa,GAAG,QAAQ,EAAE,CAAC;QAC7B,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,wDAAwD;SACjE,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CACjB,YAA0B,EAC1B,EACE,QAAQ,EACR,aAAa,GAAG,QAAQ,EACxB,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,OAAO,GACO,EAChB,EAAE,CACF,KAAK,WAAW,OAAoC;IAClD,IAAI,CAAC;QACH,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;YACxD,QAAQ;YACR,aAAa;YACb,MAAM,EAAE,YAAY;YACpB,cAAc;YACd,iBAAiB;YACjB,QAAQ;YACR,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAO,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,0BAA0B;QAC1B,MAAM,gBAAgB,GAAG,MAAM,SAAS,CAAC,YAAY,EAAE;YACrD,OAAO,EAAE,OAAO;YAChB,+BAA+B;YAC/B,KAAK,EAAE,YAAY,CAAC,OAAQ,CAAC,OAAO;YACpC,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;QAEH,8CAA8C;QAC9C,IAAI,gBAAgB,GAAG,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAE5B,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE;gBAC/C,OAAO,EAAE,OAAO;gBAChB,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,cAAc;aACxB,CAAC,CAAC,KAAK,CAAC,UAAU,KAAY;gBAC7B,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,OAAO;YACT,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;YAEnD,MAAM,eAAe,GAAG,MAAM,yBAAyB,CAAC,YAAY,EAAE;gBACpE,IAAI,EAAE,YAAY;aACnB,CAAC,CAAC,KAAK,CAAC,UAAU,KAAY;gBAC7B,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,IAAI,eAAe,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,eAAe,CAAC,CAAC;gBAC9D,OAAO;YACT,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,eAAe,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE5B,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,YAAY,EAAE;YACpD,GAAG,EAAE,UAAU;YACf,OAAO,EAAE,YAAY,CAAC,OAAQ;YAC9B,OAAO,EAAE,cAAc;YACvB,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,CAAC;YACtD,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,YAAY,EAAE,SAAS;SACxB,CAAC,CAAC,KAAK,CAAC,UAAU,KAAY;YAC7B,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;QAEjD,MAAM,cAAc,GAAG,MAAM,yBAAyB,CAAC,YAAY,EAAE;YACnE,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC,KAAK,CAAC,UAAU,KAAY;YAC7B,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,MAAM,eAAe,GAGjB;YACF,QAAQ,EAAE,8BAA8B;YACxC,OAAO,EAAE,+BAA+B;SACzC,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAc,CAAC,CAAC;IACnD,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClC,CAAC;AACH,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAG,IAAmC,EAAE,EAAE,CAChE,cAAc,CAAgB,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,QAAQ,EACR,iBAAiB,EACjB,QAAQ,EACR,OAAO,GAC+B,EAAE,EAAE,CAC1C,kBAAkB,CAAC;IACjB,GAAG,EAAE,UAAU;IACf,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,CAAC;IACtD,YAAY,EAAE,SAAS;CACxB,CAAC,CAAC"}
|
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
import { toPromiseEvent } from "to-promise-event";
|
|
2
|
-
import { encodeFunctionData, isAddress, isAddressEqual, zeroAddress, } from "viem";
|
|
3
|
-
import { waitForTransactionReceipt, writeContract } from "viem/actions";
|
|
4
|
-
import { allowance, approve } from "viem-erc20/actions";
|
|
5
|
-
import { gatewayAbi } from "../../abi/gatewayAbi.js";
|
|
6
|
-
import { getMaxWithdraw } from "../public/getMaxWithdraw.js";
|
|
7
|
-
import { getPeggedToken } from "../public/getPeggedToken.js";
|
|
8
|
-
import { getWithdrawalDelayEnabled } from "../public/getWithdrawalDelayEnabled.js";
|
|
9
|
-
import { isInstantRedeemWhitelisted } from "../public/isInstantRedeemWhitelisted.js";
|
|
10
|
-
const canRedeem = async function ({ approveAmount, client, gatewayAddress, minAmountOut, peggedTokenIn, receiver, tokenOut, }) {
|
|
11
|
-
// Validate client
|
|
12
|
-
if (!client) {
|
|
13
|
-
return {
|
|
14
|
-
canRedeem: false,
|
|
15
|
-
reason: "Client is not defined",
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
if (!client.chain) {
|
|
19
|
-
return {
|
|
20
|
-
canRedeem: false,
|
|
21
|
-
reason: "Chain is not defined on wallet client",
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
// Validate client has required properties
|
|
25
|
-
if (!client.account) {
|
|
26
|
-
return {
|
|
27
|
-
canRedeem: false,
|
|
28
|
-
reason: "Client must have an account",
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
// Validate gateway address
|
|
32
|
-
if (!gatewayAddress || !isAddress(gatewayAddress)) {
|
|
33
|
-
return {
|
|
34
|
-
canRedeem: false,
|
|
35
|
-
reason: "Invalid gateway address",
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
if (isAddressEqual(gatewayAddress, zeroAddress)) {
|
|
39
|
-
return {
|
|
40
|
-
canRedeem: false,
|
|
41
|
-
reason: "Gateway address cannot be zero address",
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
// Validate tokenOut address
|
|
45
|
-
if (!tokenOut || !isAddress(tokenOut)) {
|
|
46
|
-
return {
|
|
47
|
-
canRedeem: false,
|
|
48
|
-
reason: "Invalid token address",
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
if (isAddressEqual(tokenOut, zeroAddress)) {
|
|
52
|
-
return {
|
|
53
|
-
canRedeem: false,
|
|
54
|
-
reason: "Token address cannot be zero address",
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
// Validate receiver address
|
|
58
|
-
if (!receiver || !isAddress(receiver)) {
|
|
59
|
-
return {
|
|
60
|
-
canRedeem: false,
|
|
61
|
-
reason: "Invalid receiver address",
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
if (isAddressEqual(receiver, zeroAddress)) {
|
|
65
|
-
return {
|
|
66
|
-
canRedeem: false,
|
|
67
|
-
reason: "Receiver address cannot be zero address",
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
// Validate peggedTokenIn
|
|
71
|
-
if (typeof peggedTokenIn !== "bigint") {
|
|
72
|
-
return {
|
|
73
|
-
canRedeem: false,
|
|
74
|
-
reason: "Amount must be a bigint",
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
if (peggedTokenIn <= 0n) {
|
|
78
|
-
return {
|
|
79
|
-
canRedeem: false,
|
|
80
|
-
reason: "Amount must be greater than 0",
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
// Validate minAmountOut
|
|
84
|
-
if (typeof minAmountOut !== "bigint") {
|
|
85
|
-
return {
|
|
86
|
-
canRedeem: false,
|
|
87
|
-
reason: "Minimum output must be a bigint",
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
if (minAmountOut < 0n) {
|
|
91
|
-
return {
|
|
92
|
-
canRedeem: false,
|
|
93
|
-
reason: "Minimum output cannot be negative",
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
// Validate approveAmount
|
|
97
|
-
if (approveAmount < peggedTokenIn) {
|
|
98
|
-
return {
|
|
99
|
-
canRedeem: false,
|
|
100
|
-
reason: "Approve amount must be greater than or equal to amount",
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
// Check treasury has enough balance for the requested token
|
|
104
|
-
const maxWithdrawable = await getMaxWithdraw(client, {
|
|
105
|
-
address: gatewayAddress,
|
|
106
|
-
tokenOut,
|
|
107
|
-
});
|
|
108
|
-
if (minAmountOut > maxWithdrawable) {
|
|
109
|
-
return {
|
|
110
|
-
canRedeem: false,
|
|
111
|
-
reason: "Not enough balance in treasury",
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
return { canRedeem: true };
|
|
115
|
-
};
|
|
116
|
-
const runRedeem = (walletClient, { approveAmount, gatewayAddress, minAmountOut, peggedTokenIn, receiver, tokenOut, }) => async function (emitter) {
|
|
117
|
-
const resolvedApproveAmount = approveAmount ?? peggedTokenIn;
|
|
118
|
-
try {
|
|
119
|
-
const { canRedeem: canRedeemFlag, reason } = await canRedeem({
|
|
120
|
-
approveAmount: resolvedApproveAmount,
|
|
121
|
-
client: walletClient,
|
|
122
|
-
gatewayAddress,
|
|
123
|
-
minAmountOut,
|
|
124
|
-
peggedTokenIn,
|
|
125
|
-
receiver,
|
|
126
|
-
tokenOut,
|
|
127
|
-
});
|
|
128
|
-
if (!canRedeemFlag) {
|
|
129
|
-
emitter.emit("redeem-failed-validation", reason);
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
// Check if user is whitelisted for instant redeem
|
|
133
|
-
const [isWhitelisted, delayEnabled] = await Promise.all([
|
|
134
|
-
isInstantRedeemWhitelisted(walletClient, {
|
|
135
|
-
account: walletClient.account.address,
|
|
136
|
-
address: gatewayAddress,
|
|
137
|
-
}),
|
|
138
|
-
getWithdrawalDelayEnabled(walletClient, {
|
|
139
|
-
address: gatewayAddress,
|
|
140
|
-
}),
|
|
141
|
-
]);
|
|
142
|
-
// Approval is needed when the user is whitelisted (instant redeem burns pegged tokens)
|
|
143
|
-
// or when delay is disabled (redeem completes immediately)
|
|
144
|
-
if (isWhitelisted || !delayEnabled) {
|
|
145
|
-
// Get the pegged token address
|
|
146
|
-
const peggedTokenAddress = await getPeggedToken(walletClient, {
|
|
147
|
-
address: gatewayAddress,
|
|
148
|
-
});
|
|
149
|
-
// Check current allowance for pegged token
|
|
150
|
-
const currentAllowance = await allowance(walletClient, {
|
|
151
|
-
address: peggedTokenAddress,
|
|
152
|
-
owner: walletClient.account.address,
|
|
153
|
-
spender: gatewayAddress,
|
|
154
|
-
});
|
|
155
|
-
// If allowance is insufficient, approve first
|
|
156
|
-
if (currentAllowance < peggedTokenIn) {
|
|
157
|
-
emitter.emit("pre-approve");
|
|
158
|
-
const approvalHash = await approve(walletClient, {
|
|
159
|
-
address: peggedTokenAddress,
|
|
160
|
-
amount: resolvedApproveAmount,
|
|
161
|
-
spender: gatewayAddress,
|
|
162
|
-
}).catch(function (error) {
|
|
163
|
-
emitter.emit("user-signing-approval-error", error);
|
|
164
|
-
});
|
|
165
|
-
if (!approvalHash) {
|
|
166
|
-
return;
|
|
167
|
-
}
|
|
168
|
-
emitter.emit("user-signed-approval", approvalHash);
|
|
169
|
-
const approvalReceipt = await waitForTransactionReceipt(walletClient, {
|
|
170
|
-
hash: approvalHash,
|
|
171
|
-
}).catch(function (error) {
|
|
172
|
-
emitter.emit("redeem-failed", error);
|
|
173
|
-
});
|
|
174
|
-
if (!approvalReceipt) {
|
|
175
|
-
return;
|
|
176
|
-
}
|
|
177
|
-
if (approvalReceipt.status === "reverted") {
|
|
178
|
-
emitter.emit("approve-transaction-reverted", approvalReceipt);
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
emitter.emit("approve-transaction-succeeded", approvalReceipt);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
emitter.emit("pre-redeem");
|
|
185
|
-
const redeemHash = await writeContract(walletClient, {
|
|
186
|
-
abi: gatewayAbi,
|
|
187
|
-
account: walletClient.account,
|
|
188
|
-
address: gatewayAddress,
|
|
189
|
-
args: [tokenOut, peggedTokenIn, minAmountOut, receiver],
|
|
190
|
-
chain: walletClient.chain,
|
|
191
|
-
functionName: "redeem",
|
|
192
|
-
}).catch(function (error) {
|
|
193
|
-
emitter.emit("user-signing-redeem-error", error);
|
|
194
|
-
});
|
|
195
|
-
if (!redeemHash) {
|
|
196
|
-
return;
|
|
197
|
-
}
|
|
198
|
-
emitter.emit("user-signed-redeem", redeemHash);
|
|
199
|
-
const redeemReceipt = await waitForTransactionReceipt(walletClient, {
|
|
200
|
-
hash: redeemHash,
|
|
201
|
-
}).catch(function (error) {
|
|
202
|
-
emitter.emit("redeem-failed", error);
|
|
203
|
-
});
|
|
204
|
-
if (!redeemReceipt) {
|
|
205
|
-
return;
|
|
206
|
-
}
|
|
207
|
-
const redeemEventMap = {
|
|
208
|
-
reverted: "redeem-transaction-reverted",
|
|
209
|
-
success: "redeem-transaction-succeeded",
|
|
210
|
-
};
|
|
211
|
-
emitter.emit(redeemEventMap[redeemReceipt.status], redeemReceipt);
|
|
212
|
-
}
|
|
213
|
-
catch (error) {
|
|
214
|
-
emitter.emit("unexpected-error", error);
|
|
215
|
-
}
|
|
216
|
-
finally {
|
|
217
|
-
emitter.emit("redeem-settled");
|
|
218
|
-
}
|
|
219
|
-
};
|
|
220
|
-
export const redeem = (...args) => toPromiseEvent(runRedeem(...args));
|
|
221
|
-
export const encodeRedeem = ({ minAmountOut, peggedTokenIn, receiver, tokenOut, }) => encodeFunctionData({
|
|
222
|
-
abi: gatewayAbi,
|
|
223
|
-
args: [tokenOut, peggedTokenIn, minAmountOut, receiver],
|
|
224
|
-
functionName: "redeem",
|
|
225
|
-
});
|
|
226
|
-
//# sourceMappingURL=redeem.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"redeem.js","sourceRoot":"","sources":["../../../src/actions/wallet/redeem.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
import { toPromiseEvent } from "to-promise-event";
|
|
2
|
-
import { encodeFunctionData, isAddress, isAddressEqual, zeroAddress, } from "viem";
|
|
3
|
-
import { waitForTransactionReceipt, writeContract } from "viem/actions";
|
|
4
|
-
import { allowance, approve } from "viem-erc20/actions";
|
|
5
|
-
import { gatewayAbi } from "../../abi/gatewayAbi.js";
|
|
6
|
-
import { getPeggedToken } from "../public/getPeggedToken.js";
|
|
7
|
-
const canRequestRedeem = function ({ approveAmount, client, gatewayAddress, peggedTokenAmount, }) {
|
|
8
|
-
if (!client) {
|
|
9
|
-
return {
|
|
10
|
-
canRequestRedeem: false,
|
|
11
|
-
reason: "Client is not defined",
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
if (!client.chain) {
|
|
15
|
-
return {
|
|
16
|
-
canRequestRedeem: false,
|
|
17
|
-
reason: "Chain is not defined on wallet client",
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
if (!client.account) {
|
|
21
|
-
return {
|
|
22
|
-
canRequestRedeem: false,
|
|
23
|
-
reason: "Client must have an account",
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
// Validate gateway address
|
|
27
|
-
if (!gatewayAddress || !isAddress(gatewayAddress)) {
|
|
28
|
-
return {
|
|
29
|
-
canRequestRedeem: false,
|
|
30
|
-
reason: "Invalid gateway address",
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
if (isAddressEqual(gatewayAddress, zeroAddress)) {
|
|
34
|
-
return {
|
|
35
|
-
canRequestRedeem: false,
|
|
36
|
-
reason: "Gateway address cannot be zero address",
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
if (typeof peggedTokenAmount !== "bigint") {
|
|
40
|
-
return {
|
|
41
|
-
canRequestRedeem: false,
|
|
42
|
-
reason: "Amount must be a bigint",
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
if (peggedTokenAmount <= 0n) {
|
|
46
|
-
return {
|
|
47
|
-
canRequestRedeem: false,
|
|
48
|
-
reason: "Amount must be greater than 0",
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
// Validate approveAmount
|
|
52
|
-
if (approveAmount < peggedTokenAmount) {
|
|
53
|
-
return {
|
|
54
|
-
canRequestRedeem: false,
|
|
55
|
-
reason: "Approve amount must be greater than or equal to amount",
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
return { canRequestRedeem: true };
|
|
59
|
-
};
|
|
60
|
-
const runRequestRedeem = (walletClient, { approveAmount, gatewayAddress, peggedTokenAmount }) => async function (emitter) {
|
|
61
|
-
const resolvedApproveAmount = approveAmount ?? peggedTokenAmount;
|
|
62
|
-
try {
|
|
63
|
-
const { canRequestRedeem: canRequestRedeemFlag, reason } = canRequestRedeem({
|
|
64
|
-
approveAmount: resolvedApproveAmount,
|
|
65
|
-
client: walletClient,
|
|
66
|
-
gatewayAddress,
|
|
67
|
-
peggedTokenAmount,
|
|
68
|
-
});
|
|
69
|
-
if (!canRequestRedeemFlag) {
|
|
70
|
-
emitter.emit("request-redeem-failed-validation", reason);
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
// Get the pegged token address
|
|
74
|
-
const peggedTokenAddress = await getPeggedToken(walletClient, {
|
|
75
|
-
address: gatewayAddress,
|
|
76
|
-
});
|
|
77
|
-
// Check current allowance for pegged token
|
|
78
|
-
const currentAllowance = await allowance(walletClient, {
|
|
79
|
-
address: peggedTokenAddress,
|
|
80
|
-
owner: walletClient.account.address,
|
|
81
|
-
spender: gatewayAddress,
|
|
82
|
-
});
|
|
83
|
-
// If allowance is insufficient, approve first
|
|
84
|
-
if (currentAllowance < peggedTokenAmount) {
|
|
85
|
-
emitter.emit("pre-approve");
|
|
86
|
-
const approvalHash = await approve(walletClient, {
|
|
87
|
-
address: peggedTokenAddress,
|
|
88
|
-
amount: resolvedApproveAmount,
|
|
89
|
-
spender: gatewayAddress,
|
|
90
|
-
}).catch(function (error) {
|
|
91
|
-
emitter.emit("user-signing-approval-error", error);
|
|
92
|
-
});
|
|
93
|
-
if (!approvalHash) {
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
emitter.emit("user-signed-approval", approvalHash);
|
|
97
|
-
const approvalReceipt = await waitForTransactionReceipt(walletClient, {
|
|
98
|
-
hash: approvalHash,
|
|
99
|
-
}).catch(function (error) {
|
|
100
|
-
emitter.emit("request-redeem-failed", error);
|
|
101
|
-
});
|
|
102
|
-
if (!approvalReceipt) {
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
if (approvalReceipt.status === "reverted") {
|
|
106
|
-
emitter.emit("approve-transaction-reverted", approvalReceipt);
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
emitter.emit("approve-transaction-succeeded", approvalReceipt);
|
|
110
|
-
}
|
|
111
|
-
emitter.emit("pre-request-redeem");
|
|
112
|
-
const requestRedeemHash = await writeContract(walletClient, {
|
|
113
|
-
abi: gatewayAbi,
|
|
114
|
-
account: walletClient.account,
|
|
115
|
-
address: gatewayAddress,
|
|
116
|
-
args: [peggedTokenAmount],
|
|
117
|
-
chain: walletClient.chain,
|
|
118
|
-
functionName: "requestRedeem",
|
|
119
|
-
}).catch(function (error) {
|
|
120
|
-
emitter.emit("user-signing-request-redeem-error", error);
|
|
121
|
-
});
|
|
122
|
-
if (!requestRedeemHash) {
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
emitter.emit("user-signed-request-redeem", requestRedeemHash);
|
|
126
|
-
const requestRedeemReceipt = await waitForTransactionReceipt(walletClient, {
|
|
127
|
-
hash: requestRedeemHash,
|
|
128
|
-
}).catch(function (error) {
|
|
129
|
-
emitter.emit("request-redeem-failed", error);
|
|
130
|
-
});
|
|
131
|
-
if (!requestRedeemReceipt) {
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
const requestRedeemEventMap = {
|
|
135
|
-
reverted: "request-redeem-transaction-reverted",
|
|
136
|
-
success: "request-redeem-transaction-succeeded",
|
|
137
|
-
};
|
|
138
|
-
emitter.emit(requestRedeemEventMap[requestRedeemReceipt.status], requestRedeemReceipt);
|
|
139
|
-
}
|
|
140
|
-
catch (error) {
|
|
141
|
-
emitter.emit("unexpected-error", error);
|
|
142
|
-
}
|
|
143
|
-
finally {
|
|
144
|
-
emitter.emit("request-redeem-settled");
|
|
145
|
-
}
|
|
146
|
-
};
|
|
147
|
-
export const requestRedeem = (...args) => toPromiseEvent(runRequestRedeem(...args));
|
|
148
|
-
export const encodeRequestRedeem = ({ peggedTokenAmount, }) => encodeFunctionData({
|
|
149
|
-
abi: gatewayAbi,
|
|
150
|
-
args: [peggedTokenAmount],
|
|
151
|
-
functionName: "requestRedeem",
|
|
152
|
-
});
|
|
153
|
-
//# sourceMappingURL=requestRedeem.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"requestRedeem.js","sourceRoot":"","sources":["../../../src/actions/wallet/requestRedeem.ts"],"names":[],"mappings":"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"}
|
package/_esm/gatewayAddresses.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
// Whitelisted-token oracles within a gateway are denominated in the gateway's
|
|
2
|
-
// peg unit (e.g. WBTC/BTC for the vetBTC gateway, USDT/USD for the VUSD gateway),
|
|
3
|
-
// so the USD price for any whitelisted token is `oracle × portal[pegBaseSymbol]`.
|
|
4
|
-
// See `web/src/fetchers/fetchPrices.ts` for the merge.
|
|
5
|
-
export const gateways = [
|
|
6
|
-
// VUSD
|
|
7
|
-
{
|
|
8
|
-
address: "0xDaD503f8B9d42bb7af3AfC588358D30163e4416F",
|
|
9
|
-
pegBaseSymbol: "USD",
|
|
10
|
-
},
|
|
11
|
-
// vetBTC
|
|
12
|
-
{
|
|
13
|
-
address: "0xCBA2Ffa0AC52d7871a4221a871793Eb788013faB",
|
|
14
|
-
pegBaseSymbol: "BTC",
|
|
15
|
-
},
|
|
16
|
-
];
|
|
17
|
-
export const gatewayAddresses = gateways.map((g) => g.address);
|
|
18
|
-
//# sourceMappingURL=gatewayAddresses.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gatewayAddresses.js","sourceRoot":"","sources":["../src/gatewayAddresses.ts"],"names":[],"mappings":"AASA,8EAA8E;AAC9E,kFAAkF;AAClF,kFAAkF;AAClF,uDAAuD;AACvD,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC,OAAO;IACP;QACE,OAAO,EAAE,4CAA4C;QACrD,aAAa,EAAE,KAAK;KACrB;IACD,SAAS;IACT;QACE,OAAO,EAAE,4CAA4C;QACrD,aAAa,EAAE,KAAK;KACrB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAc,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC"}
|
package/_esm/types.js
DELETED
package/_esm/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isAddressValid.js","sourceRoot":"","sources":["../../src/utils/isAddressValid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAE5E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAA4B,EAAE,EAAE,CAC7D,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isAddressValid.d.ts","sourceRoot":"","sources":["../../src/utils/isAddressValid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAA0C,MAAM,MAAM,CAAC;AAE5E,eAAO,MAAM,cAAc,GAAI,SAAS,OAAO,GAAG,SAAS,YACe,CAAC"}
|