@wormhole-foundation/sdk-evm-portico 0.10.12 → 0.11.1-beta.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,44 +1,10 @@
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';
1
+ import type { Chain, TokenAddress } from '@wormhole-foundation/sdk-connect';
4
2
  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
- }
31
3
  export interface RelayerQuoteResponse {
32
4
  fee: string;
33
5
  validUntil: string;
34
6
  }
35
7
  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;
42
8
  static quoteRelayer<C extends Chain>(chain: Chain, from: TokenAddress<C>, to: TokenAddress<C>): Promise<bigint>;
43
9
  }
44
10
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
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"}
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"}
package/dist/cjs/api.js CHANGED
@@ -3,132 +3,11 @@ 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.OKU_TRADE_BASE_URL = exports.RELAYER_FEE_API_URL = void 0;
6
+ exports.PorticoApi = 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");
11
9
  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';
14
10
  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
- };
132
11
  static async quoteRelayer(chain, from, to) {
133
12
  if ((0, sdk_connect_1.isNative)(from) || (0, sdk_connect_1.isNative)(to))
134
13
  throw new Error('how did you get here tho?');
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
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"}
@@ -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';
7
6
  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,19 +12,24 @@ 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;
19
15
  core: EvmWormholeCore<N, C>;
16
+ tokenBridge: EvmTokenBridge<N, C>;
20
17
  constructor(network: N, chain: C, provider: Provider, contracts: Contracts);
21
18
  static fromRpc<N extends Network>(provider: Provider, config: ChainsConfig<N, Platform>): Promise<EvmPorticoBridge<N, EvmChains>>;
22
- transfer(sender: AccountAddress<C>, receiver: ChainAddress, token: TokenAddress<C>, amount: bigint, destToken: TokenId, quote: PorticoBridge.Quote): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
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>;
23
20
  redeem(sender: AccountAddress<C>, vaa: PorticoBridge.VAA): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
24
- quoteSwap(input: TokenAddress<C>, output: TokenAddress<C>, amount: bigint): Promise<bigint>;
21
+ isTransferCompleted(vaa: PorticoBridge.VAA): Promise<boolean>;
22
+ quoteSwap(input: TokenAddress<C>, output: TokenAddress<C>, tokenGroup: string, amount: bigint): Promise<bigint>;
25
23
  quoteRelay(startToken: TokenAddress<C>, endToken: TokenAddress<C>): Promise<bigint>;
26
- getTransferrableToken(address: string): TokenId;
24
+ getTransferrableToken(address: string): Promise<TokenId>;
25
+ supportedTokens(): {
26
+ group: string;
27
+ token: TokenId;
28
+ }[];
29
+ getTokenGroup(address: string): string;
27
30
  private approve;
28
31
  private createUnsignedTransaction;
32
+ getPorticoAddress(group: string): string;
33
+ private getQuoterAddress;
29
34
  }
30
35
  //# 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;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
