@rabby-wallet/rabby-bridge 0.0.13-alpha.1 → 0.0.13
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/README.md +1 -159
- package/dist/chains.d.ts +2 -1
- package/dist/chains.js +2 -0
- package/dist/data.d.ts +3 -0
- package/dist/data.js +3 -0
- package/dist/index.d.ts +1 -6
- package/dist/index.js +0 -3
- package/dist/quote.d.ts +4 -26
- package/dist/quote.js +67 -200
- package/package.json +3 -13
- package/dist/calldata/abi.d.ts +0 -29
- package/dist/calldata/abi.js +0 -160
- package/dist/calldata/across/deposit.d.ts +0 -2
- package/dist/calldata/across/deposit.js +0 -36
- package/dist/calldata/across/depositNative.d.ts +0 -2
- package/dist/calldata/across/depositNative.js +0 -45
- package/dist/calldata/across/depositNow.d.ts +0 -2
- package/dist/calldata/across/depositNow.js +0 -35
- package/dist/calldata/across/depositV3.d.ts +0 -2
- package/dist/calldata/across/depositV3.js +0 -35
- package/dist/calldata/across/depositV3Now.d.ts +0 -2
- package/dist/calldata/across/depositV3Now.js +0 -34
- package/dist/calldata/across/index.d.ts +0 -4
- package/dist/calldata/across/index.js +0 -31
- package/dist/calldata/across/swapAndBridge.d.ts +0 -2
- package/dist/calldata/across/swapAndBridge.js +0 -70
- package/dist/calldata/across/validate.d.ts +0 -3
- package/dist/calldata/across/validate.js +0 -34
- package/dist/calldata/chains.d.ts +0 -2
- package/dist/calldata/chains.js +0 -35
- package/dist/calldata/destination.d.ts +0 -6
- package/dist/calldata/destination.js +0 -211
- package/dist/calldata/destinationSwap.d.ts +0 -14
- package/dist/calldata/destinationSwap.js +0 -80
- package/dist/calldata/diagnostics.d.ts +0 -4
- package/dist/calldata/diagnostics.js +0 -18
- package/dist/calldata/expect.d.ts +0 -27
- package/dist/calldata/expect.js +0 -158
- package/dist/calldata/hex.d.ts +0 -6
- package/dist/calldata/hex.js +0 -46
- package/dist/calldata/index.d.ts +0 -20
- package/dist/calldata/index.js +0 -88
- package/dist/calldata/lifi/across/acrossV4Erc20Min.d.ts +0 -2
- package/dist/calldata/lifi/across/acrossV4Erc20Min.js +0 -26
- package/dist/calldata/lifi/across/acrossV4NativeMin.d.ts +0 -2
- package/dist/calldata/lifi/across/acrossV4NativeMin.js +0 -22
- package/dist/calldata/lifi/across/index.d.ts +0 -6
- package/dist/calldata/lifi/across/index.js +0 -19
- package/dist/calldata/lifi/allbridge/index.d.ts +0 -3
- package/dist/calldata/lifi/allbridge/index.js +0 -26
- package/dist/calldata/lifi/celer/index.d.ts +0 -4
- package/dist/calldata/lifi/celer/index.js +0 -10
- package/dist/calldata/lifi/centrifuge/index.d.ts +0 -3
- package/dist/calldata/lifi/centrifuge/index.js +0 -22
- package/dist/calldata/lifi/destination.d.ts +0 -5
- package/dist/calldata/lifi/destination.js +0 -40
- package/dist/calldata/lifi/frax/index.d.ts +0 -4
- package/dist/calldata/lifi/frax/index.js +0 -29
- package/dist/calldata/lifi/garden/index.d.ts +0 -3
- package/dist/calldata/lifi/garden/index.js +0 -22
- package/dist/calldata/lifi/gaszip/index.d.ts +0 -6
- package/dist/calldata/lifi/gaszip/index.js +0 -15
- package/dist/calldata/lifi/index.d.ts +0 -4
- package/dist/calldata/lifi/index.js +0 -62
- package/dist/calldata/lifi/intents/index.d.ts +0 -4
- package/dist/calldata/lifi/intents/index.js +0 -10
- package/dist/calldata/lifi/layerswap/index.d.ts +0 -4
- package/dist/calldata/lifi/layerswap/index.js +0 -10
- package/dist/calldata/lifi/m0/index.d.ts +0 -3
- package/dist/calldata/lifi/m0/index.js +0 -33
- package/dist/calldata/lifi/mayan/index.d.ts +0 -4
- package/dist/calldata/lifi/mayan/index.js +0 -10
- package/dist/calldata/lifi/method.d.ts +0 -6
- package/dist/calldata/lifi/method.js +0 -16
- package/dist/calldata/lifi/native/index.d.ts +0 -4
- package/dist/calldata/lifi/native/index.js +0 -80
- package/dist/calldata/lifi/params.d.ts +0 -28
- package/dist/calldata/lifi/params.js +0 -347
- package/dist/calldata/lifi/paxos/index.d.ts +0 -4
- package/dist/calldata/lifi/paxos/index.js +0 -10
- package/dist/calldata/lifi/polymer/index.d.ts +0 -4
- package/dist/calldata/lifi/polymer/index.js +0 -10
- package/dist/calldata/lifi/relay/index.d.ts +0 -6
- package/dist/calldata/lifi/relay/index.js +0 -15
- package/dist/calldata/lifi/shape.d.ts +0 -4
- package/dist/calldata/lifi/shape.js +0 -31
- package/dist/calldata/lifi/squid/index.d.ts +0 -6
- package/dist/calldata/lifi/squid/index.js +0 -15
- package/dist/calldata/lifi/stargate/index.d.ts +0 -5
- package/dist/calldata/lifi/stargate/index.js +0 -15
- package/dist/calldata/lifi/swap/index.d.ts +0 -5
- package/dist/calldata/lifi/swap/index.js +0 -18
- package/dist/calldata/lifi/swap/swapMethod.d.ts +0 -2
- package/dist/calldata/lifi/swap/swapMethod.js +0 -40
- package/dist/calldata/lifi/swapData.d.ts +0 -5
- package/dist/calldata/lifi/swapData.js +0 -33
- package/dist/calldata/match.d.ts +0 -3
- package/dist/calldata/match.js +0 -21
- package/dist/calldata/mayan/destination.d.ts +0 -2
- package/dist/calldata/mayan/destination.js +0 -13
- package/dist/calldata/mayan/fastMctpBridge.d.ts +0 -3
- package/dist/calldata/mayan/fastMctpBridge.js +0 -48
- package/dist/calldata/mayan/fastMctpCreateOrder.d.ts +0 -3
- package/dist/calldata/mayan/fastMctpCreateOrder.js +0 -39
- package/dist/calldata/mayan/forward.d.ts +0 -8
- package/dist/calldata/mayan/forward.js +0 -35
- package/dist/calldata/mayan/forwardERC20.d.ts +0 -2
- package/dist/calldata/mayan/forwardERC20.js +0 -19
- package/dist/calldata/mayan/forwardEth.d.ts +0 -2
- package/dist/calldata/mayan/forwardEth.js +0 -16
- package/dist/calldata/mayan/index.d.ts +0 -4
- package/dist/calldata/mayan/index.js +0 -21
- package/dist/calldata/mayan/mctp.d.ts +0 -5
- package/dist/calldata/mayan/mctp.js +0 -41
- package/dist/calldata/mayan/readProtocol.d.ts +0 -2
- package/dist/calldata/mayan/readProtocol.js +0 -29
- package/dist/calldata/mayan/swapAndForwardERC20.d.ts +0 -2
- package/dist/calldata/mayan/swapAndForwardERC20.js +0 -24
- package/dist/calldata/mayan/swapAndForwardEth.d.ts +0 -2
- package/dist/calldata/mayan/swapAndForwardEth.js +0 -23
- package/dist/calldata/mayan/swiftCreateOrder.d.ts +0 -3
- package/dist/calldata/mayan/swiftCreateOrder.js +0 -49
- package/dist/calldata/mayan/validate.d.ts +0 -3
- package/dist/calldata/mayan/validate.js +0 -20
- package/dist/calldata/protocols.d.ts +0 -9
- package/dist/calldata/protocols.js +0 -57
- package/dist/calldata/relay/calls.d.ts +0 -13
- package/dist/calldata/relay/calls.js +0 -54
- package/dist/calldata/relay/depositErc20.d.ts +0 -2
- package/dist/calldata/relay/depositErc20.js +0 -22
- package/dist/calldata/relay/depositErc20Allowance.d.ts +0 -2
- package/dist/calldata/relay/depositErc20Allowance.js +0 -20
- package/dist/calldata/relay/depositNative.d.ts +0 -2
- package/dist/calldata/relay/depositNative.js +0 -20
- package/dist/calldata/relay/index.d.ts +0 -4
- package/dist/calldata/relay/index.js +0 -42
- package/dist/calldata/relay/multicall.d.ts +0 -2
- package/dist/calldata/relay/multicall.js +0 -15
- package/dist/calldata/relay/permit2TransferAndMulticall.d.ts +0 -2
- package/dist/calldata/relay/permit2TransferAndMulticall.js +0 -42
- package/dist/calldata/relay/permit3009TransferAndMulticall.d.ts +0 -2
- package/dist/calldata/relay/permit3009TransferAndMulticall.js +0 -41
- package/dist/calldata/relay/permit3009TransferAndMulticallSigned.d.ts +0 -2
- package/dist/calldata/relay/permit3009TransferAndMulticallSigned.js +0 -40
- package/dist/calldata/relay/permitTransferAndMulticall.d.ts +0 -2
- package/dist/calldata/relay/permitTransferAndMulticall.js +0 -34
- package/dist/calldata/relay/permitTransferAndMulticallLegacy.d.ts +0 -2
- package/dist/calldata/relay/permitTransferAndMulticallLegacy.js +0 -35
- package/dist/calldata/relay/transferAndMulticall.d.ts +0 -2
- package/dist/calldata/relay/transferAndMulticall.js +0 -26
- package/dist/calldata/relay/validate.d.ts +0 -3
- package/dist/calldata/relay/validate.js +0 -18
- package/dist/calldata/resolve.d.ts +0 -2
- package/dist/calldata/resolve.js +0 -28
- package/dist/calldata/socket/bridge.d.ts +0 -2
- package/dist/calldata/socket/bridge.js +0 -28
- package/dist/calldata/socket/exec.d.ts +0 -2
- package/dist/calldata/socket/exec.js +0 -71
- package/dist/calldata/socket/index.d.ts +0 -4
- package/dist/calldata/socket/index.js +0 -13
- package/dist/calldata/socket/params.d.ts +0 -5
- package/dist/calldata/socket/params.js +0 -14
- package/dist/calldata/socket/protocols/ccip.d.ts +0 -2
- package/dist/calldata/socket/protocols/ccip.js +0 -32
- package/dist/calldata/socket/protocols/cctp.d.ts +0 -2
- package/dist/calldata/socket/protocols/cctp.js +0 -24
- package/dist/calldata/socket/protocols/eco.d.ts +0 -2
- package/dist/calldata/socket/protocols/eco.js +0 -20
- package/dist/calldata/socket/protocols/index.d.ts +0 -3
- package/dist/calldata/socket/protocols/index.js +0 -86
- package/dist/calldata/socket/protocols/native.d.ts +0 -2
- package/dist/calldata/socket/protocols/native.js +0 -70
- package/dist/calldata/socket/protocols/oft.d.ts +0 -2
- package/dist/calldata/socket/protocols/oft.js +0 -33
- package/dist/calldata/socket/protocols/swapsXYZ.d.ts +0 -2
- package/dist/calldata/socket/protocols/swapsXYZ.js +0 -62
- package/dist/calldata/socket/swapAndBridge.d.ts +0 -2
- package/dist/calldata/socket/swapAndBridge.js +0 -41
- package/dist/calldata/socket/validate.d.ts +0 -3
- package/dist/calldata/socket/validate.js +0 -24
- package/dist/calldata/types.d.ts +0 -82
- package/dist/calldata/types.js +0 -20
- package/dist/errors/constants.d.ts +0 -891
- package/dist/errors/constants.js +0 -898
- package/dist/errors/index.d.ts +0 -66
- package/dist/errors/index.js +0 -53
- package/dist/errors/sanitize.d.ts +0 -3
- package/dist/errors/sanitize.js +0 -74
- package/dist/providers/data.d.ts +0 -23
- package/dist/providers/data.js +0 -116
- package/dist/providers/errors.d.ts +0 -7
- package/dist/providers/errors.js +0 -10
- package/dist/providers/layerswap.d.ts +0 -9
- package/dist/providers/layerswap.js +0 -95
- package/dist/providers/relay.d.ts +0 -59
- package/dist/providers/relay.js +0 -185
- package/dist/providers/socket.d.ts +0 -5
- package/dist/providers/socket.js +0 -57
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { bridgeShape } from '../shape.js';
|
|
2
|
-
import { applyGasZipData, gasZipDataParam } from '../params.js';
|
|
3
|
-
import { lifiBridgeMethod } from '../method.js';
|
|
4
|
-
export const methods = [
|
|
5
|
-
lifiBridgeMethod('startBridgeTokensViaGasZip', '0xfc5f1003', [gasZipDataParam], false, (parsed, args) => applyGasZipData(parsed, args.gasZipData)),
|
|
6
|
-
lifiBridgeMethod('swapAndStartBridgeTokensViaGasZip', '0x606326ff', [gasZipDataParam], true, (parsed, args) => applyGasZipData(parsed, args.gasZipData)),
|
|
7
|
-
];
|
|
8
|
-
export const compare = (parsed) => ({
|
|
9
|
-
fromToken: parsed.sourceToken !== undefined,
|
|
10
|
-
fromAmount: parsed.sourceAmount !== undefined,
|
|
11
|
-
toToken: false,
|
|
12
|
-
toAmount: false,
|
|
13
|
-
receiver: true,
|
|
14
|
-
});
|
|
15
|
-
export const check = bridgeShape;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { BridgeCallExpectation } from '../expect.js';
|
|
2
|
-
import type { BridgeCheck, DecodeHit } from '../types.js';
|
|
3
|
-
export declare const decodeLifi: (data: string, value: bigint) => DecodeHit;
|
|
4
|
-
export declare const validateLifi: (data: string, value: bigint, expectation?: BridgeCallExpectation, chainId?: string) => BridgeCheck;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { BRIDGE_ERRORS, bridgeFailure } from '../../errors/index.js';
|
|
2
|
-
import { finishCheck } from '../expect.js';
|
|
3
|
-
import { matchMethod } from '../match.js';
|
|
4
|
-
import * as across from './across/index.js';
|
|
5
|
-
import * as allbridge from './allbridge/index.js';
|
|
6
|
-
import * as celer from './celer/index.js';
|
|
7
|
-
import * as centrifuge from './centrifuge/index.js';
|
|
8
|
-
import * as frax from './frax/index.js';
|
|
9
|
-
import * as gaszip from './gaszip/index.js';
|
|
10
|
-
import * as garden from './garden/index.js';
|
|
11
|
-
import * as intents from './intents/index.js';
|
|
12
|
-
import * as layerswap from './layerswap/index.js';
|
|
13
|
-
import * as mayan from './mayan/index.js';
|
|
14
|
-
import * as m0 from './m0/index.js';
|
|
15
|
-
import * as native from './native/index.js';
|
|
16
|
-
import * as paxos from './paxos/index.js';
|
|
17
|
-
import * as polymer from './polymer/index.js';
|
|
18
|
-
import * as relay from './relay/index.js';
|
|
19
|
-
import * as squid from './squid/index.js';
|
|
20
|
-
import * as stargate from './stargate/index.js';
|
|
21
|
-
import * as swap from './swap/index.js';
|
|
22
|
-
import { isNative } from '../protocols.js';
|
|
23
|
-
const ROUTES = [
|
|
24
|
-
across,
|
|
25
|
-
allbridge,
|
|
26
|
-
centrifuge,
|
|
27
|
-
garden,
|
|
28
|
-
m0,
|
|
29
|
-
native,
|
|
30
|
-
frax,
|
|
31
|
-
stargate,
|
|
32
|
-
intents,
|
|
33
|
-
polymer,
|
|
34
|
-
layerswap,
|
|
35
|
-
mayan,
|
|
36
|
-
celer,
|
|
37
|
-
paxos,
|
|
38
|
-
relay,
|
|
39
|
-
gaszip,
|
|
40
|
-
squid,
|
|
41
|
-
swap,
|
|
42
|
-
];
|
|
43
|
-
const METHODS = ROUTES.flatMap((route) => route.methods);
|
|
44
|
-
const routeFor = (method) => ROUTES.find((route) => route.methods.some((item) => item.name === method));
|
|
45
|
-
export const decodeLifi = (data, value) => matchMethod(METHODS, data, value);
|
|
46
|
-
export const validateLifi = (data, value, expectation, chainId = '') => {
|
|
47
|
-
const hit = decodeLifi(data, value);
|
|
48
|
-
if (!hit.ok) {
|
|
49
|
-
return { ...hit, aggregatorId: 'lifi' };
|
|
50
|
-
}
|
|
51
|
-
const route = routeFor(hit.parsed.method);
|
|
52
|
-
if (!route) {
|
|
53
|
-
return {
|
|
54
|
-
...bridgeFailure([BRIDGE_ERRORS.UNSUPPORTED_METHOD]),
|
|
55
|
-
aggregatorId: 'lifi',
|
|
56
|
-
method: hit.parsed.method,
|
|
57
|
-
parsed: hit.parsed,
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
return finishCheck('lifi', hit.parsed, hit.parsed.method.endsWith('ViaLayerSwap') && value !== (isNative(hit.parsed.sourceToken ?? '') ? hit.parsed.sourceAmount : 0n)
|
|
61
|
-
? BRIDGE_ERRORS.LAYERSWAP_SOURCE_VALUE_MISMATCH : route.check(hit.parsed), expectation, chainId, route.compare(hit.parsed));
|
|
62
|
-
};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { CalldataMethod } from '../../abi.js';
|
|
2
|
-
export declare const methods: CalldataMethod[];
|
|
3
|
-
export declare const compare: (parsed: import("../../types.js").ParsedBridgeCall) => import("../../expect.js").CompareMask;
|
|
4
|
-
export declare const check: (parsed: import("../../types.js").ParsedBridgeCall) => import("../../../index.js").BridgeErrorDefinition | undefined;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { knownCompare } from '../../expect.js';
|
|
2
|
-
import { bridgeShape } from '../shape.js';
|
|
3
|
-
import { lifiBridgeMethod } from '../method.js';
|
|
4
|
-
import { applyLifiIntentData, lifiIntentDataParam } from '../params.js';
|
|
5
|
-
export const methods = [
|
|
6
|
-
lifiBridgeMethod('startBridgeTokensViaLiFiIntentEscrowV2', '0x7dbcf1d9', [lifiIntentDataParam], false, (parsed, args) => applyLifiIntentData(parsed, args.lifiIntentData)),
|
|
7
|
-
lifiBridgeMethod('swapAndStartBridgeTokensViaLiFiIntentEscrowV2', '0x6d21c5df', [lifiIntentDataParam], true, (parsed, args) => applyLifiIntentData(parsed, args.lifiIntentData)),
|
|
8
|
-
];
|
|
9
|
-
export const compare = knownCompare;
|
|
10
|
-
export const check = bridgeShape;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { CalldataMethod } from '../../abi.js';
|
|
2
|
-
export declare const methods: CalldataMethod[];
|
|
3
|
-
export declare const compare: (parsed: import("../../types.js").ParsedBridgeCall) => import("../../expect.js").CompareMask;
|
|
4
|
-
export declare const check: (parsed: import("../../types.js").ParsedBridgeCall) => import("../../../index.js").BridgeErrorDefinition | undefined;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { knownCompare } from '../../expect.js';
|
|
2
|
-
import { bridgeShape } from '../shape.js';
|
|
3
|
-
import { lifiBridgeMethod } from '../method.js';
|
|
4
|
-
import { applyLayerSwapData, layerSwapDataParam } from '../params.js';
|
|
5
|
-
export const methods = [
|
|
6
|
-
lifiBridgeMethod('startBridgeTokensViaLayerSwap', '0xee9e98e0', [layerSwapDataParam], false, (parsed, args) => applyLayerSwapData(parsed, args.layerSwapData)),
|
|
7
|
-
lifiBridgeMethod('swapAndStartBridgeTokensViaLayerSwap', '0x4c279d6b', [layerSwapDataParam], true, (parsed, args) => applyLayerSwapData(parsed, args.layerSwapData)),
|
|
8
|
-
];
|
|
9
|
-
export const compare = knownCompare;
|
|
10
|
-
export const check = bridgeShape;
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export declare const methods: import("../../abi.js").CalldataMethod[];
|
|
2
|
-
export declare const compare: (parsed: import("../../types.js").ParsedBridgeCall) => import("../../expect.js").CompareMask;
|
|
3
|
-
export declare const check: (parsed: import("../../types.js").ParsedBridgeCall) => import("../../../errors/constants.js").BridgeErrorDefinition | undefined;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { BRIDGE_ERRORS, BridgeError } from '../../../errors/index.js';
|
|
2
|
-
import { asBigint, asRecord, asString } from '../../abi.js';
|
|
3
|
-
import { accountFromBytes32 } from '../../hex.js';
|
|
4
|
-
import { knownCompare } from '../../expect.js';
|
|
5
|
-
import { lifiBridgeMethod } from '../method.js';
|
|
6
|
-
import { bridgeShape } from '../shape.js';
|
|
7
|
-
const m0Data = { name: 'm0Data', kind: 'tuple', components: [
|
|
8
|
-
{ name: 'receiverAddress', kind: 'bytes', size: 32 }, { name: 'refundRecipient', kind: 'address' },
|
|
9
|
-
{ name: 'orderOwner', kind: 'address' }, { name: 'tokenOut', kind: 'bytes', size: 32 },
|
|
10
|
-
{ name: 'solver', kind: 'bytes', size: 32 }, { name: 'amountOut', kind: 'uint' },
|
|
11
|
-
{ name: 'fillDeadline', kind: 'uint' },
|
|
12
|
-
] };
|
|
13
|
-
const fill = (parsed, args) => {
|
|
14
|
-
const data = asRecord(args.m0Data);
|
|
15
|
-
if ((parsed.destinationChainId ?? 0n) > 0xffffffffn)
|
|
16
|
-
throw new BridgeError(BRIDGE_ERRORS.UNSUPPORTED_NON_EVM_M0_DESTINATION);
|
|
17
|
-
const receiver = accountFromBytes32(asString(data.receiverAddress));
|
|
18
|
-
if (receiver !== parsed.receiver)
|
|
19
|
-
throw new BridgeError(BRIDGE_ERRORS.M0_RECEIVER_MISMATCH);
|
|
20
|
-
if (asString(data.refundRecipient) !== receiver || asString(data.orderOwner) !== receiver) {
|
|
21
|
-
throw new BridgeError(BRIDGE_ERRORS.M0_REFUND_RECIPIENT_MISMATCH);
|
|
22
|
-
}
|
|
23
|
-
parsed.receiver = receiver;
|
|
24
|
-
parsed.outputToken = accountFromBytes32(asString(data.tokenOut));
|
|
25
|
-
// Positive source-swap slippage scales amountOut up; the quoted amount remains its floor.
|
|
26
|
-
parsed.minOutputAmount = asBigint(data.amountOut);
|
|
27
|
-
};
|
|
28
|
-
export const methods = [
|
|
29
|
-
lifiBridgeMethod('startBridgeTokensViaM0', '0x65782c4b', [m0Data], false, fill),
|
|
30
|
-
lifiBridgeMethod('swapAndStartBridgeTokensViaM0', '0xb9eaf86d', [m0Data], true, fill),
|
|
31
|
-
];
|
|
32
|
-
export const compare = knownCompare;
|
|
33
|
-
export const check = bridgeShape;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { CalldataMethod } from '../../abi.js';
|
|
2
|
-
export declare const methods: CalldataMethod[];
|
|
3
|
-
export declare const compare: (parsed: import("../../types.js").ParsedBridgeCall) => import("../../expect.js").CompareMask;
|
|
4
|
-
export declare const check: (parsed: import("../../types.js").ParsedBridgeCall) => import("../../../index.js").BridgeErrorDefinition | undefined;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { knownCompare } from '../../expect.js';
|
|
2
|
-
import { bridgeShape } from '../shape.js';
|
|
3
|
-
import { applyMayanData, mayanDataParam } from '../params.js';
|
|
4
|
-
import { lifiBridgeMethod } from '../method.js';
|
|
5
|
-
export const methods = [
|
|
6
|
-
lifiBridgeMethod('startBridgeTokensViaMayan', '0xb4875292', [mayanDataParam], false, (parsed, args) => applyMayanData(parsed, args.mayanData)),
|
|
7
|
-
lifiBridgeMethod('swapAndStartBridgeTokensViaMayan', '0x80c65808', [mayanDataParam], true, (parsed, args) => applyMayanData(parsed, args.mayanData)),
|
|
8
|
-
];
|
|
9
|
-
export const compare = knownCompare;
|
|
10
|
-
export const check = bridgeShape;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { type AbiParam, type AbiValue } from '../abi.js';
|
|
2
|
-
import type { CalldataMethod } from '../abi.js';
|
|
3
|
-
import type { ParsedBridgeCall } from '../types.js';
|
|
4
|
-
export declare const lifiBridgeMethod: (name: string, selector: string, tail: AbiParam[], withSwap: boolean, fill?: (parsed: ParsedBridgeCall, args: {
|
|
5
|
-
[key: string]: AbiValue;
|
|
6
|
-
}) => void) => CalldataMethod;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { decodeCall } from '../abi.js';
|
|
2
|
-
import { applyBridgeData, applyFirstSwap, bridgeDataParam, swapDataArrayParam } from './params.js';
|
|
3
|
-
export const lifiBridgeMethod = (name, selector, tail, withSwap, fill) => ({
|
|
4
|
-
name,
|
|
5
|
-
selector,
|
|
6
|
-
decode(data) {
|
|
7
|
-
const params = [bridgeDataParam, ...(withSwap ? [swapDataArrayParam] : []), ...tail];
|
|
8
|
-
const args = decodeCall(params, data);
|
|
9
|
-
const parsed = applyBridgeData(name, args.bridgeData);
|
|
10
|
-
if (withSwap) {
|
|
11
|
-
applyFirstSwap(parsed, args.swapData);
|
|
12
|
-
}
|
|
13
|
-
fill?.(parsed, args);
|
|
14
|
-
return parsed;
|
|
15
|
-
},
|
|
16
|
-
});
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { ParsedBridgeCall } from '../../types.js';
|
|
2
|
-
export declare const methods: import("../../abi.js").CalldataMethod[];
|
|
3
|
-
export declare const compare: (parsed: ParsedBridgeCall) => import("../../expect.js").CompareMask;
|
|
4
|
-
export declare const check: (parsed: ParsedBridgeCall) => import("../../../errors/constants.js").BridgeErrorDefinition | undefined;
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { BRIDGE_ERRORS, BridgeError } from '../../../errors/index.js';
|
|
2
|
-
import { asBigint, asRecord, asString } from '../../abi.js';
|
|
3
|
-
import { knownCompare } from '../../expect.js';
|
|
4
|
-
import { LAYERZERO_CHAINS, NATIVE_TOKEN, isNative } from '../../protocols.js';
|
|
5
|
-
import { lifiBridgeMethod } from '../method.js';
|
|
6
|
-
import { bridgeShape } from '../shape.js';
|
|
7
|
-
const polygon = (parsed) => {
|
|
8
|
-
parsed.destinationChainId = 137n;
|
|
9
|
-
parsed.minOutputAmount = parsed.bridgeAmount;
|
|
10
|
-
if (isNative(parsed.bridgeToken)) {
|
|
11
|
-
parsed.outputToken = '0x7ceb23fd6bc0add59e62ac25578270cff1b9f619';
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
parsed.outputTokenReference = { protocol: 'polygon', token: parsed.bridgeToken, destinationChainId: 137n };
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
const gnosis = (parsed) => {
|
|
18
|
-
parsed.destinationChainId = 100n;
|
|
19
|
-
parsed.minOutputAmount = parsed.bridgeAmount;
|
|
20
|
-
if (['0x6b175474e89094c44da98b954eedeac495271d0f', '0xdc035d45d973e3ec169d2276ddab16f1e407384f'].includes(parsed.bridgeToken)) {
|
|
21
|
-
parsed.outputToken = NATIVE_TOKEN;
|
|
22
|
-
}
|
|
23
|
-
else if (isNative(parsed.bridgeToken)) {
|
|
24
|
-
parsed.outputToken = '0x6a023ccd1ff6f2045c3309768ead9e68f978f6e1';
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
parsed.outputTokenReference = { protocol: 'gnosis', token: parsed.bridgeToken, destinationChainId: 100n };
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
const megaETHData = { name: 'megaETHData', kind: 'tuple', components: [
|
|
31
|
-
{ name: 'assetIdOnL2', kind: 'address' }, { name: 'l2Gas', kind: 'uint' },
|
|
32
|
-
{ name: 'requiresDepositTo', kind: 'bool' },
|
|
33
|
-
] };
|
|
34
|
-
const megaETH = (parsed, args) => {
|
|
35
|
-
const data = asRecord(args.megaETHData);
|
|
36
|
-
parsed.destinationChainId = 4326n;
|
|
37
|
-
parsed.minOutputAmount = parsed.bridgeAmount;
|
|
38
|
-
if (isNative(parsed.bridgeToken))
|
|
39
|
-
parsed.outputToken = NATIVE_TOKEN;
|
|
40
|
-
else if (data.requiresDepositTo === false) {
|
|
41
|
-
const token = asString(data.assetIdOnL2);
|
|
42
|
-
if (isNative(token))
|
|
43
|
-
throw new BridgeError(BRIDGE_ERRORS.MISSING_MEGAETH_DESTINATION_TOKEN);
|
|
44
|
-
parsed.outputToken = token;
|
|
45
|
-
}
|
|
46
|
-
// Custom depositTo bridges choose their remote token outside this calldata.
|
|
47
|
-
};
|
|
48
|
-
const supersetData = {
|
|
49
|
-
name: 'supersetData', kind: 'tuple', components: [
|
|
50
|
-
{ name: 'path', kind: 'bytes' }, { name: 'amountOutMin', kind: 'uint' },
|
|
51
|
-
{ name: 'refundAddress', kind: 'address' }, { name: 'fallbackEoA', kind: 'address' },
|
|
52
|
-
{ name: 'deadline', kind: 'uint' }, { name: 'toEid', kind: 'uint' },
|
|
53
|
-
{ name: 'options', kind: 'bytes' }, { name: 'lzFee', kind: 'uint' },
|
|
54
|
-
],
|
|
55
|
-
};
|
|
56
|
-
const superset = (parsed, args) => {
|
|
57
|
-
const data = asRecord(args.supersetData);
|
|
58
|
-
const path = asString(data.path).slice(2);
|
|
59
|
-
if (path.length < 64 || (path.length - 64) % 70 !== 0)
|
|
60
|
-
throw new BridgeError(BRIDGE_ERRORS.INVALID_SUPERSET_OMNI_TOKEN_PATH);
|
|
61
|
-
parsed.minOutputAmount = asBigint(data.amountOutMin);
|
|
62
|
-
parsed.destinationChainRef = `layerzero:${asBigint(data.toEid)}`;
|
|
63
|
-
parsed.destinationChainId = LAYERZERO_CHAINS[asBigint(data.toEid).toString()];
|
|
64
|
-
parsed.outputTokenReference = {
|
|
65
|
-
protocol: 'superset', tokenId: `0x${path.slice(-64)}`,
|
|
66
|
-
destinationChainId: parsed.destinationChainId, destinationChainRef: parsed.destinationChainRef,
|
|
67
|
-
};
|
|
68
|
-
};
|
|
69
|
-
export const methods = [
|
|
70
|
-
lifiBridgeMethod('startBridgeTokensViaPolygonBridge', '0xaf62c7d6', [], false, polygon),
|
|
71
|
-
lifiBridgeMethod('swapAndStartBridgeTokensViaPolygonBridge', '0xb4f37581', [], true, polygon),
|
|
72
|
-
lifiBridgeMethod('startBridgeTokensViaGnosisBridge', '0xf66fe519', [], false, gnosis),
|
|
73
|
-
lifiBridgeMethod('swapAndStartBridgeTokensViaGnosisBridge', '0x7bf96e0a', [], true, gnosis),
|
|
74
|
-
lifiBridgeMethod('startBridgeTokensViaMegaETHBridge', '0x4213dfff', [megaETHData], false, megaETH),
|
|
75
|
-
lifiBridgeMethod('swapAndStartBridgeTokensViaMegaETHBridge', '0x22256e89', [megaETHData], true, megaETH),
|
|
76
|
-
lifiBridgeMethod('startBridgeTokensViaSuperset', '0x0691ff78', [supersetData], false, superset),
|
|
77
|
-
lifiBridgeMethod('swapAndStartBridgeTokensViaSuperset', '0xf26e657f', [supersetData], true, superset),
|
|
78
|
-
];
|
|
79
|
-
export const compare = knownCompare;
|
|
80
|
-
export const check = bridgeShape;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { type AbiParam, type AbiValue } from '../abi.js';
|
|
2
|
-
import type { ParsedBridgeCall } from '../types.js';
|
|
3
|
-
export { applyFirstSwap, swapDataArrayParam, swapDataParam } from './swapData.js';
|
|
4
|
-
export declare const bridgeDataParam: AbiParam;
|
|
5
|
-
export declare const acrossDataParam: AbiParam;
|
|
6
|
-
export declare const stargateDataParam: AbiParam;
|
|
7
|
-
export declare const relayDepositoryDataParam: AbiParam;
|
|
8
|
-
export declare const mayanDataParam: AbiParam;
|
|
9
|
-
export declare const gasZipDataParam: AbiParam;
|
|
10
|
-
export declare const squidDataParam: AbiParam;
|
|
11
|
-
export declare const acrossPackedParam: AbiParam;
|
|
12
|
-
export declare const applyBridgeData: (method: string, raw: AbiValue) => ParsedBridgeCall;
|
|
13
|
-
export declare const applyAcrossData: (parsed: ParsedBridgeCall, raw: AbiValue) => void;
|
|
14
|
-
export declare const applyStargateData: (parsed: ParsedBridgeCall, raw: AbiValue) => void;
|
|
15
|
-
export declare const applyRelayDepositoryData: (parsed: ParsedBridgeCall, raw: AbiValue) => void;
|
|
16
|
-
export declare const applyMayanData: (parsed: ParsedBridgeCall, raw: AbiValue) => void;
|
|
17
|
-
export declare const applyGasZipData: (parsed: ParsedBridgeCall, raw: AbiValue) => void;
|
|
18
|
-
export declare const applySquidData: (parsed: ParsedBridgeCall, raw: AbiValue) => void;
|
|
19
|
-
export declare const polymerDataParam: AbiParam;
|
|
20
|
-
export declare const lifiIntentDataParam: AbiParam;
|
|
21
|
-
export declare const layerSwapDataParam: AbiParam;
|
|
22
|
-
export declare const applyPolymerData: (parsed: ParsedBridgeCall, raw: AbiValue) => void;
|
|
23
|
-
export declare const applyLifiIntentData: (parsed: ParsedBridgeCall, raw: AbiValue) => void;
|
|
24
|
-
export declare const celerCircleDataParam: AbiParam;
|
|
25
|
-
export declare const paxosDataParam: AbiParam;
|
|
26
|
-
export declare const applyPaxosData: (parsed: ParsedBridgeCall, raw: AbiValue) => void;
|
|
27
|
-
export declare const applyLayerSwapData: (parsed: ParsedBridgeCall, raw: AbiValue) => void;
|
|
28
|
-
export declare const applyCelerCircleData: (parsed: ParsedBridgeCall, raw: AbiValue) => void;
|