@wormhole-foundation/sdk-route-ntt 0.0.1-beta.2
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/automatic.d.ts +57 -0
- package/dist/cjs/automatic.d.ts.map +1 -0
- package/dist/cjs/automatic.js +157 -0
- package/dist/cjs/automatic.js.map +1 -0
- package/dist/cjs/index.d.ts +4 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +20 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/manual.d.ts +59 -0
- package/dist/cjs/manual.d.ts.map +1 -0
- package/dist/cjs/manual.js +175 -0
- package/dist/cjs/manual.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/types.d.ts +48 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +73 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/automatic.d.ts +57 -0
- package/dist/esm/automatic.d.ts.map +1 -0
- package/dist/esm/automatic.js +152 -0
- package/dist/esm/automatic.js.map +1 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/manual.d.ts +59 -0
- package/dist/esm/manual.d.ts.map +1 -0
- package/dist/esm/manual.js +170 -0
- package/dist/esm/manual.js.map +1 -0
- package/dist/esm/types.d.ts +48 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +70 -0
- package/dist/esm/types.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Chain, ChainContext, Network, TokenId, VAA, WormholeMessageId, TransferReceipt as _TransferReceipt, amount, routes } from "@wormhole-foundation/sdk-connect";
|
|
2
|
+
import { Ntt } from "@wormhole-foundation/sdk-definitions-ntt";
|
|
3
|
+
export declare namespace NttRoute {
|
|
4
|
+
type TransceiverType = "wormhole";
|
|
5
|
+
type TransceiverConfig = {
|
|
6
|
+
type: TransceiverType;
|
|
7
|
+
address: string;
|
|
8
|
+
};
|
|
9
|
+
type TokenConfig = {
|
|
10
|
+
chain: Chain;
|
|
11
|
+
token: string;
|
|
12
|
+
manager: string;
|
|
13
|
+
transceiver: TransceiverConfig[];
|
|
14
|
+
quoter?: string;
|
|
15
|
+
};
|
|
16
|
+
type Config = {
|
|
17
|
+
tokens: Record<string, TokenConfig[]>;
|
|
18
|
+
};
|
|
19
|
+
/** Options for Per-TransferRequest settings */
|
|
20
|
+
interface Options {
|
|
21
|
+
automatic: boolean;
|
|
22
|
+
gasDropoff?: string;
|
|
23
|
+
}
|
|
24
|
+
const ManualOptions: Options;
|
|
25
|
+
const AutomaticOptions: Options;
|
|
26
|
+
type NormalizedParams = {
|
|
27
|
+
amount: amount.Amount;
|
|
28
|
+
options: Ntt.TransferOptions;
|
|
29
|
+
sourceContracts: Ntt.Contracts;
|
|
30
|
+
destinationContracts: Ntt.Contracts;
|
|
31
|
+
};
|
|
32
|
+
interface ValidatedParams extends routes.ValidatedTransferParams<Options> {
|
|
33
|
+
normalizedParams: NormalizedParams;
|
|
34
|
+
}
|
|
35
|
+
type AttestationReceipt = {
|
|
36
|
+
id: WormholeMessageId;
|
|
37
|
+
attestation: VAA<"Ntt:WormholeTransfer">;
|
|
38
|
+
};
|
|
39
|
+
type TransferReceipt<SC extends Chain = Chain, DC extends Chain = Chain> = _TransferReceipt<AttestationReceipt, SC, DC> & {
|
|
40
|
+
params: ValidatedParams;
|
|
41
|
+
};
|
|
42
|
+
function resolveSupportedNetworks(config: Config): Network[];
|
|
43
|
+
function resolveSupportedChains(config: Config, network: Network): Chain[];
|
|
44
|
+
function resolveSourceTokens(config: Config, fromChain: ChainContext<Network>): TokenId[];
|
|
45
|
+
function resolveDestinationTokens(config: Config, sourceToken: TokenId, fromChain: ChainContext<Network>, toChain: ChainContext<Network>): TokenId[];
|
|
46
|
+
function resolveNttContracts(config: Config, token: TokenId): Ntt.Contracts;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,YAAY,EACZ,OAAO,EACP,OAAO,EACP,GAAG,EAEH,iBAAiB,EACjB,eAAe,IAAI,gBAAgB,EACnC,MAAM,EAEN,MAAM,EACP,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,0CAA0C,CAAC;AAE/D,yBAAiB,QAAQ,CAAC;IAExB,KAAY,eAAe,GAAG,UAAU,CAAC;IAEzC,KAAY,iBAAiB,GAAG;QAC9B,IAAI,EAAE,eAAe,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF,KAAY,WAAW,GAAG;QACxB,KAAK,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,iBAAiB,EAAE,CAAC;QACjC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF,KAAY,MAAM,GAAG;QAEnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;KACvC,CAAC;IAEF,+CAA+C;IAC/C,UAAiB,OAAO;QACtB,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB;IAEM,MAAM,aAAa,EAAE,OAE3B,CAAC;IAEK,MAAM,gBAAgB,EAAE,OAG9B,CAAC;IAEF,KAAY,gBAAgB,GAAG;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;QACtB,OAAO,EAAE,GAAG,CAAC,eAAe,CAAC;QAC7B,eAAe,EAAE,GAAG,CAAC,SAAS,CAAC;QAC/B,oBAAoB,EAAE,GAAG,CAAC,SAAS,CAAC;KACrC,CAAC;IAEF,UAAiB,eACf,SAAQ,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC;QAC/C,gBAAgB,EAAE,gBAAgB,CAAC;KACpC;IAED,KAAY,kBAAkB,GAAG;QAC/B,EAAE,EAAE,iBAAiB,CAAC;QACtB,WAAW,EAAE,GAAG,CAAC,sBAAsB,CAAC,CAAC;KAC1C,CAAC;IAEF,KAAY,eAAe,CACzB,EAAE,SAAS,KAAK,GAAG,KAAK,EACxB,EAAE,SAAS,KAAK,GAAG,KAAK,IACtB,gBAAgB,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG;QACjD,MAAM,EAAE,eAAe,CAAC;KACzB,CAAC;IAEF,SAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,CAElE;IAED,SAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,GACf,KAAK,EAAE,CAGT;IAED,SAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,GAC/B,OAAO,EAAE,CAaX;IAED,SAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,EAChC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,aAkB/B;IAED,SAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,GACb,GAAG,CAAC,SAAS,CAqBf;CACF"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Wormhole, canonicalAddress, } from "@wormhole-foundation/sdk-connect";
|
|
2
|
+
export var NttRoute;
|
|
3
|
+
(function (NttRoute) {
|
|
4
|
+
NttRoute.ManualOptions = {
|
|
5
|
+
automatic: false,
|
|
6
|
+
};
|
|
7
|
+
NttRoute.AutomaticOptions = {
|
|
8
|
+
automatic: true,
|
|
9
|
+
gasDropoff: "0.0",
|
|
10
|
+
};
|
|
11
|
+
function resolveSupportedNetworks(config) {
|
|
12
|
+
return ["Mainnet", "Testnet"];
|
|
13
|
+
}
|
|
14
|
+
NttRoute.resolveSupportedNetworks = resolveSupportedNetworks;
|
|
15
|
+
function resolveSupportedChains(config, network) {
|
|
16
|
+
const configs = Object.values(config.tokens);
|
|
17
|
+
return configs.flatMap((cfg) => cfg.map((chainCfg) => chainCfg.chain));
|
|
18
|
+
}
|
|
19
|
+
NttRoute.resolveSupportedChains = resolveSupportedChains;
|
|
20
|
+
function resolveSourceTokens(config, fromChain) {
|
|
21
|
+
const srcTokens = Object.entries(config.tokens)
|
|
22
|
+
.map(([, configs]) => {
|
|
23
|
+
const tokenConf = configs.find((config) => config.chain === fromChain.chain);
|
|
24
|
+
if (!tokenConf)
|
|
25
|
+
return null;
|
|
26
|
+
return Wormhole.tokenId(fromChain.chain, tokenConf.token);
|
|
27
|
+
})
|
|
28
|
+
.filter((x) => !!x);
|
|
29
|
+
// TODO: dedupe? //return routes.uniqueTokens(srcTokens);
|
|
30
|
+
return srcTokens;
|
|
31
|
+
}
|
|
32
|
+
NttRoute.resolveSourceTokens = resolveSourceTokens;
|
|
33
|
+
function resolveDestinationTokens(config, sourceToken, fromChain, toChain) {
|
|
34
|
+
return Object.entries(config.tokens)
|
|
35
|
+
.map(([, configs]) => {
|
|
36
|
+
const match = configs.find((config) => config.chain === fromChain.chain &&
|
|
37
|
+
config.token.toLowerCase() ===
|
|
38
|
+
canonicalAddress(sourceToken).toLowerCase());
|
|
39
|
+
if (!match)
|
|
40
|
+
return;
|
|
41
|
+
const remote = configs.find((config) => config.chain === toChain.chain);
|
|
42
|
+
if (!remote)
|
|
43
|
+
return;
|
|
44
|
+
return Wormhole.tokenId(toChain.chain, remote.token);
|
|
45
|
+
})
|
|
46
|
+
.filter((x) => !!x);
|
|
47
|
+
}
|
|
48
|
+
NttRoute.resolveDestinationTokens = resolveDestinationTokens;
|
|
49
|
+
function resolveNttContracts(config, token) {
|
|
50
|
+
const cfg = Object.values(config.tokens);
|
|
51
|
+
const address = canonicalAddress(token);
|
|
52
|
+
for (const tokens of cfg) {
|
|
53
|
+
const found = tokens.find((tc) => tc.token.toLowerCase() === address.toLowerCase() &&
|
|
54
|
+
tc.chain === token.chain);
|
|
55
|
+
if (found)
|
|
56
|
+
return {
|
|
57
|
+
token: found.token,
|
|
58
|
+
manager: found.manager,
|
|
59
|
+
transceiver: {
|
|
60
|
+
wormhole: found.transceiver.find((v) => v.type === "wormhole")
|
|
61
|
+
.address,
|
|
62
|
+
},
|
|
63
|
+
quoter: found.quoter,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
throw new Error("Cannot find Ntt contracts in config for: " + address);
|
|
67
|
+
}
|
|
68
|
+
NttRoute.resolveNttContracts = resolveNttContracts;
|
|
69
|
+
})(NttRoute || (NttRoute = {}));
|
|
70
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@wormhole-foundation/sdk-route-ntt",
|
|
3
|
+
"version": "0.0.1-beta.2",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "git+https://github.com/wormhole-foundation/connect-sdk.git"
|
|
7
|
+
},
|
|
8
|
+
"bugs": {
|
|
9
|
+
"url": "https://github.com/wormhole-foundation/connect-sdk/issues"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://github.com/wormhole-foundation/connect-sdk#readme",
|
|
12
|
+
"directories": {
|
|
13
|
+
"test": "__tests__"
|
|
14
|
+
},
|
|
15
|
+
"license": "Apache-2.0",
|
|
16
|
+
"main": "./dist/cjs/index.js",
|
|
17
|
+
"types": "./dist/cjs/index.d.ts",
|
|
18
|
+
"module": "./dist/esm/index.js",
|
|
19
|
+
"description": "SDK for Solana, used in conjunction with @wormhole-foundation/sdk",
|
|
20
|
+
"files": [
|
|
21
|
+
"dist/esm",
|
|
22
|
+
"dist/cjs"
|
|
23
|
+
],
|
|
24
|
+
"keywords": [
|
|
25
|
+
"wormhole",
|
|
26
|
+
"sdk",
|
|
27
|
+
"typescript",
|
|
28
|
+
"ntt",
|
|
29
|
+
"solana"
|
|
30
|
+
],
|
|
31
|
+
"engines": {
|
|
32
|
+
"node": ">=16"
|
|
33
|
+
},
|
|
34
|
+
"sideEffects": true,
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build:cjs": "tsc -p ./tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json",
|
|
37
|
+
"build:esm": "tsc -p ./tsconfig.esm.json",
|
|
38
|
+
"build": "npm run build:esm && npm run build:cjs",
|
|
39
|
+
"rebuild": "npm run clean && npm run build",
|
|
40
|
+
"test": "jest --config ./jest.config.ts",
|
|
41
|
+
"clean": "rm -rf ./dist"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"nock": "^13.3.3",
|
|
45
|
+
"ts-jest": "^29.1.2",
|
|
46
|
+
"ts-node": "^10.9.2"
|
|
47
|
+
},
|
|
48
|
+
"dependencies": {
|
|
49
|
+
"@wormhole-foundation/sdk-definitions-ntt": "0.0.1-beta.2",
|
|
50
|
+
"@wormhole-foundation/sdk-solana-ntt": "0.0.1-beta.2",
|
|
51
|
+
"@wormhole-foundation/sdk-evm-ntt": "0.0.1-beta.2",
|
|
52
|
+
"@wormhole-foundation/sdk-connect": ">=0.5.3"
|
|
53
|
+
},
|
|
54
|
+
"type": "module",
|
|
55
|
+
"exports": {
|
|
56
|
+
".": {
|
|
57
|
+
"import": {
|
|
58
|
+
"types": "./dist/esm/index.d.ts",
|
|
59
|
+
"default": "./dist/esm/index.js"
|
|
60
|
+
},
|
|
61
|
+
"require": {
|
|
62
|
+
"types": "./dist/cjs/index.d.ts",
|
|
63
|
+
"default": "./dist/cjs/index.js"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|