+ {"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"}
@@ -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");
11
10
  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,11 +16,8 @@ class EvmPorticoBridge {
16
16
  provider;
17
17
  contracts;
18
18
  chainId;
19
- porticoAddress;
20
- uniswapAddress;
21
- porticoContract;
22
- uniswapContract;
23
19
  core;
20
+ tokenBridge;
24
21
  constructor(network, chain, provider, contracts) {
25
22
  this.network = network;
26
23
  this.chain = chain;
@@ -29,12 +26,8 @@ class EvmPorticoBridge {
29
26
  if (!contracts.portico)
30
27
  throw new Error('Unsupported chain, no contract addresses for: ' + chain);
31
28
  this.core = new sdk_evm_core_1.EvmWormholeCore(network, chain, provider, contracts);
32
- const { portico: porticoAddress, uniswapQuoterV2: uniswapAddress } = contracts.portico;
33
- this.porticoAddress = porticoAddress;
34
- this.uniswapAddress = uniswapAddress;
29
+ this.tokenBridge = new sdk_evm_tokenbridge_1.EvmTokenBridge(network, chain, provider, contracts);
35
30
  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);
38
31
  }
39
32
  static async fromRpc(provider, config) {
40
33
  const [network, chain] = await sdk_evm_1.EvmPlatform.chainFromRpc(provider);
@@ -43,7 +36,7 @@ class EvmPorticoBridge {
43
36
  throw new Error(`Network mismatch: ${conf.network} != ${network}`);
44
37
  return new EvmPorticoBridge(network, chain, provider, conf.contracts);
45
38
  }
46
- async *transfer(sender, receiver, token, amount, destToken, quote) {
39
+ async *transfer(sender, receiver, token, amount, destToken, destinationPorticoAddress, quote) {
47
40
  const { minAmountStart, minAmountFinish } = quote.swapAmounts;
48
41
  if (minAmountStart === 0n)
49
42
  throw new Error('Invalid min swap amount');
@@ -53,10 +46,9 @@ class EvmPorticoBridge {
53
46
  const [isStartTokenNative, startToken] = (0, sdk_connect_1.resolveWrappedToken)(this.network, this.chain, token);
54
47
  const [isFinalTokenNative, finalToken] = (0, sdk_connect_1.resolveWrappedToken)(this.network, receiver.chain, destToken);
55
48
  const startTokenAddress = (0, sdk_connect_1.canonicalAddress)(startToken);
56
- const cannonTokenAddress = (0, sdk_connect_1.canonicalAddress)(this.getTransferrableToken(startTokenAddress));
49
+ const cannonTokenAddress = (0, sdk_connect_1.canonicalAddress)(await this.getTransferrableToken(startTokenAddress));
57
50
  const receiverAddress = (0, sdk_connect_1.canonicalAddress)(receiver);
58
51
  const finalTokenAddress = (0, sdk_connect_1.canonicalAddress)(finalToken);
59
- const destinationPorticoAddress = sdk_connect_1.contracts.portico.get(this.network, receiver.chain).portico;
60
52
  const nonce = new Date().valueOf() % 2 ** 4;
61
53
  const flags = sdk_connect_1.PorticoBridge.serializeFlagSet({
62
54
  flags: {
@@ -83,32 +75,47 @@ class EvmPorticoBridge {
83
75
  quote.relayerFee.toString(),
84
76
  ],
85
77
  ]);
78
+ const group = this.getTokenGroup(startToken.address.toString());
79
+ const porticoAddress = this.getPorticoAddress(group);
86
80
  // Approve the token if necessary
87
81
  if (!isStartTokenNative)
88
- yield* this.approve(startTokenAddress, senderAddress, amount, this.porticoAddress);
82
+ yield* this.approve(startTokenAddress, senderAddress, amount, porticoAddress);
89
83
  const messageFee = await this.core.getMessageFee();
90
84
  const tx = {
91
- to: this.porticoAddress,
85
+ to: porticoAddress,
92
86
  data: transactionData,
93
87
  value: messageFee + (isStartTokenNative ? amount : 0n),
94
88
  };
95
89
  yield this.createUnsignedTransaction((0, sdk_evm_1.addFrom)(tx, senderAddress), 'PorticoBridge.Transfer');
96
90
  }
97
91
  async *redeem(sender, vaa) {
98
- const txReq = await this.porticoContract
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
99
100
  .getFunction('receiveMessageAndSwap')
100
101
  .populateTransaction((0, sdk_connect_1.serialize)(vaa));
101
102
  const address = new sdk_evm_1.EvmAddress(sender).toString();
102
103
  yield this.createUnsignedTransaction((0, sdk_evm_1.addFrom)(txReq, address), 'PorticoBridge.Redeem');
103
104
  }
104
- async quoteSwap(input, output, amount) {
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) {
105
110
  const [, inputTokenId] = (0, sdk_connect_1.resolveWrappedToken)(this.network, this.chain, input);
106
111
  const [, outputTokenId] = (0, sdk_connect_1.resolveWrappedToken)(this.network, this.chain, output);
107
112
  const inputAddress = (0, sdk_connect_1.canonicalAddress)(inputTokenId);
108
113
  const outputAddress = (0, sdk_connect_1.canonicalAddress)(outputTokenId);
109
114
  if ((0, sdk_connect_1.isEqualCaseInsensitive)(inputAddress, outputAddress))
110
115
  return amount;
111
- const result = await this.uniswapContract
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
112
119
  .getFunction('quoteExactInputSingle')
113
120
  .staticCall([inputAddress, outputAddress, amount, consts_js_1.FEE_TIER, 0]);
114
121
  return result[0];
@@ -116,21 +123,42 @@ class EvmPorticoBridge {
116
123
  async quoteRelay(startToken, endToken) {
117
124
  return await api_js_1.PorticoApi.quoteRelayer(this.chain, startToken, endToken);
118
125
  }
119
- // For a given token, return the corresponding
120
- // Wormhole wrapped token that originated on Ethereum
121
- getTransferrableToken(address) {
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);
122
131
  if (this.chain === 'Ethereum')
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);
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;
134
162
  }
135
163
  async *approve(token, senderAddr, amount, contract) {
136
164
  const tokenContract = sdk_evm_1.EvmPlatform.getTokenImplementation(this.provider, token);
@@ -143,6 +171,22 @@ class EvmPorticoBridge {
143
171
  createUnsignedTransaction(txReq, description) {
144
172
  return new sdk_evm_1.EvmUnsignedTransaction((0, sdk_evm_1.addChainId)(txReq, this.chainId), this.network, this.chain, description, false);
145
173
  }
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
+ }
146
190
  }
147
191
  exports.EvmPorticoBridge = EvmPorticoBridge;
148
192
  //# 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":"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"}
@@ -1,4 +1,8 @@
1
1
  export declare const FEE_TIER = 100;
2
- export declare const SWAP_ERROR = "This transaction will not succeed due to price movement.";
3
- export declare const swapErrors: string[];
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
+ };
4
8
  //# sourceMappingURL=consts.d.ts.map
@@ -1 +1 @@
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
+ {"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,13 +1,40 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.swapErrors = exports.SWAP_ERROR = exports.FEE_TIER = void 0;
3
+ exports.supportedTokens = exports.FEE_TIER = void 0;
4
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
4
5
  exports.FEE_TIER = 100;
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
- ];
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
+ };
13
40
  //# sourceMappingURL=consts.js.map
@@ -1 +1 @@
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"}
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"}
package/dist/esm/api.d.ts CHANGED
@@ -1,44 +1,10 @@
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';
1
+ import type { Chain, TokenAddress } from '@wormhole-foundation/sdk-connect';
4
2
  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
- }
31
3
  export interface RelayerQuoteResponse {
32
4
  fee: string;
33
5
  validUntil: string;
34
6
  }
35
7
  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;
42
8
  static quoteRelayer<C extends Chain>(chain: Chain, from: TokenAddress<C>, to: TokenAddress<C>): Promise<bigint>;
43
9
  }
44
10
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
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"}
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"}
package/dist/esm/api.js CHANGED
@@ -1,128 +1,7 @@
1
- import { PorticoBridge, canonicalAddress, contracts, encoding, isEqualCaseInsensitive, isNative, nativeChainIds, resolveWrappedToken, toChainId, } from '@wormhole-foundation/sdk-connect';
1
+ import { encoding, isNative, 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';
5
3
  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';
8
4
  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
- };
126
5
  static async quoteRelayer(chain, from, to) {
127
6
  if (isNative(from) || isNative(to))
128
7
  throw new Error('how did you get here tho?');
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
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"}
@@ -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';
7
6
  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,19 +12,24 @@ 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;
19
15
  core: EvmWormholeCore<N, C>;
16
+ tokenBridge: EvmTokenBridge<N, C>;
20
17
  constructor(network: N, chain: C, provider: Provider, contracts: Contracts);
21
18
  static fromRpc<N extends Network>(provider: Provider, config: ChainsConfig<N, Platform>): Promise<EvmPorticoBridge<N, EvmChains>>;
22
- transfer(sender: AccountAddress<C>, receiver: ChainAddress, token: TokenAddress<C>, amount: bigint, destToken: TokenId, quote: PorticoBridge.Quote): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
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>;
23
20
  redeem(sender: AccountAddress<C>, vaa: PorticoBridge.VAA): AsyncGenerator<EvmUnsignedTransaction<N, C>, void, unknown>;
24
- quoteSwap(input: TokenAddress<C>, output: TokenAddress<C>, amount: bigint): Promise<bigint>;
21
+ isTransferCompleted(vaa: PorticoBridge.VAA): Promise<boolean>;
22
+ quoteSwap(input: TokenAddress<C>, output: TokenAddress<C>, tokenGroup: string, amount: bigint): Promise<bigint>;
25
23
  quoteRelay(startToken: TokenAddress<C>, endToken: TokenAddress<C>): Promise<bigint>;
26
- getTransferrableToken(address: string): TokenId;
24
+ getTransferrableToken(address: string): Promise<TokenId>;
25
+ supportedTokens(): {
26
+ group: string;
27
+ token: TokenId;
28
+ }[];
29
+ getTokenGroup(address: string): string;
27
30
  private approve;
28
31
  private createUnsignedTransaction;
32
+ getPorticoAddress(group: string): string;
33
+ private getQuoterAddress;
29
34
  }
30
35
  //# 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;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
+ {"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,11 +1,11 @@
1
- import { PorticoBridge, Wormhole, canonicalAddress, contracts, isEqualCaseInsensitive, nativeChainIds, resolveWrappedToken, serialize, toChainId, } from '@wormhole-foundation/sdk-connect';
1
+ import { PorticoBridge, Wormhole, canonicalAddress, isEqualCaseInsensitive, nativeChainIds, resolveWrappedToken, serialize, toChain, toChainId, } from '@wormhole-foundation/sdk-connect';
2
2
  import { EvmAddress, EvmPlatform, EvmUnsignedTransaction, addChainId, addFrom, } from '@wormhole-foundation/sdk-evm';
3
- import { ethers } from 'ethers';
3
+ import { ethers, keccak256 } from 'ethers';
4
4
  import { porticoAbi, uniswapQuoterV2Abi } from './abis.js';
5
5
  import { PorticoApi } from './api.js';
6
- import { FEE_TIER } from './consts.js';
7
- import { getTokensBySymbol, getTokenByAddress, } from '@wormhole-foundation/sdk-connect/tokens';
6
+ import { FEE_TIER, supportedTokens } from './consts.js';
8
7
  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,11 +13,8 @@ export class EvmPorticoBridge {
13
13
  provider;
14
14
  contracts;
15
15
  chainId;
16
- porticoAddress;
17
- uniswapAddress;
18
- porticoContract;
19
- uniswapContract;
20
16
  core;
17
+ tokenBridge;
21
18
  constructor(network, chain, provider, contracts) {
22
19
  this.network = network;
23
20
  this.chain = chain;
@@ -26,12 +23,8 @@ export class EvmPorticoBridge {
26
23
  if (!contracts.portico)
27
24
  throw new Error('Unsupported chain, no contract addresses for: ' + chain);
28
25
  this.core = new EvmWormholeCore(network, chain, provider, contracts);
29
- const { portico: porticoAddress, uniswapQuoterV2: uniswapAddress } = contracts.portico;
30
- this.porticoAddress = porticoAddress;
31
- this.uniswapAddress = uniswapAddress;
26
+ this.tokenBridge = new EvmTokenBridge(network, chain, provider, contracts);
32
27
  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);
35
28
  }
36
29
  static async fromRpc(provider, config) {
37
30
  const [network, chain] = await EvmPlatform.chainFromRpc(provider);
@@ -40,7 +33,7 @@ export class EvmPorticoBridge {
40
33
  throw new Error(`Network mismatch: ${conf.network} != ${network}`);
41
34
  return new EvmPorticoBridge(network, chain, provider, conf.contracts);
42
35
  }
43
- async *transfer(sender, receiver, token, amount, destToken, quote) {
36
+ async *transfer(sender, receiver, token, amount, destToken, destinationPorticoAddress, quote) {
44
37
  const { minAmountStart, minAmountFinish } = quote.swapAmounts;
45
38
  if (minAmountStart === 0n)
46
39
  throw new Error('Invalid min swap amount');
@@ -50,10 +43,9 @@ export class EvmPorticoBridge {
50
43
  const [isStartTokenNative, startToken] = resolveWrappedToken(this.network, this.chain, token);
51
44
  const [isFinalTokenNative, finalToken] = resolveWrappedToken(this.network, receiver.chain, destToken);
52
45
  const startTokenAddress = canonicalAddress(startToken);
53
- const cannonTokenAddress = canonicalAddress(this.getTransferrableToken(startTokenAddress));
46
+ const cannonTokenAddress = canonicalAddress(await this.getTransferrableToken(startTokenAddress));
54
47
  const receiverAddress = canonicalAddress(receiver);
55
48
  const finalTokenAddress = canonicalAddress(finalToken);
56
- const destinationPorticoAddress = contracts.portico.get(this.network, receiver.chain).portico;
57
49
  const nonce = new Date().valueOf() % 2 ** 4;
58
50
  const flags = PorticoBridge.serializeFlagSet({
59
51
  flags: {
@@ -80,32 +72,47 @@ export class EvmPorticoBridge {
80
72
  quote.relayerFee.toString(),
81
73
  ],
82
74
  ]);
75
+ const group = this.getTokenGroup(startToken.address.toString());
76
+ const porticoAddress = this.getPorticoAddress(group);
83
77
  // Approve the token if necessary
84
78
  if (!isStartTokenNative)
85
- yield* this.approve(startTokenAddress, senderAddress, amount, this.porticoAddress);
79
+ yield* this.approve(startTokenAddress, senderAddress, amount, porticoAddress);
86
80
  const messageFee = await this.core.getMessageFee();
87
81
  const tx = {
88
- to: this.porticoAddress,
82
+ to: porticoAddress,
89
83
  data: transactionData,
90
84
  value: messageFee + (isStartTokenNative ? amount : 0n),
91
85
  };
92
86
  yield this.createUnsignedTransaction(addFrom(tx, senderAddress), 'PorticoBridge.Transfer');
93
87
  }
94
88
  async *redeem(sender, vaa) {
95
- const txReq = await this.porticoContract
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
96
97
  .getFunction('receiveMessageAndSwap')
97
98
  .populateTransaction(serialize(vaa));
98
99
  const address = new EvmAddress(sender).toString();
99
100
  yield this.createUnsignedTransaction(addFrom(txReq, address), 'PorticoBridge.Redeem');
100
101
  }
101
- async quoteSwap(input, output, amount) {
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) {
102
107
  const [, inputTokenId] = resolveWrappedToken(this.network, this.chain, input);
103
108
  const [, outputTokenId] = resolveWrappedToken(this.network, this.chain, output);
104
109
  const inputAddress = canonicalAddress(inputTokenId);
105
110
  const outputAddress = canonicalAddress(outputTokenId);
106
111
  if (isEqualCaseInsensitive(inputAddress, outputAddress))
107
112
  return amount;
108
- const result = await this.uniswapContract
113
+ const quoterAddress = this.getQuoterAddress(tokenGroup);
114
+ const quoter = new ethers.Contract(quoterAddress, uniswapQuoterV2Abi.fragments, this.provider);
115
+ const result = await quoter
109
116
  .getFunction('quoteExactInputSingle')
110
117
  .staticCall([inputAddress, outputAddress, amount, FEE_TIER, 0]);
111
118
  return result[0];
@@ -113,21 +120,42 @@ export class EvmPorticoBridge {
113
120
  async quoteRelay(startToken, endToken) {
114
121
  return await PorticoApi.quoteRelayer(this.chain, startToken, endToken);
115
122
  }
116
- // For a given token, return the corresponding
117
- // Wormhole wrapped token that originated on Ethereum
118
- getTransferrableToken(address) {
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);
119
128
  if (this.chain === 'Ethereum')
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);
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;
131
159
  }
132
160
  async *approve(token, senderAddr, amount, contract) {
133
161
  const tokenContract = EvmPlatform.getTokenImplementation(this.provider, token);
@@ -140,5 +168,21 @@ export class EvmPorticoBridge {
140
168
  createUnsignedTransaction(txReq, description) {
141
169
  return new EvmUnsignedTransaction(addChainId(txReq, this.chainId), this.network, this.chain, description, false);
142
170
  }
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
+ }
143
187
  }
144
188
  //# 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":"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"}
@@ -1,4 +1,8 @@
1
1
  export declare const FEE_TIER = 100;
2
- export declare const SWAP_ERROR = "This transaction will not succeed due to price movement.";
3
- export declare const swapErrors: string[];
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
+ };
4
8
  //# sourceMappingURL=consts.d.ts.map
@@ -1 +1 @@
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
+ {"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,10 +1,37 @@
1
+ import { Wormhole } from '@wormhole-foundation/sdk-connect';
1
2
  export const FEE_TIER = 100;
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
- ];
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
+ };
10
37
  //# sourceMappingURL=consts.js.map
@@ -1 +1 @@
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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wormhole-foundation/sdk-evm-portico",
3
- "version": "0.10.12",
3
+ "version": "0.11.1-beta.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",
56
- "@wormhole-foundation/sdk-evm": "0.10.12",
57
- "@wormhole-foundation/sdk-evm-core": "0.10.12",
58
- "@wormhole-foundation/sdk-evm-tokenbridge": "0.10.12",
55
+ "@wormhole-foundation/sdk-connect": "0.11.1-beta.0",
56
+ "@wormhole-foundation/sdk-evm": "0.11.1-beta.0",
57
+ "@wormhole-foundation/sdk-evm-core": "0.11.1-beta.0",
58
+ "@wormhole-foundation/sdk-evm-tokenbridge": "0.11.1-beta.0",
59
59
  "ethers": "^6.5.1"
60
60
  },
61
61
  "type": "module",