@wormhole-foundation/sdk-evm-portico 0.10.12-beta.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/api.d.ts CHANGED
@@ -1,10 +1,44 @@
1
- import type { Chain, TokenAddress } from '@wormhole-foundation/sdk-connect';
1
+ import type { Chain, ChainAddress, Network, TokenAddress, TokenId } from '@wormhole-foundation/sdk-connect';
2
+ import { PorticoBridge } from '@wormhole-foundation/sdk-connect';
3
+ import type { EvmChains } from '@wormhole-foundation/sdk-evm';
2
4
  export declare const RELAYER_FEE_API_URL = "https://gfx.relayers.xlabs.xyz/api/v1/swap/quote";
5
+ export declare const OKU_TRADE_BASE_URL = "https://oku.trade/app";
6
+ export interface CreateOrderRequest {
7
+ startingChainId: number;
8
+ destinationChainId: number;
9
+ startingToken: string;
10
+ startingTokenAmount: string;
11
+ destinationToken: string;
12
+ destinationAddress: string;
13
+ relayerFee: string;
14
+ feeTierStart: number;
15
+ feeTierEnd: number;
16
+ minAmountStart: string;
17
+ minAmountEnd: string;
18
+ bridgeNonce: number;
19
+ shouldWrapNative: boolean;
20
+ shouldUnwrapNative: boolean;
21
+ porticoAddress: string;
22
+ destinationPorticoAddress: string;
23
+ }
24
+ export interface CreateOrderResponse {
25
+ transactionData: string;
26
+ transactionTarget: string;
27
+ transactionValue: string;
28
+ startParameters: string[];
29
+ estimatedAmountOut: string;
30
+ }
3
31
  export interface RelayerQuoteResponse {
4
32
  fee: string;
5
33
  validUntil: string;
6
34
  }
7
35
  export declare class PorticoApi {
36
+ static createOrder<N extends Network, C extends EvmChains>(network: N, chain: C, receiver: ChainAddress, token: TokenAddress<C>, amount: bigint, destToken: TokenId, quote: PorticoBridge.Quote, nonce: number): Promise<CreateOrderResponse>;
37
+ /**
38
+ * Validates that the response from the order creation API matches the request
39
+ * throws an error if there is a mismatch
40
+ */
41
+ static validateCreateOrderResponse: (response: CreateOrderResponse, request: CreateOrderRequest) => void;
8
42
  static quoteRelayer<C extends Chain>(chain: Chain, from: TokenAddress<C>, to: TokenAddress<C>): Promise<bigint>;
9
43
  }
10
44
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAQ5E,eAAO,MAAM,mBAAmB,qDACoB,CAAC;AAErD,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,UAAU;WACR,YAAY,CAAC,CAAC,SAAS,KAAK,EACvC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,GAClB,OAAO,CAAC,MAAM,CAAC;CA8BnB"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,OAAO,EACR,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,aAAa,EASd,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAK9D,eAAO,MAAM,mBAAmB,qDACoB,CAAC;AACrD,eAAO,MAAM,kBAAkB,0BAA0B,CAAC;AAI1D,MAAM,WAAW,kBAAkB;IAEjC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAE3B,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,UAAU;WAER,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,SAAS,EAC7D,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,aAAa,CAAC,KAAK,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,mBAAmB,CAAC;IA6E/B;;;OAGG;IACH,MAAM,CAAC,2BAA2B,aACtB,mBAAmB,WACpB,kBAAkB,KAC1B,IAAI,CAuGL;WAEW,YAAY,CAAC,CAAC,SAAS,KAAK,EACvC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,GAClB,OAAO,CAAC,MAAM,CAAC;CA8BnB"}
package/dist/cjs/api.js CHANGED
@@ -3,11 +3,132 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.PorticoApi = exports.RELAYER_FEE_API_URL = void 0;
6
+ exports.PorticoApi = exports.OKU_TRADE_BASE_URL = exports.RELAYER_FEE_API_URL = void 0;
7
7
  const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
8
8
  const axios_1 = __importDefault(require("axios"));
9
+ const abis_js_1 = require("./abis.js");
10
+ const consts_js_1 = require("./consts.js");
9
11
  exports.RELAYER_FEE_API_URL = 'https://gfx.relayers.xlabs.xyz/api/v1/swap/quote';
12
+ exports.OKU_TRADE_BASE_URL = 'https://oku.trade/app';
13
+ const CREATE_ORDER_API_URL = 'https://thermae.fly.dev/api/order/create';
10
14
  class PorticoApi {
15
+ // Post the order to the portico API
16
+ static async createOrder(network, chain, receiver, token, amount, destToken, quote, nonce) {
17
+ try {
18
+ const { minAmountStart, minAmountFinish } = quote.swapAmounts;
19
+ const receiverAddress = (0, sdk_connect_1.canonicalAddress)(receiver);
20
+ const [isStartTokenNative, startToken] = (0, sdk_connect_1.resolveWrappedToken)(network, chain, token);
21
+ const [isFinalTokenNative, finalToken] = (0, sdk_connect_1.resolveWrappedToken)(network, receiver.chain, destToken);
22
+ const startTokenAddress = (0, sdk_connect_1.canonicalAddress)(startToken);
23
+ const finalTokenAddress = (0, sdk_connect_1.canonicalAddress)(finalToken);
24
+ const sourcePorticoAddress = sdk_connect_1.contracts.portico.get(network, chain).portico;
25
+ const destinationPorticoAddress = sdk_connect_1.contracts.portico.get(network, receiver.chain).portico;
26
+ const startingChainId = sdk_connect_1.nativeChainIds.networkChainToNativeChainId.get(network, chain);
27
+ const destinationChainId = sdk_connect_1.nativeChainIds.networkChainToNativeChainId.get(network, receiver.chain);
28
+ // Create the order
29
+ const orderRequest = {
30
+ startingChainId: Number(startingChainId),
31
+ startingToken: startTokenAddress.toLowerCase(),
32
+ destinationChainId: Number(destinationChainId),
33
+ destinationToken: finalTokenAddress.toLowerCase(),
34
+ destinationAddress: receiverAddress,
35
+ porticoAddress: sourcePorticoAddress,
36
+ destinationPorticoAddress: destinationPorticoAddress,
37
+ startingTokenAmount: amount.toString(),
38
+ minAmountStart: minAmountStart.toString(),
39
+ minAmountEnd: minAmountFinish.toString(),
40
+ bridgeNonce: nonce,
41
+ relayerFee: quote.relayerFee.toString(),
42
+ feeTierStart: consts_js_1.FEE_TIER,
43
+ feeTierEnd: consts_js_1.FEE_TIER,
44
+ shouldWrapNative: isStartTokenNative,
45
+ shouldUnwrapNative: isFinalTokenNative,
46
+ };
47
+ const response = await axios_1.default.post(CREATE_ORDER_API_URL, orderRequest);
48
+ // Validate the response, not strictly necessary but if some details are wrong we want to know
49
+ this.validateCreateOrderResponse(response.data, orderRequest);
50
+ return response.data;
51
+ }
52
+ catch (e) {
53
+ if (axios_1.default.isAxiosError(e)) {
54
+ const message = `${e.response?.statusText}: ${e.response?.data.message}`;
55
+ throw new Error(`Could not create order: ${message},`);
56
+ }
57
+ throw e;
58
+ }
59
+ }
60
+ /**
61
+ * Validates that the response from the order creation API matches the request
62
+ * throws an error if there is a mismatch
63
+ */
64
+ static validateCreateOrderResponse = (response, request) => {
65
+ if (!(0, sdk_connect_1.isEqualCaseInsensitive)(request.porticoAddress || '', response.transactionTarget)) {
66
+ throw new Error('portico address mismatch');
67
+ }
68
+ const decoded = abis_js_1.porticoAbi.decodeFunctionData('start', response.transactionData);
69
+ if (decoded.length !== 1 || decoded[0].length !== 10) {
70
+ throw new Error('decoded length mismatch');
71
+ }
72
+ const flagSetBuffer = sdk_connect_1.encoding.hex.decode(decoded[0][0]);
73
+ if (flagSetBuffer.length !== 32) {
74
+ throw new Error('flag set length mismatch');
75
+ }
76
+ const { recipientChain, feeTierStart, feeTierFinish, flags } = sdk_connect_1.PorticoBridge.deserializeFlagSet(flagSetBuffer);
77
+ const { shouldWrapNative, shouldUnwrapNative } = flags;
78
+ const [_, expectedChain] = sdk_connect_1.nativeChainIds.platformNativeChainIdToNetworkChain('Evm', BigInt(request.destinationChainId));
79
+ if (recipientChain !== (0, sdk_connect_1.toChainId)(expectedChain)) {
80
+ throw new Error('recipient chain mismatch');
81
+ }
82
+ if (feeTierStart !== request.feeTierStart) {
83
+ throw new Error('fee tier start mismatch');
84
+ }
85
+ if (feeTierFinish !== request.feeTierEnd) {
86
+ throw new Error('fee tier end mismatch');
87
+ }
88
+ if (!!shouldWrapNative !== request.shouldWrapNative) {
89
+ throw new Error('should wrap native mismatch');
90
+ }
91
+ if (!!shouldUnwrapNative !== request.shouldUnwrapNative) {
92
+ throw new Error('should unwrap native mismatch');
93
+ }
94
+ const startTokenAddress = decoded[0][1];
95
+ if (!(0, sdk_connect_1.isEqualCaseInsensitive)(startTokenAddress, request.startingToken)) {
96
+ throw new Error('start token address mismatch');
97
+ }
98
+ // const startTokenId = Wormhole.chainAddress(toChain(request.startingChainId), startTokenAddress);
99
+ // const canonicalTokenAddress: string = decoded[0][2];
100
+ // if (!isEqualCaseInsensitive(canonicalTokenAddress, getOriginalAddress("Mainnet", startTokenId))) {
101
+ // throw new Error("canonical token address mismatch");
102
+ // }
103
+ const finalTokenAddress = decoded[0][3];
104
+ if (!(0, sdk_connect_1.isEqualCaseInsensitive)(finalTokenAddress, request.destinationToken)) {
105
+ throw new Error('final token address mismatch');
106
+ }
107
+ const recipientAddress = decoded[0][4];
108
+ if (!(0, sdk_connect_1.isEqualCaseInsensitive)(recipientAddress, request.destinationAddress)) {
109
+ throw new Error('recipient address mismatch');
110
+ }
111
+ const destinationPorticoAddress = decoded[0][5];
112
+ if (!(0, sdk_connect_1.isEqualCaseInsensitive)(destinationPorticoAddress, request.destinationPorticoAddress || '')) {
113
+ throw new Error('destination portico address mismatch');
114
+ }
115
+ const amountSpecified = decoded[0][6];
116
+ if (amountSpecified.toString() !== request.startingTokenAmount) {
117
+ throw new Error('amount mismatch');
118
+ }
119
+ const minAmountStart = decoded[0][7];
120
+ if (minAmountStart.toString() !== request.minAmountStart) {
121
+ throw new Error('min amount start mismatch');
122
+ }
123
+ const minAmountFinish = decoded[0][8];
124
+ if (minAmountFinish.toString() !== request.minAmountEnd) {
125
+ throw new Error('min amount finish mismatch');
126
+ }
127
+ const relayerFee = decoded[0][9];
128
+ if (relayerFee.toString() !== request.relayerFee) {
129
+ throw new Error('relayer fee mismatch');
130
+ }
131
+ };
11
132
  static async quoteRelayer(chain, from, to) {
12
133
  if ((0, sdk_connect_1.isNative)(from) || (0, sdk_connect_1.isNative)(to))
13
134
  throw new Error('how did you get here tho?');
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":";;;;;;AACA,kEAI0C;AAC1C,kDAA0B;AAEb,QAAA,mBAAmB,GAC9B,kDAAkD,CAAC;AAOrD,MAAa,UAAU;IACrB,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,KAAY,EACZ,IAAqB,EACrB,EAAmB;QAEnB,IAAI,IAAA,sBAAQ,EAAC,IAAI,CAAC,IAAI,IAAA,sBAAQ,EAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAE/C,MAAM,WAAW,GAAG,sBAAQ,CAAC,GAAG,CAAC,MAAM,CACrC,IAAI,CAAC,kBAAkB,EAAE,CAAC,YAAY,EAAE,EACxC,KAAK,CACN,CAAC;QAEF,MAAM,WAAW,GAAG,sBAAQ,CAAC,GAAG,CAAC,MAAM,CACrC,EAAE,CAAC,kBAAkB,EAAE,CAAC,YAAY,EAAE,EACtC,KAAK,CACN,CAAC;QAEF,MAAM,WAAW,GAAG,IAAA,uBAAS,EAAC,KAAK,CAAC,CAAC;QAErC,MAAM,OAAO,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,2BAAmB,EACnB,OAAO,CACR,CAAC;YACF,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,eAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;CACF;AAnCD,gCAmCC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@ import { PorticoBridge } from '@wormhole-foundation/sdk-connect';
3
3
  import type { EvmChains } from '@wormhole-foundation/sdk-evm';
4
4
  import { EvmUnsignedTransaction } from '@wormhole-foundation/sdk-evm';
5
5
  import type { Provider } from 'ethers';
6
+ import { ethers } from 'ethers';
6
7
  import { EvmWormholeCore } from '@wormhole-foundation/sdk-evm-core';
7
- import { EvmTokenBridge } from '@wormhole-foundation/sdk-evm-tokenbridge';
8
8
  import '@wormhole-foundation/sdk-evm-tokenbridge';
9
9
  export declare class EvmPorticoBridge<N extends Network, C extends EvmChains = EvmChains> implements PorticoBridge<N, C> {
10
10
  readonly network: N;
@@ -12,24 +12,19 @@ export declare class EvmPorticoBridge<N extends Network, C extends EvmChains = E
12
12
  readonly provider: Provider;
13
13
  readonly contracts: Contracts;
14
14
  chainId: bigint;
15
+ porticoAddress: string;
16
+ uniswapAddress: string;
17
+ porticoContract: ethers.Contract;
18
+ uniswapContract: ethers.Contract;
15
19
  core: EvmWormholeCore<N, C>;
16
- tokenBridge: EvmTokenBridge<N, C>;
17
20
  constructor(network: N, chain: C, provider: Provider, contracts: Contracts);
18
21
  static fromRpc<N extends Network>(provider: Provider, config: ChainsConfig<N, Platform>): Promise<EvmPorticoBridge<N, EvmChains>>;
19
- transfer(sender: AccountAddress<C>, receiver: ChainAddress, token: TokenAddress<C>, amount: bigint, destToken: TokenId, destinationPorticoAddress: string, quote: PorticoBridge.Quote): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
22
+ transfer(sender: AccountAddress<C>, receiver: ChainAddress, token: TokenAddress<C>, amount: bigint, destToken: TokenId, quote: PorticoBridge.Quote): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
20
23
  redeem(sender: AccountAddress<C>, vaa: PorticoBridge.VAA): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
21
- isTransferCompleted(vaa: PorticoBridge.VAA): Promise<boolean>;
22
- quoteSwap(input: TokenAddress<C>, output: TokenAddress<C>, tokenGroup: string, amount: bigint): Promise<bigint>;
24
+ quoteSwap(input: TokenAddress<C>, output: TokenAddress<C>, amount: bigint): Promise<bigint>;
23
25
  quoteRelay(startToken: TokenAddress<C>, endToken: TokenAddress<C>): Promise<bigint>;
24
- getTransferrableToken(address: string): Promise<TokenId>;
25
- supportedTokens(): {
26
- group: string;
27
- token: TokenId;
28
- }[];
29
- getTokenGroup(address: string): string;
26
+ getTransferrableToken(address: string): TokenId;
30
27
  private approve;
31
28
  private createUnsignedTransaction;
32
- getPorticoAddress(group: string): string;
33
- private getQuoterAddress;
34
29
  }
35
30
  //# sourceMappingURL=bridge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,OAAO,EACR,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,aAAa,EASd,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAGL,sBAAsB,EAGvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAsB,MAAM,QAAQ,CAAC;AAM3D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE1E,OAAO,0CAA0C,CAAC;AAElD,qBAAa,gBAAgB,CAC3B,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,SAAS,GAAG,SAAS,CAC/B,YAAW,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAS5B,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,QAAQ,EAAE,QAAQ;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAV/B,OAAO,EAAE,MAAM,CAAC;IAEhB,IAAI,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,WAAW,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAGvB,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS;WAelB,OAAO,CAAC,CAAC,SAAS,OAAO,EACpC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAUnC,QAAQ,CACb,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,EAClB,yBAAyB,EAAE,MAAM,EACjC,KAAK,EAAE,aAAa,CAAC,KAAK;IAoFrB,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,GAAG;IAwBzD,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAO7D,SAAS,CACb,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC;IA+BZ,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAMjE,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkC9D,eAAe,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,EAAE;IAUtD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;YAOvB,OAAO;IAuBtB,OAAO,CAAC,yBAAyB;IAajC,iBAAiB,CAAC,KAAK,EAAE,MAAM;IAS/B,OAAO,CAAC,gBAAgB;CAQzB"}
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,OAAO,EACR,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,aAAa,EASd,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAGL,sBAAsB,EAGvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAsB,MAAM,QAAQ,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAShC,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,0CAA0C,CAAC;AAElD,qBAAa,gBAAgB,CAC3B,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,SAAS,GAAG,SAAS,CAC/B,YAAW,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAW5B,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,QAAQ,EAAE,QAAQ;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAZ/B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IAEvB,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC;IACjC,IAAI,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAGjB,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS;WA+BlB,OAAO,CAAC,CAAC,SAAS,OAAO,EACpC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAUnC,QAAQ,CACb,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,aAAa,CAAC,KAAK;IAqFrB,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,GAAG;IAazD,SAAS,CACb,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC;IAyBZ,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAMvE,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;YAsBhC,OAAO;IAuBtB,OAAO,CAAC,yBAAyB;CAYlC"}
@@ -7,8 +7,8 @@ const ethers_1 = require("ethers");
7
7
  const abis_js_1 = require("./abis.js");
8
8
  const api_js_1 = require("./api.js");
9
9
  const consts_js_1 = require("./consts.js");
10
+ const tokens_1 = require("@wormhole-foundation/sdk-connect/tokens");
10
11
  const sdk_evm_core_1 = require("@wormhole-foundation/sdk-evm-core");
11
- const sdk_evm_tokenbridge_1 = require("@wormhole-foundation/sdk-evm-tokenbridge");
12
12
  require("@wormhole-foundation/sdk-evm-tokenbridge");
13
13
  class EvmPorticoBridge {
14
14
  network;
@@ -16,8 +16,11 @@ class EvmPorticoBridge {
16
16
  provider;
17
17
  contracts;
18
18
  chainId;
19
+ porticoAddress;
20
+ uniswapAddress;
21
+ porticoContract;
22
+ uniswapContract;
19
23
  core;
20
- tokenBridge;
21
24
  constructor(network, chain, provider, contracts) {
22
25
  this.network = network;
23
26
  this.chain = chain;
@@ -26,8 +29,12 @@ class EvmPorticoBridge {
26
29
  if (!contracts.portico)
27
30
  throw new Error('Unsupported chain, no contract addresses for: ' + chain);
28
31
  this.core = new sdk_evm_core_1.EvmWormholeCore(network, chain, provider, contracts);
29
- this.tokenBridge = new sdk_evm_tokenbridge_1.EvmTokenBridge(network, chain, provider, contracts);
32
+ const { portico: porticoAddress, uniswapQuoterV2: uniswapAddress } = contracts.portico;
33
+ this.porticoAddress = porticoAddress;
34
+ this.uniswapAddress = uniswapAddress;
30
35
  this.chainId = sdk_connect_1.nativeChainIds.networkChainToNativeChainId.get(network, chain);
36
+ this.porticoContract = new ethers_1.ethers.Contract(this.porticoAddress, abis_js_1.porticoAbi.fragments, this.provider);
37
+ this.uniswapContract = new ethers_1.ethers.Contract(this.uniswapAddress, abis_js_1.uniswapQuoterV2Abi.fragments, this.provider);
31
38
  }
32
39
  static async fromRpc(provider, config) {
33
40
  const [network, chain] = await sdk_evm_1.EvmPlatform.chainFromRpc(provider);
@@ -36,7 +43,7 @@ class EvmPorticoBridge {
36
43
  throw new Error(`Network mismatch: ${conf.network} != ${network}`);
37
44
  return new EvmPorticoBridge(network, chain, provider, conf.contracts);
38
45
  }
39
- async *transfer(sender, receiver, token, amount, destToken, destinationPorticoAddress, quote) {
46
+ async *transfer(sender, receiver, token, amount, destToken, quote) {
40
47
  const { minAmountStart, minAmountFinish } = quote.swapAmounts;
41
48
  if (minAmountStart === 0n)
42
49
  throw new Error('Invalid min swap amount');
@@ -46,9 +53,10 @@ class EvmPorticoBridge {
46
53
  const [isStartTokenNative, startToken] = (0, sdk_connect_1.resolveWrappedToken)(this.network, this.chain, token);
47
54
  const [isFinalTokenNative, finalToken] = (0, sdk_connect_1.resolveWrappedToken)(this.network, receiver.chain, destToken);
48
55
  const startTokenAddress = (0, sdk_connect_1.canonicalAddress)(startToken);
49
- const cannonTokenAddress = (0, sdk_connect_1.canonicalAddress)(await this.getTransferrableToken(startTokenAddress));
56
+ const cannonTokenAddress = (0, sdk_connect_1.canonicalAddress)(this.getTransferrableToken(startTokenAddress));
50
57
  const receiverAddress = (0, sdk_connect_1.canonicalAddress)(receiver);
51
58
  const finalTokenAddress = (0, sdk_connect_1.canonicalAddress)(finalToken);
59
+ const destinationPorticoAddress = sdk_connect_1.contracts.portico.get(this.network, receiver.chain).portico;
52
60
  const nonce = new Date().valueOf() % 2 ** 4;
53
61
  const flags = sdk_connect_1.PorticoBridge.serializeFlagSet({
54
62
  flags: {
@@ -75,47 +83,32 @@ class EvmPorticoBridge {
75
83
  quote.relayerFee.toString(),
76
84
  ],
77
85
  ]);
78
- const group = this.getTokenGroup(startToken.address.toString());
79
- const porticoAddress = this.getPorticoAddress(group);
80
86
  // Approve the token if necessary
81
87
  if (!isStartTokenNative)
82
- yield* this.approve(startTokenAddress, senderAddress, amount, porticoAddress);
88
+ yield* this.approve(startTokenAddress, senderAddress, amount, this.porticoAddress);
83
89
  const messageFee = await this.core.getMessageFee();
84
90
  const tx = {
85
- to: porticoAddress,
91
+ to: this.porticoAddress,
86
92
  data: transactionData,
87
93
  value: messageFee + (isStartTokenNative ? amount : 0n),
88
94
  };
89
95
  yield this.createUnsignedTransaction((0, sdk_evm_1.addFrom)(tx, senderAddress), 'PorticoBridge.Transfer');
90
96
  }
91
97
  async *redeem(sender, vaa) {
92
- const recipientChain = (0, sdk_connect_1.toChain)(vaa.payload.payload.flagSet.recipientChain);
93
- const tokenAddress = vaa.payload.payload.finalTokenAddress
94
- .toNative(recipientChain)
95
- .toString();
96
- const group = this.getTokenGroup(tokenAddress);
97
- const porticoAddress = this.getPorticoAddress(group);
98
- const contract = new ethers_1.ethers.Contract(porticoAddress, abis_js_1.porticoAbi.fragments, this.provider);
99
- const txReq = await contract
98
+ const txReq = await this.porticoContract
100
99
  .getFunction('receiveMessageAndSwap')
101
100
  .populateTransaction((0, sdk_connect_1.serialize)(vaa));
102
101
  const address = new sdk_evm_1.EvmAddress(sender).toString();
103
102
  yield this.createUnsignedTransaction((0, sdk_evm_1.addFrom)(txReq, address), 'PorticoBridge.Redeem');
104
103
  }
105
- async isTransferCompleted(vaa) {
106
- const isCompleted = await this.tokenBridge.tokenBridge.isTransferCompleted((0, ethers_1.keccak256)(vaa.hash));
107
- return isCompleted;
108
- }
109
- async quoteSwap(input, output, tokenGroup, amount) {
104
+ async quoteSwap(input, output, amount) {
110
105
  const [, inputTokenId] = (0, sdk_connect_1.resolveWrappedToken)(this.network, this.chain, input);
111
106
  const [, outputTokenId] = (0, sdk_connect_1.resolveWrappedToken)(this.network, this.chain, output);
112
107
  const inputAddress = (0, sdk_connect_1.canonicalAddress)(inputTokenId);
113
108
  const outputAddress = (0, sdk_connect_1.canonicalAddress)(outputTokenId);
114
109
  if ((0, sdk_connect_1.isEqualCaseInsensitive)(inputAddress, outputAddress))
115
110
  return amount;
116
- const quoterAddress = this.getQuoterAddress(tokenGroup);
117
- const quoter = new ethers_1.ethers.Contract(quoterAddress, abis_js_1.uniswapQuoterV2Abi.fragments, this.provider);
118
- const result = await quoter
111
+ const result = await this.uniswapContract
119
112
  .getFunction('quoteExactInputSingle')
120
113
  .staticCall([inputAddress, outputAddress, amount, consts_js_1.FEE_TIER, 0]);
121
114
  return result[0];
@@ -123,42 +116,21 @@ class EvmPorticoBridge {
123
116
  async quoteRelay(startToken, endToken) {
124
117
  return await api_js_1.PorticoApi.quoteRelayer(this.chain, startToken, endToken);
125
118
  }
126
- // For a given token, return the Wormhole-wrapped/highway token
127
- // that actually gets bridged from this chain
128
- async getTransferrableToken(address) {
129
- const token = sdk_connect_1.Wormhole.tokenId(this.chain, address);
130
- const [, wrappedToken] = (0, sdk_connect_1.resolveWrappedToken)(this.network, this.chain, token);
119
+ // For a given token, return the corresponding
120
+ // Wormhole wrapped token that originated on Ethereum
121
+ getTransferrableToken(address) {
131
122
  if (this.chain === 'Ethereum')
132
- return wrappedToken;
133
- // Find the group that this token belongs to
134
- const group = Object.values(consts_js_1.supportedTokens).find((tokens) => tokens.find((t) => t.chain === this.chain &&
135
- (0, sdk_connect_1.canonicalAddress)(t) === (0, sdk_connect_1.canonicalAddress)(wrappedToken)));
136
- if (!group)
137
- throw new Error(`No token group found for ${address} on ${this.chain}`);
138
- // Find the token in this group that originates on Ethereum
139
- const tokenOnEthereum = group.find((t) => t.chain === 'Ethereum');
140
- if (!tokenOnEthereum)
141
- throw new Error(`No Ethereum origin token found for ${address} on ${this.chain}`);
142
- // Now find the corresponding Wormhole-wrapped/highway token on this chain
143
- const highwayTokenAddr = await this.tokenBridge.getWrappedAsset(tokenOnEthereum);
144
- return sdk_connect_1.Wormhole.tokenId(this.chain, highwayTokenAddr.toString());
145
- }
146
- supportedTokens() {
147
- const result = [];
148
- for (const [group, tokens] of Object.entries(consts_js_1.supportedTokens)) {
149
- for (const token of tokens) {
150
- if (token.chain === this.chain)
151
- result.push({ group, token });
152
- }
153
- }
154
- return result;
155
- }
156
- getTokenGroup(address) {
157
- const tokens = this.supportedTokens();
158
- const token = tokens.find((t) => (0, sdk_connect_1.canonicalAddress)(t.token) === address);
159
- if (!token)
160
- throw new Error('Token not found');
161
- return token.group;
123
+ return sdk_connect_1.Wormhole.tokenId('Ethereum', address);
124
+ // get the nativeTokenDetails
125
+ const nToken = (0, tokens_1.getTokenByAddress)(this.network, this.chain, address);
126
+ if (!nToken)
127
+ throw new Error('Unsupported source token: ' + address);
128
+ const xToken = (0, tokens_1.getTokensBySymbol)(this.network, this.chain, nToken.symbol)?.find((orig) => {
129
+ return orig.original === 'Ethereum';
130
+ });
131
+ if (!xToken)
132
+ throw new Error(`Unsupported symbol for chain ${nToken.symbol}: ${this.chain} `);
133
+ return sdk_connect_1.Wormhole.tokenId(xToken.chain, xToken.address);
162
134
  }
163
135
  async *approve(token, senderAddr, amount, contract) {
164
136
  const tokenContract = sdk_evm_1.EvmPlatform.getTokenImplementation(this.provider, token);
@@ -171,22 +143,6 @@ class EvmPorticoBridge {
171
143
  createUnsignedTransaction(txReq, description) {
172
144
  return new sdk_evm_1.EvmUnsignedTransaction((0, sdk_evm_1.addChainId)(txReq, this.chainId), this.network, this.chain, description, false);
173
145
  }
174
- getPorticoAddress(group) {
175
- const portico = this.contracts.portico;
176
- if (group === 'USDT') {
177
- // Use PancakeSwap if available for USDT
178
- return portico.porticoPancakeSwap || portico.porticoUniswap;
179
- }
180
- return portico.porticoUniswap;
181
- }
182
- getQuoterAddress(group) {
183
- const portico = this.contracts.portico;
184
- if (group === 'USDT') {
185
- // Use PancakeSwap if available for USDT
186
- return portico.pancakeSwapQuoterV2 || portico.uniswapQuoterV2;
187
- }
188
- return portico.uniswapQuoterV2;
189
- }
190
146
  }
191
147
  exports.EvmPorticoBridge = EvmPorticoBridge;
192
148
  //# sourceMappingURL=bridge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/bridge.ts"],"names":[],"mappings":";;;AAUA,kEAU0C;AAE1C,0DAMsC;AAEtC,mCAAgC;AAChC,uCAA2D;AAC3D,qCAAsC;AACtC,2CAAuC;AACvC,oEAGiD;AAEjD,oEAAoE;AAEpE,oDAAkD;AAElD,MAAa,gBAAgB;IAchB;IACA;IACA;IACA;IAZX,OAAO,CAAS;IAChB,cAAc,CAAS;IACvB,cAAc,CAAS;IAEvB,eAAe,CAAkB;IACjC,eAAe,CAAkB;IACjC,IAAI,CAAwB;IAE5B,YACW,OAAU,EACV,KAAQ,EACR,QAAkB,EAClB,SAAoB;QAHpB,YAAO,GAAP,OAAO,CAAG;QACV,UAAK,GAAL,KAAK,CAAG;QACR,aAAQ,GAAR,QAAQ,CAAU;QAClB,cAAS,GAAT,SAAS,CAAW;QAE7B,IAAI,CAAC,SAAS,CAAC,OAAO;YACpB,MAAM,IAAI,KAAK,CAAC,gDAAgD,GAAG,KAAK,CAAC,CAAC;QAE5E,IAAI,CAAC,IAAI,GAAG,IAAI,8BAAe,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAErE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,GAChE,SAAS,CAAC,OAAO,CAAC;QAEpB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QAErC,IAAI,CAAC,OAAO,GAAG,4BAAc,CAAC,2BAA2B,CAAC,GAAG,CAC3D,OAAO,EACP,KAAK,CACI,CAAC;QAEZ,IAAI,CAAC,eAAe,GAAG,IAAI,eAAM,CAAC,QAAQ,CACxC,IAAI,CAAC,cAAc,EACnB,oBAAU,CAAC,SAAS,EACpB,IAAI,CAAC,QAAQ,CACd,CAAC;QAEF,IAAI,CAAC,eAAe,GAAG,IAAI,eAAM,CAAC,QAAQ,CACxC,IAAI,CAAC,cAAc,EACnB,4BAAkB,CAAC,SAAS,EAC5B,IAAI,CAAC,QAAQ,CACd,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,QAAkB,EAClB,MAAiC;QAEjC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,qBAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAElE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;YAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,OAAO,OAAO,OAAO,EAAE,CAAC,CAAC;QAErE,OAAO,IAAI,gBAAgB,CAAC,OAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,CAAC,QAAQ,CACb,MAAyB,EACzB,QAAsB,EACtB,KAAsB,EACtB,MAAc,EACd,SAAkB,EAClB,KAA0B;QAE1B,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC;QAC9D,IAAI,cAAc,KAAK,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACtE,IAAI,eAAe,KAAK,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAEvE,MAAM,aAAa,GAAG,IAAI,oBAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAExD,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC,GAAG,IAAA,iCAAmB,EAC1D,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,KAAK,CACN,CAAC;QAEF,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC,GAAG,IAAA,iCAAmB,EAC1D,IAAI,CAAC,OAAO,EACZ,QAAQ,CAAC,KAAK,EACd,SAAS,CACV,CAAC;QAEF,MAAM,iBAAiB,GAAG,IAAA,8BAAgB,EAAC,UAAU,CAAC,CAAC;QAEvD,MAAM,kBAAkB,GAAG,IAAA,8BAAgB,EACzC,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAC9C,CAAC;QAEF,MAAM,eAAe,GAAG,IAAA,8BAAgB,EAAC,QAAQ,CAAC,CAAC;QAEnD,MAAM,iBAAiB,GAAG,IAAA,8BAAgB,EAAC,UAAU,CAAC,CAAC;QAEvD,MAAM,yBAAyB,GAAG,uBAAS,CAAC,OAAO,CAAC,GAAG,CACrD,IAAI,CAAC,OAAO,EACZ,QAAQ,CAAC,KAAK,CACd,CAAC,OAAO,CAAC;QAEX,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,2BAAa,CAAC,gBAAgB,CAAC;YAC3C,KAAK,EAAE;gBACL,gBAAgB,EAAE,kBAAkB;gBACpC,kBAAkB,EAAE,kBAAkB;aACvC;YACD,cAAc,EAAE,IAAA,uBAAS,EAAC,QAAQ,CAAC,KAAK,CAAC;YACzC,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,oBAAQ;YACtB,aAAa,EAAE,oBAAQ;YACvB,OAAO,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC;SAC5B,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,oBAAU,CAAC,kBAAkB,CAAC,OAAO,EAAE;YAC7D;gBACE,KAAK;gBACL,iBAAiB,CAAC,WAAW,EAAE;gBAC/B,kBAAkB;gBAClB,iBAAiB,CAAC,WAAW,EAAE;gBAC/B,eAAe;gBACf,yBAAyB;gBACzB,MAAM,CAAC,QAAQ,EAAE;gBACjB,cAAc,CAAC,QAAQ,EAAE;gBACzB,eAAe,CAAC,QAAQ,EAAE;gBAC1B,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE;aAC5B;SACF,CAAC,CAAC;QAEH,iCAAiC;QACjC,IAAI,CAAC,kBAAkB;YACrB,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CACjB,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,IAAI,CAAC,cAAc,CACpB,CAAC;QAEJ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAEnD,MAAM,EAAE,GAAG;YACT,EAAE,EAAE,IAAI,CAAC,cAAc;YACvB,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,UAAU,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;SACvD,CAAC;QACF,MAAM,IAAI,CAAC,yBAAyB,CAClC,IAAA,iBAAO,EAAC,EAAE,EAAE,aAAa,CAAC,EAC1B,wBAAwB,CACzB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,MAAyB,EAAE,GAAsB;QAC7D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe;aACrC,WAAW,CAAC,uBAAuB,CAAC;aACpC,mBAAmB,CAAC,IAAA,uBAAS,EAAC,GAAG,CAAC,CAAC,CAAC;QAEvC,MAAM,OAAO,GAAG,IAAI,oBAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAElD,MAAM,IAAI,CAAC,yBAAyB,CAClC,IAAA,iBAAO,EAAC,KAAK,EAAE,OAAO,CAAC,EACvB,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CACb,KAAsB,EACtB,MAAuB,EACvB,MAAc;QAEd,MAAM,CAAC,EAAE,YAAY,CAAC,GAAG,IAAA,iCAAmB,EAC1C,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,KAAK,CACN,CAAC;QAEF,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,IAAA,iCAAmB,EAC3C,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,MAAM,CACP,CAAC;QAEF,MAAM,YAAY,GAAG,IAAA,8BAAgB,EAAC,YAAY,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,IAAA,8BAAgB,EAAC,aAAa,CAAC,CAAC;QAEtD,IAAI,IAAA,oCAAsB,EAAC,YAAY,EAAE,aAAa,CAAC;YAAE,OAAO,MAAM,CAAC;QAEvE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe;aACtC,WAAW,CAAC,uBAAuB,CAAC;aACpC,UAAU,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,oBAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAElE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAA2B,EAAE,QAAyB;QACrE,OAAO,MAAM,mBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACzE,CAAC;IAED,8CAA8C;IAC9C,qDAAqD;IACrD,qBAAqB,CAAC,OAAe;QACnC,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU;YAAE,OAAO,sBAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAE5E,6BAA6B;QAC7B,MAAM,MAAM,GAAG,IAAA,0BAAiB,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,OAAO,CAAC,CAAC;QAErE,MAAM,MAAM,GAAG,IAAA,0BAAiB,EAC9B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,MAAM,CAAC,MAAM,CACd,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACf,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM;YACT,MAAM,IAAI,KAAK,CACb,gCAAgC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,GAAG,CAChE,CAAC;QAEJ,OAAO,sBAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,CAAC,OAAO,CACpB,KAAa,EACb,UAAkB,EAClB,MAAc,EACd,QAAgB;QAEhB,MAAM,aAAa,GAAG,qBAAW,CAAC,sBAAsB,CACtD,IAAI,CAAC,QAAQ,EACb,KAAK,CACN,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,SAAS,GAAG,MAAM,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAC3D,QAAQ,EACR,MAAM,CACP,CAAC;YACF,MAAM,IAAI,CAAC,yBAAyB,CAClC,IAAA,iBAAO,EAAC,KAAK,EAAE,UAAU,CAAC,EAC1B,uBAAuB,CACxB,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,yBAAyB,CAC/B,KAAyB,EACzB,WAAmB;QAEnB,OAAO,IAAI,gCAAsB,CAC/B,IAAA,oBAAU,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAC/B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,WAAW,EACX,KAAK,CACN,CAAC;IACJ,CAAC;CACF;AAjQD,4CAiQC"}
@@ -1,8 +1,4 @@
1
1
  export declare const FEE_TIER = 100;
2
- export declare const supportedTokens: {
3
- readonly ETH: readonly [import("@wormhole-foundation/sdk-connect").TokenId<"Arbitrum">, import("@wormhole-foundation/sdk-connect").TokenId<"Base">, import("@wormhole-foundation/sdk-connect").TokenId<"Ethereum">, import("@wormhole-foundation/sdk-connect").TokenId<"Optimism">];
4
- readonly WETH: readonly [import("@wormhole-foundation/sdk-connect").TokenId<"Arbitrum">, import("@wormhole-foundation/sdk-connect").TokenId<"Avalanche">, import("@wormhole-foundation/sdk-connect").TokenId<"Base">, import("@wormhole-foundation/sdk-connect").TokenId<"Bsc">, import("@wormhole-foundation/sdk-connect").TokenId<"Ethereum">, import("@wormhole-foundation/sdk-connect").TokenId<"Optimism">, import("@wormhole-foundation/sdk-connect").TokenId<"Polygon">];
5
- readonly wstETH: readonly [import("@wormhole-foundation/sdk-connect").TokenId<"Arbitrum">, import("@wormhole-foundation/sdk-connect").TokenId<"Base">, import("@wormhole-foundation/sdk-connect").TokenId<"Ethereum">, import("@wormhole-foundation/sdk-connect").TokenId<"Optimism">, import("@wormhole-foundation/sdk-connect").TokenId<"Polygon">];
6
- readonly USDT: readonly [import("@wormhole-foundation/sdk-connect").TokenId<"Arbitrum">, import("@wormhole-foundation/sdk-connect").TokenId<"Avalanche">, import("@wormhole-foundation/sdk-connect").TokenId<"Base">, import("@wormhole-foundation/sdk-connect").TokenId<"Bsc">, import("@wormhole-foundation/sdk-connect").TokenId<"Ethereum">, import("@wormhole-foundation/sdk-connect").TokenId<"Optimism">, import("@wormhole-foundation/sdk-connect").TokenId<"Polygon">, import("@wormhole-foundation/sdk-connect").TokenId<"Celo">];
7
- };
2
+ export declare const SWAP_ERROR = "This transaction will not succeed due to price movement.";
3
+ export declare const swapErrors: string[];
8
4
  //# sourceMappingURL=consts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,MAAM,CAAC;AAE5B,eAAO,MAAM,eAAe;;;;;CAiClB,CAAC"}
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,MAAM,CAAC;AAC5B,eAAO,MAAM,UAAU,6DACqC,CAAC;AAC7D,eAAO,MAAM,UAAU,UAMtB,CAAC"}
@@ -1,40 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.supportedTokens = exports.FEE_TIER = void 0;
4
- const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
3
+ exports.swapErrors = exports.SWAP_ERROR = exports.FEE_TIER = void 0;
5
4
  exports.FEE_TIER = 100;
6
- exports.supportedTokens = {
7
- ETH: [
8
- sdk_connect_1.Wormhole.tokenId('Arbitrum', 'native'),
9
- sdk_connect_1.Wormhole.tokenId('Base', 'native'),
10
- sdk_connect_1.Wormhole.tokenId('Ethereum', 'native'),
11
- sdk_connect_1.Wormhole.tokenId('Optimism', 'native'),
12
- ],
13
- WETH: [
14
- sdk_connect_1.Wormhole.tokenId('Arbitrum', '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1'),
15
- sdk_connect_1.Wormhole.tokenId('Avalanche', '0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB'),
16
- sdk_connect_1.Wormhole.tokenId('Base', '0x4200000000000000000000000000000000000006'),
17
- sdk_connect_1.Wormhole.tokenId('Bsc', '0x2170Ed0880ac9A755fd29B2688956BD959F933F8'),
18
- sdk_connect_1.Wormhole.tokenId('Ethereum', '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'),
19
- sdk_connect_1.Wormhole.tokenId('Optimism', '0x4200000000000000000000000000000000000006'),
20
- sdk_connect_1.Wormhole.tokenId('Polygon', '0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619'),
21
- ],
22
- wstETH: [
23
- sdk_connect_1.Wormhole.tokenId('Arbitrum', '0x5979D7b546E38E414F7E9822514be443A4800529'),
24
- sdk_connect_1.Wormhole.tokenId('Base', '0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452'),
25
- sdk_connect_1.Wormhole.tokenId('Ethereum', '0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0'),
26
- sdk_connect_1.Wormhole.tokenId('Optimism', '0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb'),
27
- sdk_connect_1.Wormhole.tokenId('Polygon', '0x03b54A6e9a984069379fae1a4fC4dBAE93B3bCCD'),
28
- ],
29
- USDT: [
30
- sdk_connect_1.Wormhole.tokenId('Arbitrum', '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9'),
31
- sdk_connect_1.Wormhole.tokenId('Avalanche', '0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7'),
32
- sdk_connect_1.Wormhole.tokenId('Base', '0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2'),
33
- sdk_connect_1.Wormhole.tokenId('Bsc', '0x55d398326f99059fF775485246999027B3197955'),
34
- sdk_connect_1.Wormhole.tokenId('Ethereum', '0xdAC17F958D2ee523a2206206994597C13D831ec7'),
35
- sdk_connect_1.Wormhole.tokenId('Optimism', '0x94b008aA00579c1307B0EF2c499aD98a8ce58e58'),
36
- sdk_connect_1.Wormhole.tokenId('Polygon', '0xc2132D05D31c914a87C6611C10748AEb04B58e8F'),
37
- sdk_connect_1.Wormhole.tokenId('Celo', '0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e'),
38
- ],
39
- };
5
+ exports.SWAP_ERROR = 'This transaction will not succeed due to price movement.';
6
+ exports.swapErrors = [
7
+ 'UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT',
8
+ 'UniswapV2Router: EXCESSIVE_INPUT_AMOUNT',
9
+ 'Too little received',
10
+ 'Too much requested',
11
+ 'STF',
12
+ ];
40
13
  //# sourceMappingURL=consts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":";;;AAAA,kEAA4D;AAE/C,QAAA,QAAQ,GAAG,GAAG,CAAC;AAEf,QAAA,eAAe,GAAG;IAC7B,GAAG,EAAE;QACH,sBAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC;QACtC,sBAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC;QAClC,sBAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC;QACtC,sBAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC;KACvC;IACD,IAAI,EAAE;QACJ,sBAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,4CAA4C,CAAC;QAC1E,sBAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,4CAA4C,CAAC;QAC3E,sBAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,4CAA4C,CAAC;QACtE,sBAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,4CAA4C,CAAC;QACrE,sBAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,4CAA4C,CAAC;QAC1E,sBAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,4CAA4C,CAAC;QAC1E,sBAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,4CAA4C,CAAC;KAC1E;IACD,MAAM,EAAE;QACN,sBAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,4CAA4C,CAAC;QAC1E,sBAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,4CAA4C,CAAC;QACtE,sBAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,4CAA4C,CAAC;QAC1E,sBAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,4CAA4C,CAAC;QAC1E,sBAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,4CAA4C,CAAC;KAC1E;IACD,IAAI,EAAE;QACJ,sBAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,4CAA4C,CAAC;QAC1E,sBAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,4CAA4C,CAAC;QAC3E,sBAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,4CAA4C,CAAC;QACtE,sBAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,4CAA4C,CAAC;QACrE,sBAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,4CAA4C,CAAC;QAC1E,sBAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,4CAA4C,CAAC;QAC1E,sBAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,4CAA4C,CAAC;QACzE,sBAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,4CAA4C,CAAC;KACvE;CACO,CAAC"}
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,GAAG,CAAC;AACf,QAAA,UAAU,GACrB,0DAA0D,CAAC;AAChD,QAAA,UAAU,GAAG;IACxB,6CAA6C;IAC7C,yCAAyC;IACzC,qBAAqB;IACrB,oBAAoB;IACpB,KAAK;CACN,CAAC"}
package/dist/esm/api.d.ts CHANGED
@@ -1,10 +1,44 @@
1
- import type { Chain, TokenAddress } from '@wormhole-foundation/sdk-connect';
1
+ import type { Chain, ChainAddress, Network, TokenAddress, TokenId } from '@wormhole-foundation/sdk-connect';
2
+ import { PorticoBridge } from '@wormhole-foundation/sdk-connect';
3
+ import type { EvmChains } from '@wormhole-foundation/sdk-evm';
2
4
  export declare const RELAYER_FEE_API_URL = "https://gfx.relayers.xlabs.xyz/api/v1/swap/quote";
5
+ export declare const OKU_TRADE_BASE_URL = "https://oku.trade/app";
6
+ export interface CreateOrderRequest {
7
+ startingChainId: number;
8
+ destinationChainId: number;
9
+ startingToken: string;
10
+ startingTokenAmount: string;
11
+ destinationToken: string;
12
+ destinationAddress: string;
13
+ relayerFee: string;
14
+ feeTierStart: number;
15
+ feeTierEnd: number;
16
+ minAmountStart: string;
17
+ minAmountEnd: string;
18
+ bridgeNonce: number;
19
+ shouldWrapNative: boolean;
20
+ shouldUnwrapNative: boolean;
21
+ porticoAddress: string;
22
+ destinationPorticoAddress: string;
23
+ }
24
+ export interface CreateOrderResponse {
25
+ transactionData: string;
26
+ transactionTarget: string;
27
+ transactionValue: string;
28
+ startParameters: string[];
29
+ estimatedAmountOut: string;
30
+ }
3
31
  export interface RelayerQuoteResponse {
4
32
  fee: string;
5
33
  validUntil: string;
6
34
  }
7
35
  export declare class PorticoApi {
36
+ static createOrder<N extends Network, C extends EvmChains>(network: N, chain: C, receiver: ChainAddress, token: TokenAddress<C>, amount: bigint, destToken: TokenId, quote: PorticoBridge.Quote, nonce: number): Promise<CreateOrderResponse>;
37
+ /**
38
+ * Validates that the response from the order creation API matches the request
39
+ * throws an error if there is a mismatch
40
+ */
41
+ static validateCreateOrderResponse: (response: CreateOrderResponse, request: CreateOrderRequest) => void;
8
42
  static quoteRelayer<C extends Chain>(chain: Chain, from: TokenAddress<C>, to: TokenAddress<C>): Promise<bigint>;
9
43
  }
10
44
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAQ5E,eAAO,MAAM,mBAAmB,qDACoB,CAAC;AAErD,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,UAAU;WACR,YAAY,CAAC,CAAC,SAAS,KAAK,EACvC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,GAClB,OAAO,CAAC,MAAM,CAAC;CA8BnB"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,OAAO,EACR,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,aAAa,EASd,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAK9D,eAAO,MAAM,mBAAmB,qDACoB,CAAC;AACrD,eAAO,MAAM,kBAAkB,0BAA0B,CAAC;AAI1D,MAAM,WAAW,kBAAkB;IAEjC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAE3B,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,UAAU;WAER,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,SAAS,EAC7D,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,aAAa,CAAC,KAAK,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,mBAAmB,CAAC;IA6E/B;;;OAGG;IACH,MAAM,CAAC,2BAA2B,aACtB,mBAAmB,WACpB,kBAAkB,KAC1B,IAAI,CAuGL;WAEW,YAAY,CAAC,CAAC,SAAS,KAAK,EACvC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,GAClB,OAAO,CAAC,MAAM,CAAC;CA8BnB"}
package/dist/esm/api.js CHANGED
@@ -1,7 +1,128 @@
1
- import { encoding, isNative, toChainId, } from '@wormhole-foundation/sdk-connect';
1
+ import { PorticoBridge, canonicalAddress, contracts, encoding, isEqualCaseInsensitive, isNative, nativeChainIds, resolveWrappedToken, toChainId, } from '@wormhole-foundation/sdk-connect';
2
2
  import axios from 'axios';
3
+ import { porticoAbi } from './abis.js';
4
+ import { FEE_TIER } from './consts.js';
3
5
  export const RELAYER_FEE_API_URL = 'https://gfx.relayers.xlabs.xyz/api/v1/swap/quote';
6
+ export const OKU_TRADE_BASE_URL = 'https://oku.trade/app';
7
+ const CREATE_ORDER_API_URL = 'https://thermae.fly.dev/api/order/create';
4
8
  export class PorticoApi {
9
+ // Post the order to the portico API
10
+ static async createOrder(network, chain, receiver, token, amount, destToken, quote, nonce) {
11
+ try {
12
+ const { minAmountStart, minAmountFinish } = quote.swapAmounts;
13
+ const receiverAddress = canonicalAddress(receiver);
14
+ const [isStartTokenNative, startToken] = resolveWrappedToken(network, chain, token);
15
+ const [isFinalTokenNative, finalToken] = resolveWrappedToken(network, receiver.chain, destToken);
16
+ const startTokenAddress = canonicalAddress(startToken);
17
+ const finalTokenAddress = canonicalAddress(finalToken);
18
+ const sourcePorticoAddress = contracts.portico.get(network, chain).portico;
19
+ const destinationPorticoAddress = contracts.portico.get(network, receiver.chain).portico;
20
+ const startingChainId = nativeChainIds.networkChainToNativeChainId.get(network, chain);
21
+ const destinationChainId = nativeChainIds.networkChainToNativeChainId.get(network, receiver.chain);
22
+ // Create the order
23
+ const orderRequest = {
24
+ startingChainId: Number(startingChainId),
25
+ startingToken: startTokenAddress.toLowerCase(),
26
+ destinationChainId: Number(destinationChainId),
27
+ destinationToken: finalTokenAddress.toLowerCase(),
28
+ destinationAddress: receiverAddress,
29
+ porticoAddress: sourcePorticoAddress,
30
+ destinationPorticoAddress: destinationPorticoAddress,
31
+ startingTokenAmount: amount.toString(),
32
+ minAmountStart: minAmountStart.toString(),
33
+ minAmountEnd: minAmountFinish.toString(),
34
+ bridgeNonce: nonce,
35
+ relayerFee: quote.relayerFee.toString(),
36
+ feeTierStart: FEE_TIER,
37
+ feeTierEnd: FEE_TIER,
38
+ shouldWrapNative: isStartTokenNative,
39
+ shouldUnwrapNative: isFinalTokenNative,
40
+ };
41
+ const response = await axios.post(CREATE_ORDER_API_URL, orderRequest);
42
+ // Validate the response, not strictly necessary but if some details are wrong we want to know
43
+ this.validateCreateOrderResponse(response.data, orderRequest);
44
+ return response.data;
45
+ }
46
+ catch (e) {
47
+ if (axios.isAxiosError(e)) {
48
+ const message = `${e.response?.statusText}: ${e.response?.data.message}`;
49
+ throw new Error(`Could not create order: ${message},`);
50
+ }
51
+ throw e;
52
+ }
53
+ }
54
+ /**
55
+ * Validates that the response from the order creation API matches the request
56
+ * throws an error if there is a mismatch
57
+ */
58
+ static validateCreateOrderResponse = (response, request) => {
59
+ if (!isEqualCaseInsensitive(request.porticoAddress || '', response.transactionTarget)) {
60
+ throw new Error('portico address mismatch');
61
+ }
62
+ const decoded = porticoAbi.decodeFunctionData('start', response.transactionData);
63
+ if (decoded.length !== 1 || decoded[0].length !== 10) {
64
+ throw new Error('decoded length mismatch');
65
+ }
66
+ const flagSetBuffer = encoding.hex.decode(decoded[0][0]);
67
+ if (flagSetBuffer.length !== 32) {
68
+ throw new Error('flag set length mismatch');
69
+ }
70
+ const { recipientChain, feeTierStart, feeTierFinish, flags } = PorticoBridge.deserializeFlagSet(flagSetBuffer);
71
+ const { shouldWrapNative, shouldUnwrapNative } = flags;
72
+ const [_, expectedChain] = nativeChainIds.platformNativeChainIdToNetworkChain('Evm', BigInt(request.destinationChainId));
73
+ if (recipientChain !== toChainId(expectedChain)) {
74
+ throw new Error('recipient chain mismatch');
75
+ }
76
+ if (feeTierStart !== request.feeTierStart) {
77
+ throw new Error('fee tier start mismatch');
78
+ }
79
+ if (feeTierFinish !== request.feeTierEnd) {
80
+ throw new Error('fee tier end mismatch');
81
+ }
82
+ if (!!shouldWrapNative !== request.shouldWrapNative) {
83
+ throw new Error('should wrap native mismatch');
84
+ }
85
+ if (!!shouldUnwrapNative !== request.shouldUnwrapNative) {
86
+ throw new Error('should unwrap native mismatch');
87
+ }
88
+ const startTokenAddress = decoded[0][1];
89
+ if (!isEqualCaseInsensitive(startTokenAddress, request.startingToken)) {
90
+ throw new Error('start token address mismatch');
91
+ }
92
+ // const startTokenId = Wormhole.chainAddress(toChain(request.startingChainId), startTokenAddress);
93
+ // const canonicalTokenAddress: string = decoded[0][2];
94
+ // if (!isEqualCaseInsensitive(canonicalTokenAddress, getOriginalAddress("Mainnet", startTokenId))) {
95
+ // throw new Error("canonical token address mismatch");
96
+ // }
97
+ const finalTokenAddress = decoded[0][3];
98
+ if (!isEqualCaseInsensitive(finalTokenAddress, request.destinationToken)) {
99
+ throw new Error('final token address mismatch');
100
+ }
101
+ const recipientAddress = decoded[0][4];
102
+ if (!isEqualCaseInsensitive(recipientAddress, request.destinationAddress)) {
103
+ throw new Error('recipient address mismatch');
104
+ }
105
+ const destinationPorticoAddress = decoded[0][5];
106
+ if (!isEqualCaseInsensitive(destinationPorticoAddress, request.destinationPorticoAddress || '')) {
107
+ throw new Error('destination portico address mismatch');
108
+ }
109
+ const amountSpecified = decoded[0][6];
110
+ if (amountSpecified.toString() !== request.startingTokenAmount) {
111
+ throw new Error('amount mismatch');
112
+ }
113
+ const minAmountStart = decoded[0][7];
114
+ if (minAmountStart.toString() !== request.minAmountStart) {
115
+ throw new Error('min amount start mismatch');
116
+ }
117
+ const minAmountFinish = decoded[0][8];
118
+ if (minAmountFinish.toString() !== request.minAmountEnd) {
119
+ throw new Error('min amount finish mismatch');
120
+ }
121
+ const relayerFee = decoded[0][9];
122
+ if (relayerFee.toString() !== request.relayerFee) {
123
+ throw new Error('relayer fee mismatch');
124
+ }
125
+ };
5
126
  static async quoteRelayer(chain, from, to) {
6
127
  if (isNative(from) || isNative(to))
7
128
  throw new Error('how did you get here tho?');
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,GACV,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,mBAAmB,GAC9B,kDAAkD,CAAC;AAOrD,MAAM,OAAO,UAAU;IACrB,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,KAAY,EACZ,IAAqB,EACrB,EAAmB;QAEnB,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAE/C,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CACrC,IAAI,CAAC,kBAAkB,EAAE,CAAC,YAAY,EAAE,EACxC,KAAK,CACN,CAAC;QAEF,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CACrC,EAAE,CAAC,kBAAkB,EAAE,CAAC,YAAY,EAAE,EACtC,KAAK,CACN,CAAC;QAEF,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAErC,MAAM,OAAO,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAC/B,mBAAmB,EACnB,OAAO,CACR,CAAC;YACF,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@ import { PorticoBridge } from '@wormhole-foundation/sdk-connect';
3
3
  import type { EvmChains } from '@wormhole-foundation/sdk-evm';
4
4
  import { EvmUnsignedTransaction } from '@wormhole-foundation/sdk-evm';
5
5
  import type { Provider } from 'ethers';
6
+ import { ethers } from 'ethers';
6
7
  import { EvmWormholeCore } from '@wormhole-foundation/sdk-evm-core';
7
- import { EvmTokenBridge } from '@wormhole-foundation/sdk-evm-tokenbridge';
8
8
  import '@wormhole-foundation/sdk-evm-tokenbridge';
9
9
  export declare class EvmPorticoBridge<N extends Network, C extends EvmChains = EvmChains> implements PorticoBridge<N, C> {
10
10
  readonly network: N;
@@ -12,24 +12,19 @@ export declare class EvmPorticoBridge<N extends Network, C extends EvmChains = E
12
12
  readonly provider: Provider;
13
13
  readonly contracts: Contracts;
14
14
  chainId: bigint;
15
+ porticoAddress: string;
16
+ uniswapAddress: string;
17
+ porticoContract: ethers.Contract;
18
+ uniswapContract: ethers.Contract;
15
19
  core: EvmWormholeCore<N, C>;
16
- tokenBridge: EvmTokenBridge<N, C>;
17
20
  constructor(network: N, chain: C, provider: Provider, contracts: Contracts);
18
21
  static fromRpc<N extends Network>(provider: Provider, config: ChainsConfig<N, Platform>): Promise<EvmPorticoBridge<N, EvmChains>>;
19
- transfer(sender: AccountAddress<C>, receiver: ChainAddress, token: TokenAddress<C>, amount: bigint, destToken: TokenId, destinationPorticoAddress: string, quote: PorticoBridge.Quote): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
22
+ transfer(sender: AccountAddress<C>, receiver: ChainAddress, token: TokenAddress<C>, amount: bigint, destToken: TokenId, quote: PorticoBridge.Quote): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
20
23
  redeem(sender: AccountAddress<C>, vaa: PorticoBridge.VAA): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
21
- isTransferCompleted(vaa: PorticoBridge.VAA): Promise<boolean>;
22
- quoteSwap(input: TokenAddress<C>, output: TokenAddress<C>, tokenGroup: string, amount: bigint): Promise<bigint>;
24
+ quoteSwap(input: TokenAddress<C>, output: TokenAddress<C>, amount: bigint): Promise<bigint>;
23
25
  quoteRelay(startToken: TokenAddress<C>, endToken: TokenAddress<C>): Promise<bigint>;
24
- getTransferrableToken(address: string): Promise<TokenId>;
25
- supportedTokens(): {
26
- group: string;
27
- token: TokenId;
28
- }[];
29
- getTokenGroup(address: string): string;
26
+ getTransferrableToken(address: string): TokenId;
30
27
  private approve;
31
28
  private createUnsignedTransaction;
32
- getPorticoAddress(group: string): string;
33
- private getQuoterAddress;
34
29
  }
35
30
  //# sourceMappingURL=bridge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,OAAO,EACR,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,aAAa,EASd,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAGL,sBAAsB,EAGvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAsB,MAAM,QAAQ,CAAC;AAM3D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE1E,OAAO,0CAA0C,CAAC;AAElD,qBAAa,gBAAgB,CAC3B,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,SAAS,GAAG,SAAS,CAC/B,YAAW,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAS5B,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,QAAQ,EAAE,QAAQ;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAV/B,OAAO,EAAE,MAAM,CAAC;IAEhB,IAAI,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,WAAW,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAGvB,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS;WAelB,OAAO,CAAC,CAAC,SAAS,OAAO,EACpC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAUnC,QAAQ,CACb,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,EAClB,yBAAyB,EAAE,MAAM,EACjC,KAAK,EAAE,aAAa,CAAC,KAAK;IAoFrB,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,GAAG;IAwBzD,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAO7D,SAAS,CACb,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC;IA+BZ,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAMjE,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkC9D,eAAe,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,EAAE;IAUtD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;YAOvB,OAAO;IAuBtB,OAAO,CAAC,yBAAyB;IAajC,iBAAiB,CAAC,KAAK,EAAE,MAAM;IAS/B,OAAO,CAAC,gBAAgB;CAQzB"}
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,OAAO,EACR,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,aAAa,EASd,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAGL,sBAAsB,EAGvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAsB,MAAM,QAAQ,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAShC,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,0CAA0C,CAAC;AAElD,qBAAa,gBAAgB,CAC3B,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,SAAS,GAAG,SAAS,CAC/B,YAAW,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAW5B,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,QAAQ,EAAE,QAAQ;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAZ/B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IAEvB,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC;IACjC,IAAI,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAGjB,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS;WA+BlB,OAAO,CAAC,CAAC,SAAS,OAAO,EACpC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAUnC,QAAQ,CACb,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,aAAa,CAAC,KAAK;IAqFrB,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,GAAG;IAazD,SAAS,CACb,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC;IAyBZ,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAMvE,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;YAsBhC,OAAO;IAuBtB,OAAO,CAAC,yBAAyB;CAYlC"}
@@ -1,11 +1,11 @@
1
- import { PorticoBridge, Wormhole, canonicalAddress, isEqualCaseInsensitive, nativeChainIds, resolveWrappedToken, serialize, toChain, toChainId, } from '@wormhole-foundation/sdk-connect';
1
+ import { PorticoBridge, Wormhole, canonicalAddress, contracts, isEqualCaseInsensitive, nativeChainIds, resolveWrappedToken, serialize, toChainId, } from '@wormhole-foundation/sdk-connect';
2
2
  import { EvmAddress, EvmPlatform, EvmUnsignedTransaction, addChainId, addFrom, } from '@wormhole-foundation/sdk-evm';
3
- import { ethers, keccak256 } from 'ethers';
3
+ import { ethers } from 'ethers';
4
4
  import { porticoAbi, uniswapQuoterV2Abi } from './abis.js';
5
5
  import { PorticoApi } from './api.js';
6
- import { FEE_TIER, supportedTokens } from './consts.js';
6
+ import { FEE_TIER } from './consts.js';
7
+ import { getTokensBySymbol, getTokenByAddress, } from '@wormhole-foundation/sdk-connect/tokens';
7
8
  import { EvmWormholeCore } from '@wormhole-foundation/sdk-evm-core';
8
- import { EvmTokenBridge } from '@wormhole-foundation/sdk-evm-tokenbridge';
9
9
  import '@wormhole-foundation/sdk-evm-tokenbridge';
10
10
  export class EvmPorticoBridge {
11
11
  network;
@@ -13,8 +13,11 @@ export class EvmPorticoBridge {
13
13
  provider;
14
14
  contracts;
15
15
  chainId;
16
+ porticoAddress;
17
+ uniswapAddress;
18
+ porticoContract;
19
+ uniswapContract;
16
20
  core;
17
- tokenBridge;
18
21
  constructor(network, chain, provider, contracts) {
19
22
  this.network = network;
20
23
  this.chain = chain;
@@ -23,8 +26,12 @@ export class EvmPorticoBridge {
23
26
  if (!contracts.portico)
24
27
  throw new Error('Unsupported chain, no contract addresses for: ' + chain);
25
28
  this.core = new EvmWormholeCore(network, chain, provider, contracts);
26
- this.tokenBridge = new EvmTokenBridge(network, chain, provider, contracts);
29
+ const { portico: porticoAddress, uniswapQuoterV2: uniswapAddress } = contracts.portico;
30
+ this.porticoAddress = porticoAddress;
31
+ this.uniswapAddress = uniswapAddress;
27
32
  this.chainId = nativeChainIds.networkChainToNativeChainId.get(network, chain);
33
+ this.porticoContract = new ethers.Contract(this.porticoAddress, porticoAbi.fragments, this.provider);
34
+ this.uniswapContract = new ethers.Contract(this.uniswapAddress, uniswapQuoterV2Abi.fragments, this.provider);
28
35
  }
29
36
  static async fromRpc(provider, config) {
30
37
  const [network, chain] = await EvmPlatform.chainFromRpc(provider);
@@ -33,7 +40,7 @@ export class EvmPorticoBridge {
33
40
  throw new Error(`Network mismatch: ${conf.network} != ${network}`);
34
41
  return new EvmPorticoBridge(network, chain, provider, conf.contracts);
35
42
  }
36
- async *transfer(sender, receiver, token, amount, destToken, destinationPorticoAddress, quote) {
43
+ async *transfer(sender, receiver, token, amount, destToken, quote) {
37
44
  const { minAmountStart, minAmountFinish } = quote.swapAmounts;
38
45
  if (minAmountStart === 0n)
39
46
  throw new Error('Invalid min swap amount');
@@ -43,9 +50,10 @@ export class EvmPorticoBridge {
43
50
  const [isStartTokenNative, startToken] = resolveWrappedToken(this.network, this.chain, token);
44
51
  const [isFinalTokenNative, finalToken] = resolveWrappedToken(this.network, receiver.chain, destToken);
45
52
  const startTokenAddress = canonicalAddress(startToken);
46
- const cannonTokenAddress = canonicalAddress(await this.getTransferrableToken(startTokenAddress));
53
+ const cannonTokenAddress = canonicalAddress(this.getTransferrableToken(startTokenAddress));
47
54
  const receiverAddress = canonicalAddress(receiver);
48
55
  const finalTokenAddress = canonicalAddress(finalToken);
56
+ const destinationPorticoAddress = contracts.portico.get(this.network, receiver.chain).portico;
49
57
  const nonce = new Date().valueOf() % 2 ** 4;
50
58
  const flags = PorticoBridge.serializeFlagSet({
51
59
  flags: {
@@ -72,47 +80,32 @@ export class EvmPorticoBridge {
72
80
  quote.relayerFee.toString(),
73
81
  ],
74
82
  ]);
75
- const group = this.getTokenGroup(startToken.address.toString());
76
- const porticoAddress = this.getPorticoAddress(group);
77
83
  // Approve the token if necessary
78
84
  if (!isStartTokenNative)
79
- yield* this.approve(startTokenAddress, senderAddress, amount, porticoAddress);
85
+ yield* this.approve(startTokenAddress, senderAddress, amount, this.porticoAddress);
80
86
  const messageFee = await this.core.getMessageFee();
81
87
  const tx = {
82
- to: porticoAddress,
88
+ to: this.porticoAddress,
83
89
  data: transactionData,
84
90
  value: messageFee + (isStartTokenNative ? amount : 0n),
85
91
  };
86
92
  yield this.createUnsignedTransaction(addFrom(tx, senderAddress), 'PorticoBridge.Transfer');
87
93
  }
88
94
  async *redeem(sender, vaa) {
89
- const recipientChain = toChain(vaa.payload.payload.flagSet.recipientChain);
90
- const tokenAddress = vaa.payload.payload.finalTokenAddress
91
- .toNative(recipientChain)
92
- .toString();
93
- const group = this.getTokenGroup(tokenAddress);
94
- const porticoAddress = this.getPorticoAddress(group);
95
- const contract = new ethers.Contract(porticoAddress, porticoAbi.fragments, this.provider);
96
- const txReq = await contract
95
+ const txReq = await this.porticoContract
97
96
  .getFunction('receiveMessageAndSwap')
98
97
  .populateTransaction(serialize(vaa));
99
98
  const address = new EvmAddress(sender).toString();
100
99
  yield this.createUnsignedTransaction(addFrom(txReq, address), 'PorticoBridge.Redeem');
101
100
  }
102
- async isTransferCompleted(vaa) {
103
- const isCompleted = await this.tokenBridge.tokenBridge.isTransferCompleted(keccak256(vaa.hash));
104
- return isCompleted;
105
- }
106
- async quoteSwap(input, output, tokenGroup, amount) {
101
+ async quoteSwap(input, output, amount) {
107
102
  const [, inputTokenId] = resolveWrappedToken(this.network, this.chain, input);
108
103
  const [, outputTokenId] = resolveWrappedToken(this.network, this.chain, output);
109
104
  const inputAddress = canonicalAddress(inputTokenId);
110
105
  const outputAddress = canonicalAddress(outputTokenId);
111
106
  if (isEqualCaseInsensitive(inputAddress, outputAddress))
112
107
  return amount;
113
- const quoterAddress = this.getQuoterAddress(tokenGroup);
114
- const quoter = new ethers.Contract(quoterAddress, uniswapQuoterV2Abi.fragments, this.provider);
115
- const result = await quoter
108
+ const result = await this.uniswapContract
116
109
  .getFunction('quoteExactInputSingle')
117
110
  .staticCall([inputAddress, outputAddress, amount, FEE_TIER, 0]);
118
111
  return result[0];
@@ -120,42 +113,21 @@ export class EvmPorticoBridge {
120
113
  async quoteRelay(startToken, endToken) {
121
114
  return await PorticoApi.quoteRelayer(this.chain, startToken, endToken);
122
115
  }
123
- // For a given token, return the Wormhole-wrapped/highway token
124
- // that actually gets bridged from this chain
125
- async getTransferrableToken(address) {
126
- const token = Wormhole.tokenId(this.chain, address);
127
- const [, wrappedToken] = resolveWrappedToken(this.network, this.chain, token);
116
+ // For a given token, return the corresponding
117
+ // Wormhole wrapped token that originated on Ethereum
118
+ getTransferrableToken(address) {
128
119
  if (this.chain === 'Ethereum')
129
- return wrappedToken;
130
- // Find the group that this token belongs to
131
- const group = Object.values(supportedTokens).find((tokens) => tokens.find((t) => t.chain === this.chain &&
132
- canonicalAddress(t) === canonicalAddress(wrappedToken)));
133
- if (!group)
134
- throw new Error(`No token group found for ${address} on ${this.chain}`);
135
- // Find the token in this group that originates on Ethereum
136
- const tokenOnEthereum = group.find((t) => t.chain === 'Ethereum');
137
- if (!tokenOnEthereum)
138
- throw new Error(`No Ethereum origin token found for ${address} on ${this.chain}`);
139
- // Now find the corresponding Wormhole-wrapped/highway token on this chain
140
- const highwayTokenAddr = await this.tokenBridge.getWrappedAsset(tokenOnEthereum);
141
- return Wormhole.tokenId(this.chain, highwayTokenAddr.toString());
142
- }
143
- supportedTokens() {
144
- const result = [];
145
- for (const [group, tokens] of Object.entries(supportedTokens)) {
146
- for (const token of tokens) {
147
- if (token.chain === this.chain)
148
- result.push({ group, token });
149
- }
150
- }
151
- return result;
152
- }
153
- getTokenGroup(address) {
154
- const tokens = this.supportedTokens();
155
- const token = tokens.find((t) => canonicalAddress(t.token) === address);
156
- if (!token)
157
- throw new Error('Token not found');
158
- return token.group;
120
+ return Wormhole.tokenId('Ethereum', address);
121
+ // get the nativeTokenDetails
122
+ const nToken = getTokenByAddress(this.network, this.chain, address);
123
+ if (!nToken)
124
+ throw new Error('Unsupported source token: ' + address);
125
+ const xToken = getTokensBySymbol(this.network, this.chain, nToken.symbol)?.find((orig) => {
126
+ return orig.original === 'Ethereum';
127
+ });
128
+ if (!xToken)
129
+ throw new Error(`Unsupported symbol for chain ${nToken.symbol}: ${this.chain} `);
130
+ return Wormhole.tokenId(xToken.chain, xToken.address);
159
131
  }
160
132
  async *approve(token, senderAddr, amount, contract) {
161
133
  const tokenContract = EvmPlatform.getTokenImplementation(this.provider, token);
@@ -168,21 +140,5 @@ export class EvmPorticoBridge {
168
140
  createUnsignedTransaction(txReq, description) {
169
141
  return new EvmUnsignedTransaction(addChainId(txReq, this.chainId), this.network, this.chain, description, false);
170
142
  }
171
- getPorticoAddress(group) {
172
- const portico = this.contracts.portico;
173
- if (group === 'USDT') {
174
- // Use PancakeSwap if available for USDT
175
- return portico.porticoPancakeSwap || portico.porticoUniswap;
176
- }
177
- return portico.porticoUniswap;
178
- }
179
- getQuoterAddress(group) {
180
- const portico = this.contracts.portico;
181
- if (group === 'USDT') {
182
- // Use PancakeSwap if available for USDT
183
- return portico.pancakeSwapQuoterV2 || portico.uniswapQuoterV2;
184
- }
185
- return portico.uniswapQuoterV2;
186
- }
187
143
  }
188
144
  //# sourceMappingURL=bridge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/bridge.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,sBAAsB,EACtB,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,SAAS,GACV,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,UAAU,EACV,OAAO,GACR,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,0CAA0C,CAAC;AAElD,MAAM,OAAO,gBAAgB;IAchB;IACA;IACA;IACA;IAZX,OAAO,CAAS;IAChB,cAAc,CAAS;IACvB,cAAc,CAAS;IAEvB,eAAe,CAAkB;IACjC,eAAe,CAAkB;IACjC,IAAI,CAAwB;IAE5B,YACW,OAAU,EACV,KAAQ,EACR,QAAkB,EAClB,SAAoB;QAHpB,YAAO,GAAP,OAAO,CAAG;QACV,UAAK,GAAL,KAAK,CAAG;QACR,aAAQ,GAAR,QAAQ,CAAU;QAClB,cAAS,GAAT,SAAS,CAAW;QAE7B,IAAI,CAAC,SAAS,CAAC,OAAO;YACpB,MAAM,IAAI,KAAK,CAAC,gDAAgD,GAAG,KAAK,CAAC,CAAC;QAE5E,IAAI,CAAC,IAAI,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAErE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,GAChE,SAAS,CAAC,OAAO,CAAC;QAEpB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QAErC,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,2BAA2B,CAAC,GAAG,CAC3D,OAAO,EACP,KAAK,CACI,CAAC;QAEZ,IAAI,CAAC,eAAe,GAAG,IAAI,MAAM,CAAC,QAAQ,CACxC,IAAI,CAAC,cAAc,EACnB,UAAU,CAAC,SAAS,EACpB,IAAI,CAAC,QAAQ,CACd,CAAC;QAEF,IAAI,CAAC,eAAe,GAAG,IAAI,MAAM,CAAC,QAAQ,CACxC,IAAI,CAAC,cAAc,EACnB,kBAAkB,CAAC,SAAS,EAC5B,IAAI,CAAC,QAAQ,CACd,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,QAAkB,EAClB,MAAiC;QAEjC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAElE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;YAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,OAAO,OAAO,OAAO,EAAE,CAAC,CAAC;QAErE,OAAO,IAAI,gBAAgB,CAAC,OAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,CAAC,QAAQ,CACb,MAAyB,EACzB,QAAsB,EACtB,KAAsB,EACtB,MAAc,EACd,SAAkB,EAClB,KAA0B;QAE1B,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC;QAC9D,IAAI,cAAc,KAAK,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACtE,IAAI,eAAe,KAAK,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAEvE,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAExD,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC,GAAG,mBAAmB,CAC1D,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,KAAK,CACN,CAAC;QAEF,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC,GAAG,mBAAmB,CAC1D,IAAI,CAAC,OAAO,EACZ,QAAQ,CAAC,KAAK,EACd,SAAS,CACV,CAAC;QAEF,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEvD,MAAM,kBAAkB,GAAG,gBAAgB,CACzC,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAC9C,CAAC;QAEF,MAAM,eAAe,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEnD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEvD,MAAM,yBAAyB,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CACrD,IAAI,CAAC,OAAO,EACZ,QAAQ,CAAC,KAAK,CACd,CAAC,OAAO,CAAC;QAEX,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,aAAa,CAAC,gBAAgB,CAAC;YAC3C,KAAK,EAAE;gBACL,gBAAgB,EAAE,kBAAkB;gBACpC,kBAAkB,EAAE,kBAAkB;aACvC;YACD,cAAc,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;YACzC,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,QAAQ;YACtB,aAAa,EAAE,QAAQ;YACvB,OAAO,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC;SAC5B,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,UAAU,CAAC,kBAAkB,CAAC,OAAO,EAAE;YAC7D;gBACE,KAAK;gBACL,iBAAiB,CAAC,WAAW,EAAE;gBAC/B,kBAAkB;gBAClB,iBAAiB,CAAC,WAAW,EAAE;gBAC/B,eAAe;gBACf,yBAAyB;gBACzB,MAAM,CAAC,QAAQ,EAAE;gBACjB,cAAc,CAAC,QAAQ,EAAE;gBACzB,eAAe,CAAC,QAAQ,EAAE;gBAC1B,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE;aAC5B;SACF,CAAC,CAAC;QAEH,iCAAiC;QACjC,IAAI,CAAC,kBAAkB;YACrB,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CACjB,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,IAAI,CAAC,cAAc,CACpB,CAAC;QAEJ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAEnD,MAAM,EAAE,GAAG;YACT,EAAE,EAAE,IAAI,CAAC,cAAc;YACvB,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,UAAU,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;SACvD,CAAC;QACF,MAAM,IAAI,CAAC,yBAAyB,CAClC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,EAC1B,wBAAwB,CACzB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,MAAyB,EAAE,GAAsB;QAC7D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe;aACrC,WAAW,CAAC,uBAAuB,CAAC;aACpC,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAEvC,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAElD,MAAM,IAAI,CAAC,yBAAyB,CAClC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,EACvB,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CACb,KAAsB,EACtB,MAAuB,EACvB,MAAc;QAEd,MAAM,CAAC,EAAE,YAAY,CAAC,GAAG,mBAAmB,CAC1C,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,KAAK,CACN,CAAC;QAEF,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,mBAAmB,CAC3C,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,MAAM,CACP,CAAC;QAEF,MAAM,YAAY,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAEtD,IAAI,sBAAsB,CAAC,YAAY,EAAE,aAAa,CAAC;YAAE,OAAO,MAAM,CAAC;QAEvE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe;aACtC,WAAW,CAAC,uBAAuB,CAAC;aACpC,UAAU,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAElE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAA2B,EAAE,QAAyB;QACrE,OAAO,MAAM,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACzE,CAAC;IAED,8CAA8C;IAC9C,qDAAqD;IACrD,qBAAqB,CAAC,OAAe;QACnC,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU;YAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAE5E,6BAA6B;QAC7B,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,OAAO,CAAC,CAAC;QAErE,MAAM,MAAM,GAAG,iBAAiB,CAC9B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,MAAM,CAAC,MAAM,CACd,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACf,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM;YACT,MAAM,IAAI,KAAK,CACb,gCAAgC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,GAAG,CAChE,CAAC;QAEJ,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,CAAC,OAAO,CACpB,KAAa,EACb,UAAkB,EAClB,MAAc,EACd,QAAgB;QAEhB,MAAM,aAAa,GAAG,WAAW,CAAC,sBAAsB,CACtD,IAAI,CAAC,QAAQ,EACb,KAAK,CACN,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,SAAS,GAAG,MAAM,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAC3D,QAAQ,EACR,MAAM,CACP,CAAC;YACF,MAAM,IAAI,CAAC,yBAAyB,CAClC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,EAC1B,uBAAuB,CACxB,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,yBAAyB,CAC/B,KAAyB,EACzB,WAAmB;QAEnB,OAAO,IAAI,sBAAsB,CAC/B,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAC/B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,WAAW,EACX,KAAK,CACN,CAAC;IACJ,CAAC;CACF"}
@@ -1,8 +1,4 @@
1
1
  export declare const FEE_TIER = 100;
2
- export declare const supportedTokens: {
3
- readonly ETH: readonly [import("@wormhole-foundation/sdk-connect").TokenId<"Arbitrum">, import("@wormhole-foundation/sdk-connect").TokenId<"Base">, import("@wormhole-foundation/sdk-connect").TokenId<"Ethereum">, import("@wormhole-foundation/sdk-connect").TokenId<"Optimism">];
4
- readonly WETH: readonly [import("@wormhole-foundation/sdk-connect").TokenId<"Arbitrum">, import("@wormhole-foundation/sdk-connect").TokenId<"Avalanche">, import("@wormhole-foundation/sdk-connect").TokenId<"Base">, import("@wormhole-foundation/sdk-connect").TokenId<"Bsc">, import("@wormhole-foundation/sdk-connect").TokenId<"Ethereum">, import("@wormhole-foundation/sdk-connect").TokenId<"Optimism">, import("@wormhole-foundation/sdk-connect").TokenId<"Polygon">];
5
- readonly wstETH: readonly [import("@wormhole-foundation/sdk-connect").TokenId<"Arbitrum">, import("@wormhole-foundation/sdk-connect").TokenId<"Base">, import("@wormhole-foundation/sdk-connect").TokenId<"Ethereum">, import("@wormhole-foundation/sdk-connect").TokenId<"Optimism">, import("@wormhole-foundation/sdk-connect").TokenId<"Polygon">];
6
- readonly USDT: readonly [import("@wormhole-foundation/sdk-connect").TokenId<"Arbitrum">, import("@wormhole-foundation/sdk-connect").TokenId<"Avalanche">, import("@wormhole-foundation/sdk-connect").TokenId<"Base">, import("@wormhole-foundation/sdk-connect").TokenId<"Bsc">, import("@wormhole-foundation/sdk-connect").TokenId<"Ethereum">, import("@wormhole-foundation/sdk-connect").TokenId<"Optimism">, import("@wormhole-foundation/sdk-connect").TokenId<"Polygon">, import("@wormhole-foundation/sdk-connect").TokenId<"Celo">];
7
- };
2
+ export declare const SWAP_ERROR = "This transaction will not succeed due to price movement.";
3
+ export declare const swapErrors: string[];
8
4
  //# sourceMappingURL=consts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,MAAM,CAAC;AAE5B,eAAO,MAAM,eAAe;;;;;CAiClB,CAAC"}
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,MAAM,CAAC;AAC5B,eAAO,MAAM,UAAU,6DACqC,CAAC;AAC7D,eAAO,MAAM,UAAU,UAMtB,CAAC"}
@@ -1,37 +1,10 @@
1
- import { Wormhole } from '@wormhole-foundation/sdk-connect';
2
1
  export const FEE_TIER = 100;
3
- export const supportedTokens = {
4
- ETH: [
5
- Wormhole.tokenId('Arbitrum', 'native'),
6
- Wormhole.tokenId('Base', 'native'),
7
- Wormhole.tokenId('Ethereum', 'native'),
8
- Wormhole.tokenId('Optimism', 'native'),
9
- ],
10
- WETH: [
11
- Wormhole.tokenId('Arbitrum', '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1'),
12
- Wormhole.tokenId('Avalanche', '0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB'),
13
- Wormhole.tokenId('Base', '0x4200000000000000000000000000000000000006'),
14
- Wormhole.tokenId('Bsc', '0x2170Ed0880ac9A755fd29B2688956BD959F933F8'),
15
- Wormhole.tokenId('Ethereum', '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'),
16
- Wormhole.tokenId('Optimism', '0x4200000000000000000000000000000000000006'),
17
- Wormhole.tokenId('Polygon', '0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619'),
18
- ],
19
- wstETH: [
20
- Wormhole.tokenId('Arbitrum', '0x5979D7b546E38E414F7E9822514be443A4800529'),
21
- Wormhole.tokenId('Base', '0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452'),
22
- Wormhole.tokenId('Ethereum', '0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0'),
23
- Wormhole.tokenId('Optimism', '0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb'),
24
- Wormhole.tokenId('Polygon', '0x03b54A6e9a984069379fae1a4fC4dBAE93B3bCCD'),
25
- ],
26
- USDT: [
27
- Wormhole.tokenId('Arbitrum', '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9'),
28
- Wormhole.tokenId('Avalanche', '0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7'),
29
- Wormhole.tokenId('Base', '0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2'),
30
- Wormhole.tokenId('Bsc', '0x55d398326f99059fF775485246999027B3197955'),
31
- Wormhole.tokenId('Ethereum', '0xdAC17F958D2ee523a2206206994597C13D831ec7'),
32
- Wormhole.tokenId('Optimism', '0x94b008aA00579c1307B0EF2c499aD98a8ce58e58'),
33
- Wormhole.tokenId('Polygon', '0xc2132D05D31c914a87C6611C10748AEb04B58e8F'),
34
- Wormhole.tokenId('Celo', '0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e'),
35
- ],
36
- };
2
+ export const SWAP_ERROR = 'This transaction will not succeed due to price movement.';
3
+ export const swapErrors = [
4
+ 'UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT',
5
+ 'UniswapV2Router: EXCESSIVE_INPUT_AMOUNT',
6
+ 'Too little received',
7
+ 'Too much requested',
8
+ 'STF',
9
+ ];
37
10
  //# sourceMappingURL=consts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAE5D,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAE5B,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,GAAG,EAAE;QACH,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC;QACtC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC;QAClC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC;QACtC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC;KACvC;IACD,IAAI,EAAE;QACJ,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,4CAA4C,CAAC;QAC1E,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,4CAA4C,CAAC;QAC3E,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,4CAA4C,CAAC;QACtE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,4CAA4C,CAAC;QACrE,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,4CAA4C,CAAC;QAC1E,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,4CAA4C,CAAC;QAC1E,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,4CAA4C,CAAC;KAC1E;IACD,MAAM,EAAE;QACN,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,4CAA4C,CAAC;QAC1E,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,4CAA4C,CAAC;QACtE,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,4CAA4C,CAAC;QAC1E,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,4CAA4C,CAAC;QAC1E,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,4CAA4C,CAAC;KAC1E;IACD,IAAI,EAAE;QACJ,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,4CAA4C,CAAC;QAC1E,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,4CAA4C,CAAC;QAC3E,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,4CAA4C,CAAC;QACtE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,4CAA4C,CAAC;QACrE,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,4CAA4C,CAAC;QAC1E,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,4CAA4C,CAAC;QAC1E,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,4CAA4C,CAAC;QACzE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,4CAA4C,CAAC;KACvE;CACO,CAAC"}
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAC5B,MAAM,CAAC,MAAM,UAAU,GACrB,0DAA0D,CAAC;AAC7D,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,6CAA6C;IAC7C,yCAAyC;IACzC,qBAAqB;IACrB,oBAAoB;IACpB,KAAK;CACN,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wormhole-foundation/sdk-evm-portico",
3
- "version": "0.10.12-beta.0",
3
+ "version": "0.11.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/wormhole-foundation/connect-sdk.git"
@@ -52,10 +52,10 @@
52
52
  "prettier": "prettier --write ./src"
53
53
  },
54
54
  "dependencies": {
55
- "@wormhole-foundation/sdk-connect": "0.10.12-beta.0",
56
- "@wormhole-foundation/sdk-evm": "0.10.12-beta.0",
57
- "@wormhole-foundation/sdk-evm-core": "0.10.12-beta.0",
58
- "@wormhole-foundation/sdk-evm-tokenbridge": "0.10.12-beta.0",
55
+ "@wormhole-foundation/sdk-connect": "0.11.0",
56
+ "@wormhole-foundation/sdk-evm": "0.11.0",
57
+ "@wormhole-foundation/sdk-evm-core": "0.11.0",
58
+ "@wormhole-foundation/sdk-evm-tokenbridge": "0.11.0",
59
59
  "ethers": "^6.5.1"
60
60
  },
61
61
  "type": "module",