@wormhole-foundation/sdk-solana 4.23.0 → 5.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +15 -48
- package/dist/cjs/address.d.ts +0 -27
- package/dist/cjs/address.d.ts.map +0 -1
- package/dist/cjs/address.js +0 -56
- package/dist/cjs/address.js.map +0 -1
- package/dist/cjs/chain.d.ts +0 -8
- package/dist/cjs/chain.d.ts.map +0 -1
- package/dist/cjs/chain.js +0 -54
- package/dist/cjs/chain.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -8
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -24
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/platform.d.ts +0 -36
- package/dist/cjs/platform.d.ts.map +0 -1
- package/dist/cjs/platform.js +0 -195
- package/dist/cjs/platform.js.map +0 -1
- package/dist/cjs/signer.d.ts +0 -91
- package/dist/cjs/signer.d.ts.map +0 -1
- package/dist/cjs/signer.js +0 -380
- package/dist/cjs/signer.js.map +0 -1
- package/dist/cjs/types.d.ts +0 -16
- package/dist/cjs/types.d.ts.map +0 -1
- package/dist/cjs/types.js +0 -10
- package/dist/cjs/types.js.map +0 -1
- package/dist/cjs/unsignedTransaction.d.ts +0 -17
- package/dist/cjs/unsignedTransaction.d.ts.map +0 -1
- package/dist/cjs/unsignedTransaction.js +0 -24
- package/dist/cjs/unsignedTransaction.js.map +0 -1
- package/dist/cjs/utils/anchor/common.d.ts +0 -3
- package/dist/cjs/utils/anchor/common.d.ts.map +0 -1
- package/dist/cjs/utils/anchor/common.js +0 -102
- package/dist/cjs/utils/anchor/common.js.map +0 -1
- package/dist/cjs/utils/anchor/error.d.ts +0 -4
- package/dist/cjs/utils/anchor/error.d.ts.map +0 -1
- package/dist/cjs/utils/anchor/error.js +0 -14
- package/dist/cjs/utils/anchor/error.js.map +0 -1
- package/dist/cjs/utils/anchor/idl.d.ts +0 -126
- package/dist/cjs/utils/anchor/idl.d.ts.map +0 -1
- package/dist/cjs/utils/anchor/idl.js +0 -62
- package/dist/cjs/utils/anchor/idl.js.map +0 -1
- package/dist/cjs/utils/anchor/index.d.ts +0 -4
- package/dist/cjs/utils/anchor/index.d.ts.map +0 -1
- package/dist/cjs/utils/anchor/index.js +0 -20
- package/dist/cjs/utils/anchor/index.js.map +0 -1
- package/dist/cjs/utils/index.d.ts +0 -5
- package/dist/cjs/utils/index.d.ts.map +0 -1
- package/dist/cjs/utils/index.js +0 -43
- package/dist/cjs/utils/index.js.map +0 -1
- package/dist/cjs/utils/utils/account.d.ts +0 -39
- package/dist/cjs/utils/utils/account.d.ts.map +0 -1
- package/dist/cjs/utils/utils/account.js +0 -53
- package/dist/cjs/utils/utils/account.js.map +0 -1
- package/dist/cjs/utils/utils/bpfLoaderUpgradeable.d.ts +0 -40
- package/dist/cjs/utils/utils/bpfLoaderUpgradeable.d.ts.map +0 -1
- package/dist/cjs/utils/utils/bpfLoaderUpgradeable.js +0 -51
- package/dist/cjs/utils/utils/bpfLoaderUpgradeable.js.map +0 -1
- package/dist/cjs/utils/utils/index.d.ts +0 -6
- package/dist/cjs/utils/utils/index.d.ts.map +0 -1
- package/dist/cjs/utils/utils/index.js +0 -27
- package/dist/cjs/utils/utils/index.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wormhole-foundation/sdk-solana",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0-beta.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/wormhole-foundation/wormhole-sdk-ts.git"
|
|
@@ -13,13 +13,12 @@
|
|
|
13
13
|
"test": "__tests__"
|
|
14
14
|
},
|
|
15
15
|
"license": "Apache-2.0",
|
|
16
|
-
"main": "./dist/
|
|
17
|
-
"types": "./dist/
|
|
16
|
+
"main": "./dist/esm/index.js",
|
|
17
|
+
"types": "./dist/esm/index.d.ts",
|
|
18
18
|
"module": "./dist/esm/index.js",
|
|
19
19
|
"description": "SDK for Solana, used in conjunction with @wormhole-foundation/sdk",
|
|
20
20
|
"files": [
|
|
21
|
-
"dist/esm"
|
|
22
|
-
"dist/cjs"
|
|
21
|
+
"dist/esm"
|
|
23
22
|
],
|
|
24
23
|
"keywords": [
|
|
25
24
|
"wormhole",
|
|
@@ -29,18 +28,16 @@
|
|
|
29
28
|
"solana"
|
|
30
29
|
],
|
|
31
30
|
"engines": {
|
|
32
|
-
"node": ">=
|
|
31
|
+
"node": ">=20.19"
|
|
33
32
|
},
|
|
34
33
|
"sideEffects": [
|
|
35
|
-
"./dist/cjs/address.js",
|
|
36
34
|
"./dist/esm/address.js"
|
|
37
35
|
],
|
|
38
36
|
"scripts": {
|
|
39
|
-
"build:cjs": "tsc -p ./tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json",
|
|
40
37
|
"build:esm": "tsc -p ./tsconfig.esm.json",
|
|
41
|
-
"build": "npm run build:esm
|
|
38
|
+
"build": "npm run build:esm",
|
|
42
39
|
"rebuild": "npm run clean && npm run build",
|
|
43
|
-
"test": "jest --config ./jest.config.ts",
|
|
40
|
+
"test": "NODE_OPTIONS=--experimental-vm-modules jest --config ./jest.config.ts",
|
|
44
41
|
"clean": "rm -rf ./dist && rm -rf ./.turbo",
|
|
45
42
|
"lint": "npm run prettier && eslint --fix ./src --ext .ts",
|
|
46
43
|
"prettier": "prettier --write ./src"
|
|
@@ -53,57 +50,27 @@
|
|
|
53
50
|
"@coral-xyz/borsh": "0.29.0",
|
|
54
51
|
"@solana/spl-token": "0.3.9",
|
|
55
52
|
"@solana/web3.js": "^1.95.8",
|
|
56
|
-
"@wormhole-foundation/sdk-connect": "
|
|
53
|
+
"@wormhole-foundation/sdk-connect": "5.0.0-beta.1",
|
|
57
54
|
"rpc-websockets": "^7.10.0"
|
|
58
55
|
},
|
|
59
56
|
"type": "module",
|
|
60
57
|
"typesVersions": {
|
|
61
58
|
"*": {
|
|
62
59
|
"*": [
|
|
63
|
-
"dist/
|
|
60
|
+
"dist/esm/index.d.ts"
|
|
64
61
|
]
|
|
65
62
|
}
|
|
66
63
|
},
|
|
67
64
|
"exports": {
|
|
68
65
|
".": {
|
|
69
|
-
"
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
"types": "./dist/cjs/index.d.ts",
|
|
73
|
-
"default": "./dist/cjs/index.js"
|
|
74
|
-
},
|
|
75
|
-
"import": {
|
|
76
|
-
"types": "./dist/esm/index.d.ts",
|
|
77
|
-
"default": "./dist/esm/index.js"
|
|
78
|
-
},
|
|
79
|
-
"require": {
|
|
80
|
-
"types": "./dist/cjs/index.d.ts",
|
|
81
|
-
"default": "./dist/cjs/index.js"
|
|
82
|
-
},
|
|
83
|
-
"default": {
|
|
84
|
-
"types": "./dist/cjs/index.d.ts",
|
|
85
|
-
"default": "./dist/cjs/index.js"
|
|
86
|
-
}
|
|
66
|
+
"types": "./dist/esm/index.d.ts",
|
|
67
|
+
"import": "./dist/esm/index.js",
|
|
68
|
+
"default": "./dist/esm/index.js"
|
|
87
69
|
},
|
|
88
70
|
"./address": {
|
|
89
|
-
"
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
"types": "./dist/cjs/address.d.ts",
|
|
93
|
-
"default": "./dist/cjs/address.js"
|
|
94
|
-
},
|
|
95
|
-
"import": {
|
|
96
|
-
"types": "./dist/esm/address.d.ts",
|
|
97
|
-
"default": "./dist/esm/address.js"
|
|
98
|
-
},
|
|
99
|
-
"require": {
|
|
100
|
-
"types": "./dist/cjs/address.d.ts",
|
|
101
|
-
"default": "./dist/cjs/address.js"
|
|
102
|
-
},
|
|
103
|
-
"default": {
|
|
104
|
-
"types": "./dist/cjs/address.d.ts",
|
|
105
|
-
"default": "./dist/cjs/address.js"
|
|
106
|
-
}
|
|
71
|
+
"types": "./dist/esm/address.d.ts",
|
|
72
|
+
"import": "./dist/esm/address.js",
|
|
73
|
+
"default": "./dist/esm/address.js"
|
|
107
74
|
}
|
|
108
75
|
}
|
|
109
76
|
}
|
package/dist/cjs/address.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { Address } from '@wormhole-foundation/sdk-connect';
|
|
2
|
-
import { UniversalAddress } from '@wormhole-foundation/sdk-connect';
|
|
3
|
-
import { PublicKey } from '@solana/web3.js';
|
|
4
|
-
import type { AnySolanaAddress } from './types.js';
|
|
5
|
-
export declare const SolanaZeroAddress = "11111111111111111111111111111111";
|
|
6
|
-
export declare class SolanaAddress implements Address {
|
|
7
|
-
static readonly byteSize = 32;
|
|
8
|
-
static readonly platform: "Solana";
|
|
9
|
-
readonly type: string;
|
|
10
|
-
readonly address: PublicKey;
|
|
11
|
-
constructor(address: AnySolanaAddress);
|
|
12
|
-
unwrap(): PublicKey;
|
|
13
|
-
toString(): string;
|
|
14
|
-
toUint8Array(): Uint8Array;
|
|
15
|
-
toNative(): this;
|
|
16
|
-
toUniversalAddress(): UniversalAddress;
|
|
17
|
-
static instanceof(address: any): address is SolanaAddress;
|
|
18
|
-
equals(other: SolanaAddress | UniversalAddress): boolean;
|
|
19
|
-
}
|
|
20
|
-
declare module '@wormhole-foundation/sdk-connect' {
|
|
21
|
-
namespace WormholeRegistry {
|
|
22
|
-
interface PlatformToNativeAddressMapping {
|
|
23
|
-
Solana: SolanaAddress;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=address.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EACL,gBAAgB,EAGjB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGnD,eAAO,MAAM,iBAAiB,qCAAqC,CAAC;AAEpE,qBAAa,aAAc,YAAW,OAAO;IAC3C,MAAM,CAAC,QAAQ,CAAC,QAAQ,MAAM;IAC9B,MAAM,CAAC,QAAQ,CAAC,QAAQ,WAAa;IAErC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAY;IAEjC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;gBAEhB,OAAO,EAAE,gBAAgB;IAYrC,MAAM,IAAI,SAAS;IAGnB,QAAQ;IAGR,YAAY;IAGZ,QAAQ;IAGR,kBAAkB;IAIlB,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,aAAa;IAIzD,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,GAAG,OAAO;CAOzD;AAED,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAiB,gBAAgB,CAAC;QAChC,UAAU,8BAA8B;YACtC,MAAM,EAAE,aAAa,CAAC;SACvB;KACF;CACF"}
|
package/dist/cjs/address.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SolanaAddress = exports.SolanaZeroAddress = void 0;
|
|
4
|
-
const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
|
|
5
|
-
const web3_js_1 = require("@solana/web3.js");
|
|
6
|
-
const types_js_1 = require("./types.js");
|
|
7
|
-
exports.SolanaZeroAddress = '11111111111111111111111111111111';
|
|
8
|
-
class SolanaAddress {
|
|
9
|
-
static byteSize = 32;
|
|
10
|
-
static platform = types_js_1._platform;
|
|
11
|
-
type = 'Native';
|
|
12
|
-
address;
|
|
13
|
-
constructor(address) {
|
|
14
|
-
if (SolanaAddress.instanceof(address)) {
|
|
15
|
-
this.address = address.address;
|
|
16
|
-
}
|
|
17
|
-
else if (sdk_connect_1.UniversalAddress.instanceof(address)) {
|
|
18
|
-
this.address = new web3_js_1.PublicKey(address.toUint8Array());
|
|
19
|
-
}
|
|
20
|
-
else if (typeof address === 'string' && sdk_connect_1.encoding.hex.valid(address)) {
|
|
21
|
-
this.address = new web3_js_1.PublicKey(sdk_connect_1.encoding.hex.decode(address));
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
this.address = new web3_js_1.PublicKey(address);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
unwrap() {
|
|
28
|
-
return this.address;
|
|
29
|
-
}
|
|
30
|
-
toString() {
|
|
31
|
-
return this.address.toBase58();
|
|
32
|
-
}
|
|
33
|
-
toUint8Array() {
|
|
34
|
-
return new Uint8Array(this.address.toBytes());
|
|
35
|
-
}
|
|
36
|
-
toNative() {
|
|
37
|
-
return this;
|
|
38
|
-
}
|
|
39
|
-
toUniversalAddress() {
|
|
40
|
-
return new sdk_connect_1.UniversalAddress(this.toUint8Array());
|
|
41
|
-
}
|
|
42
|
-
static instanceof(address) {
|
|
43
|
-
return address.constructor.platform === SolanaAddress.platform;
|
|
44
|
-
}
|
|
45
|
-
equals(other) {
|
|
46
|
-
if (SolanaAddress.instanceof(other)) {
|
|
47
|
-
return other.unwrap().equals(this.unwrap());
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
return this.toUniversalAddress().equals(other);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
exports.SolanaAddress = SolanaAddress;
|
|
55
|
-
(0, sdk_connect_1.registerNative)(types_js_1._platform, SolanaAddress);
|
|
56
|
-
//# sourceMappingURL=address.js.map
|
package/dist/cjs/address.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":";;;AACA,kEAI0C;AAE1C,6CAA4C;AAE5C,yCAAuC;AAE1B,QAAA,iBAAiB,GAAG,kCAAkC,CAAC;AAEpE,MAAa,aAAa;IACxB,MAAM,CAAU,QAAQ,GAAG,EAAE,CAAC;IAC9B,MAAM,CAAU,QAAQ,GAAG,oBAAS,CAAC;IAE5B,IAAI,GAAW,QAAQ,CAAC;IAExB,OAAO,CAAY;IAE5B,YAAY,OAAyB;QACnC,IAAI,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACjC,CAAC;aAAM,IAAI,8BAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAS,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,sBAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAS,CAAC,sBAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAS,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IACD,YAAY;QACV,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,QAAQ;QACN,OAAO,IAAI,CAAC;IACd,CAAC;IACD,kBAAkB;QAChB,OAAO,IAAI,8BAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,OAAY;QAC5B,OAAO,OAAO,CAAC,WAAW,CAAC,QAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,KAAuC;QAC5C,IAAI,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;;AA9CH,sCA+CC;AAUD,IAAA,4BAAc,EAAC,oBAAS,EAAE,aAAa,CAAC,CAAC"}
|
package/dist/cjs/chain.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { ChainAddress, Network, TokenAddress, UniversalOrNative } from '@wormhole-foundation/sdk-connect';
|
|
2
|
-
import { ChainContext } from '@wormhole-foundation/sdk-connect';
|
|
3
|
-
import type { SolanaChains } from './types.js';
|
|
4
|
-
export declare class SolanaChain<N extends Network = Network, C extends SolanaChains = SolanaChains> extends ChainContext<N, C> {
|
|
5
|
-
getTokenAccount(address: UniversalOrNative<C>, token: UniversalOrNative<C>): Promise<ChainAddress<C>>;
|
|
6
|
-
isToken2022(token: TokenAddress<C>): Promise<boolean>;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=chain.d.ts.map
|
package/dist/cjs/chain.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEZ,OAAO,EACP,YAAY,EACZ,iBAAiB,EAClB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAY,MAAM,kCAAkC,CAAC;AAE1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,qBAAa,WAAW,CACtB,CAAC,SAAS,OAAO,GAAG,OAAO,EAC3B,CAAC,SAAS,YAAY,GAAG,YAAY,CACrC,SAAQ,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IACX,eAAe,CAC5B,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC7B,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAmBZ,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CASrE"}
|
package/dist/cjs/chain.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.SolanaChain = void 0;
|
|
27
|
-
const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
|
|
28
|
-
const address_js_1 = require("./address.js");
|
|
29
|
-
const platform_js_1 = require("./platform.js");
|
|
30
|
-
const spl_token_1 = require("@solana/spl-token");
|
|
31
|
-
class SolanaChain extends sdk_connect_1.ChainContext {
|
|
32
|
-
async getTokenAccount(address, token) {
|
|
33
|
-
const { getAssociatedTokenAddress } = await Promise.resolve().then(() => __importStar(require('@solana/spl-token')));
|
|
34
|
-
const mint = new address_js_1.SolanaAddress(token).unwrap();
|
|
35
|
-
const owner = new address_js_1.SolanaAddress(address).unwrap();
|
|
36
|
-
const rpc = await this.getRpc();
|
|
37
|
-
const tokenProgram = await platform_js_1.SolanaPlatform.getTokenProgramId(rpc, mint);
|
|
38
|
-
const ata = await getAssociatedTokenAddress(mint, owner, false, tokenProgram);
|
|
39
|
-
return {
|
|
40
|
-
chain: this.chain,
|
|
41
|
-
address: new address_js_1.SolanaAddress(ata.toString()),
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
async isToken2022(token) {
|
|
45
|
-
if ((0, sdk_connect_1.isNative)(token))
|
|
46
|
-
return false;
|
|
47
|
-
const mint = new address_js_1.SolanaAddress(token).unwrap();
|
|
48
|
-
const rpc = await this.getRpc();
|
|
49
|
-
const tokenProgram = await platform_js_1.SolanaPlatform.getTokenProgramId(rpc, mint);
|
|
50
|
-
return tokenProgram.equals(spl_token_1.TOKEN_2022_PROGRAM_ID);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
exports.SolanaChain = SolanaChain;
|
|
54
|
-
//# sourceMappingURL=chain.js.map
|
package/dist/cjs/chain.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/chain.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,kEAA0E;AAC1E,6CAA6C;AAE7C,+CAA+C;AAC/C,iDAA0D;AAE1D,MAAa,WAGX,SAAQ,0BAAkB;IACjB,KAAK,CAAC,eAAe,CAC5B,OAA6B,EAC7B,KAA2B;QAE3B,MAAM,EAAE,yBAAyB,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;QACxE,MAAM,IAAI,GAAG,IAAI,0BAAa,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,0BAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,MAAM,4BAAc,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEvE,MAAM,GAAG,GAAG,MAAM,yBAAyB,CACzC,IAAI,EACJ,KAAK,EACL,KAAK,EACL,YAAY,CACb,CAAC;QACF,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,0BAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAqB;SAC/D,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,WAAW,CAAC,KAAsB;QAC/C,IAAI,IAAA,sBAAQ,EAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAElC,MAAM,IAAI,GAAG,IAAI,0BAAa,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,MAAM,4BAAc,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEvE,OAAO,YAAY,CAAC,MAAM,CAAC,iCAAqB,CAAC,CAAC;IACpD,CAAC;CACF;AAnCD,kCAmCC"}
|
package/dist/cjs/index.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export * from './address.js';
|
|
2
|
-
export * from './platform.js';
|
|
3
|
-
export * from './chain.js';
|
|
4
|
-
export * from './unsignedTransaction.js';
|
|
5
|
-
export * from './types.js';
|
|
6
|
-
export * from './utils/index.js';
|
|
7
|
-
export * from './signer.js';
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/cjs/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC"}
|
package/dist/cjs/index.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./address.js"), exports);
|
|
18
|
-
__exportStar(require("./platform.js"), exports);
|
|
19
|
-
__exportStar(require("./chain.js"), exports);
|
|
20
|
-
__exportStar(require("./unsignedTransaction.js"), exports);
|
|
21
|
-
__exportStar(require("./types.js"), exports);
|
|
22
|
-
__exportStar(require("./utils/index.js"), exports);
|
|
23
|
-
__exportStar(require("./signer.js"), exports);
|
|
24
|
-
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,gDAA8B;AAC9B,6CAA2B;AAC3B,2DAAyC;AACzC,6CAA2B;AAC3B,mDAAiC;AACjC,8CAA4B"}
|
package/dist/cjs/package.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"type":"commonjs"}
|
package/dist/cjs/platform.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type { Balances, Chain, ChainsConfig, Network, SignedTx, StaticPlatformMethods, TokenId, TxHash } from '@wormhole-foundation/sdk-connect';
|
|
2
|
-
import { PlatformContext } from '@wormhole-foundation/sdk-connect';
|
|
3
|
-
import { SolanaChain } from './chain.js';
|
|
4
|
-
import type { Commitment, ConnectionConfig, RpcResponseAndContext, SendOptions, SignatureResult } from '@solana/web3.js';
|
|
5
|
-
import { Connection, PublicKey } from '@solana/web3.js';
|
|
6
|
-
import type { AnySolanaAddress, SolanaChains, SolanaPlatformType } from './types.js';
|
|
7
|
-
/**
|
|
8
|
-
* @category Solana
|
|
9
|
-
*/
|
|
10
|
-
export declare class SolanaPlatform<N extends Network> extends PlatformContext<N, SolanaPlatformType> implements StaticPlatformMethods<SolanaPlatformType, typeof SolanaPlatform> {
|
|
11
|
-
static _platform: "Solana";
|
|
12
|
-
constructor(network: N, config?: ChainsConfig<N, SolanaPlatformType>);
|
|
13
|
-
getRpc<C extends SolanaChains>(chain: C, config?: ConnectionConfig): Connection;
|
|
14
|
-
getChain<C extends SolanaChains>(chain: C, rpc?: Connection): SolanaChain<N, C>;
|
|
15
|
-
static nativeTokenId<N extends Network, C extends SolanaChains>(network: N, chain: C): TokenId<C>;
|
|
16
|
-
static isNativeTokenId<N extends Network, C extends SolanaChains>(network: N, chain: C, tokenId: TokenId): boolean;
|
|
17
|
-
static isSupportedChain(chain: Chain): boolean;
|
|
18
|
-
static getDecimals(_network: Network, chain: Chain, rpc: Connection, token: AnySolanaAddress): Promise<number>;
|
|
19
|
-
static getBalance(_network: Network, chain: Chain, rpc: Connection, walletAddress: string, token: AnySolanaAddress): Promise<bigint | null>;
|
|
20
|
-
static getBalances(_network: Network, chain: Chain, rpc: Connection, walletAddress: string): Promise<Balances>;
|
|
21
|
-
static sendWait(chain: Chain, rpc: Connection, stxns: SignedTx[], opts?: SendOptions): Promise<TxHash[]>;
|
|
22
|
-
static sendTxWithRetry(rpc: Connection, tx: SignedTx, sendOpts?: SendOptions, retryInterval?: number): Promise<{
|
|
23
|
-
signature: string;
|
|
24
|
-
response: RpcResponseAndContext<SignatureResult>;
|
|
25
|
-
}>;
|
|
26
|
-
static latestBlock(rpc: Connection, commitment?: Commitment): Promise<{
|
|
27
|
-
blockhash: string;
|
|
28
|
-
lastValidBlockHeight: number;
|
|
29
|
-
}>;
|
|
30
|
-
static getLatestBlock(rpc: Connection): Promise<number>;
|
|
31
|
-
static getLatestFinalizedBlock(rpc: Connection): Promise<number>;
|
|
32
|
-
static chainFromChainId(genesisHash: string): [Network, SolanaChains];
|
|
33
|
-
static chainFromRpc(rpc: Connection): Promise<[Network, SolanaChains]>;
|
|
34
|
-
static getTokenProgramId(rpc: Connection, mint: PublicKey): Promise<PublicKey>;
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=platform.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/platform.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/platform.js
DELETED
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SolanaPlatform = void 0;
|
|
4
|
-
const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
|
|
5
|
-
const chain_js_1 = require("./chain.js");
|
|
6
|
-
const spl_token_1 = require("@solana/spl-token");
|
|
7
|
-
const web3_js_1 = require("@solana/web3.js");
|
|
8
|
-
const address_js_1 = require("./address.js");
|
|
9
|
-
const types_js_1 = require("./types.js");
|
|
10
|
-
/**
|
|
11
|
-
* @category Solana
|
|
12
|
-
*/
|
|
13
|
-
class SolanaPlatform extends sdk_connect_1.PlatformContext {
|
|
14
|
-
static _platform = types_js_1._platform;
|
|
15
|
-
constructor(network, config) {
|
|
16
|
-
super(network, config ?? (0, sdk_connect_1.networkPlatformConfigs)(network, SolanaPlatform._platform));
|
|
17
|
-
}
|
|
18
|
-
getRpc(chain, config = {
|
|
19
|
-
commitment: 'confirmed',
|
|
20
|
-
disableRetryOnRateLimit: true,
|
|
21
|
-
}) {
|
|
22
|
-
if (chain in this.config) {
|
|
23
|
-
const chainConfig = this.config[chain];
|
|
24
|
-
if (chainConfig.httpHeaders) {
|
|
25
|
-
config = {
|
|
26
|
-
...config,
|
|
27
|
-
httpHeaders: { ...chainConfig.httpHeaders, ...config.httpHeaders },
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
return new web3_js_1.Connection(chainConfig.rpc, config);
|
|
31
|
-
}
|
|
32
|
-
throw new Error('No configuration available for chain: ' + chain);
|
|
33
|
-
}
|
|
34
|
-
getChain(chain, rpc) {
|
|
35
|
-
if (chain in this.config)
|
|
36
|
-
return new chain_js_1.SolanaChain(chain, this, rpc);
|
|
37
|
-
throw new Error('No configuration available for chain: ' + chain);
|
|
38
|
-
}
|
|
39
|
-
static nativeTokenId(network, chain) {
|
|
40
|
-
if (!SolanaPlatform.isSupportedChain(chain))
|
|
41
|
-
throw new Error(`invalid chain: ${chain}`);
|
|
42
|
-
return sdk_connect_1.Wormhole.chainAddress(chain, address_js_1.SolanaZeroAddress);
|
|
43
|
-
}
|
|
44
|
-
static isNativeTokenId(network, chain, tokenId) {
|
|
45
|
-
if (!this.isSupportedChain(chain))
|
|
46
|
-
return false;
|
|
47
|
-
if (tokenId.chain !== chain)
|
|
48
|
-
return false;
|
|
49
|
-
const native = this.nativeTokenId(network, chain);
|
|
50
|
-
return native == tokenId;
|
|
51
|
-
}
|
|
52
|
-
static isSupportedChain(chain) {
|
|
53
|
-
const platform = (0, sdk_connect_1.chainToPlatform)(chain);
|
|
54
|
-
return platform === SolanaPlatform._platform;
|
|
55
|
-
}
|
|
56
|
-
static async getDecimals(_network, chain, rpc, token) {
|
|
57
|
-
if ((0, sdk_connect_1.isNative)(token))
|
|
58
|
-
return sdk_connect_1.decimals.nativeDecimals(SolanaPlatform._platform);
|
|
59
|
-
let mint = await rpc.getParsedAccountInfo(new address_js_1.SolanaAddress(token).unwrap());
|
|
60
|
-
if (!mint || !mint.value)
|
|
61
|
-
throw new Error('could not fetch token details');
|
|
62
|
-
const { decimals: numDecimals } = mint.value.data
|
|
63
|
-
.parsed.info;
|
|
64
|
-
return numDecimals;
|
|
65
|
-
}
|
|
66
|
-
static async getBalance(_network, chain, rpc, walletAddress, token) {
|
|
67
|
-
const address = new web3_js_1.PublicKey(walletAddress);
|
|
68
|
-
if ((0, sdk_connect_1.isNative)(token))
|
|
69
|
-
return BigInt(await rpc.getBalance(address));
|
|
70
|
-
// Check to see if we were passed wallet address or token account
|
|
71
|
-
const splToken = await rpc.getTokenAccountsByOwner(address, {
|
|
72
|
-
mint: new address_js_1.SolanaAddress(token).unwrap(),
|
|
73
|
-
});
|
|
74
|
-
// Use the first token account if it exists, otherwise fall back to wallet address
|
|
75
|
-
const checkAddress = splToken.value.length > 0 ? splToken.value[0].pubkey : address;
|
|
76
|
-
const balance = await rpc.getTokenAccountBalance(checkAddress);
|
|
77
|
-
return BigInt(balance.value.amount);
|
|
78
|
-
}
|
|
79
|
-
static async getBalances(_network, chain, rpc, walletAddress) {
|
|
80
|
-
const native = BigInt(await rpc.getBalance(new web3_js_1.PublicKey(walletAddress)));
|
|
81
|
-
const splParsedTokenAccounts = (await Promise.all([spl_token_1.TOKEN_PROGRAM_ID, spl_token_1.TOKEN_2022_PROGRAM_ID]
|
|
82
|
-
.map((pid) => new web3_js_1.PublicKey(pid))
|
|
83
|
-
.map((programId) => rpc.getParsedTokenAccountsByOwner(new web3_js_1.PublicKey(walletAddress), {
|
|
84
|
-
programId,
|
|
85
|
-
})))).reduce((acc, val) => {
|
|
86
|
-
return acc.concat(val.value);
|
|
87
|
-
}, []);
|
|
88
|
-
const balances = { native };
|
|
89
|
-
splParsedTokenAccounts.forEach((accountInfo) => {
|
|
90
|
-
const mint = accountInfo.account.data.parsed?.info?.mint;
|
|
91
|
-
const amount = accountInfo.account.data.parsed?.info?.tokenAmount?.amount;
|
|
92
|
-
if (mint && amount) {
|
|
93
|
-
balances[mint] = BigInt(amount);
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
return balances;
|
|
97
|
-
}
|
|
98
|
-
static async sendWait(chain, rpc, stxns, opts) {
|
|
99
|
-
const results = await Promise.all(stxns.map((stxn) => this.sendTxWithRetry(rpc, stxn, opts)));
|
|
100
|
-
const txhashes = results.map((r) => r.signature);
|
|
101
|
-
const erroredTxs = results
|
|
102
|
-
.filter((r) => r.response.value.err)
|
|
103
|
-
.map((r) => r.response.value.err);
|
|
104
|
-
if (erroredTxs.length > 0)
|
|
105
|
-
throw new Error(`Failed to confirm transaction: ${erroredTxs}`);
|
|
106
|
-
return txhashes;
|
|
107
|
-
}
|
|
108
|
-
static async sendTxWithRetry(rpc, tx, sendOpts = {}, retryInterval = 5000) {
|
|
109
|
-
const commitment = sendOpts.preflightCommitment ?? rpc.commitment;
|
|
110
|
-
const signature = await rpc.sendRawTransaction(tx, {
|
|
111
|
-
...sendOpts,
|
|
112
|
-
skipPreflight: false, // The first send should not skip preflight to catch any errors
|
|
113
|
-
maxRetries: 0,
|
|
114
|
-
preflightCommitment: commitment,
|
|
115
|
-
});
|
|
116
|
-
// TODO: Use the lastValidBlockHeight that corresponds to the blockhash used in the transaction.
|
|
117
|
-
const { blockhash, lastValidBlockHeight } = await rpc.getLatestBlockhash();
|
|
118
|
-
const confirmTransactionPromise = rpc.confirmTransaction({
|
|
119
|
-
signature,
|
|
120
|
-
blockhash,
|
|
121
|
-
lastValidBlockHeight,
|
|
122
|
-
}, commitment);
|
|
123
|
-
// This loop will break once the transaction has been confirmed or the block height is exceeded.
|
|
124
|
-
// An exception will be thrown if the block height is exceeded by the confirmTransactionPromise.
|
|
125
|
-
// The transaction will be resent if it hasn't been confirmed after the interval.
|
|
126
|
-
let confirmedTx = null;
|
|
127
|
-
while (!confirmedTx) {
|
|
128
|
-
confirmedTx = await Promise.race([
|
|
129
|
-
confirmTransactionPromise,
|
|
130
|
-
new Promise((resolve) => setTimeout(() => {
|
|
131
|
-
resolve(null);
|
|
132
|
-
}, retryInterval)),
|
|
133
|
-
]);
|
|
134
|
-
if (confirmedTx) {
|
|
135
|
-
break;
|
|
136
|
-
}
|
|
137
|
-
await rpc.sendRawTransaction(tx, {
|
|
138
|
-
...sendOpts,
|
|
139
|
-
skipPreflight: true,
|
|
140
|
-
maxRetries: 0,
|
|
141
|
-
preflightCommitment: commitment,
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
return { signature, response: confirmedTx };
|
|
145
|
-
}
|
|
146
|
-
static async latestBlock(rpc, commitment) {
|
|
147
|
-
return rpc.getLatestBlockhash(commitment ?? rpc.commitment);
|
|
148
|
-
}
|
|
149
|
-
static async getLatestBlock(rpc) {
|
|
150
|
-
return await rpc.getSlot();
|
|
151
|
-
}
|
|
152
|
-
static async getLatestFinalizedBlock(rpc) {
|
|
153
|
-
const { lastValidBlockHeight } = await this.latestBlock(rpc, 'finalized');
|
|
154
|
-
return lastValidBlockHeight;
|
|
155
|
-
}
|
|
156
|
-
static chainFromChainId(genesisHash) {
|
|
157
|
-
const netChain = sdk_connect_1.nativeChainIds.platformNativeChainIdToNetworkChain(SolanaPlatform._platform, genesisHash);
|
|
158
|
-
if (!netChain)
|
|
159
|
-
throw new Error(`No matching genesis hash to determine network and chain: ${genesisHash}`);
|
|
160
|
-
const [network, chain] = netChain;
|
|
161
|
-
return [network, chain];
|
|
162
|
-
}
|
|
163
|
-
static async chainFromRpc(rpc) {
|
|
164
|
-
try {
|
|
165
|
-
const gh = await rpc.getGenesisHash();
|
|
166
|
-
return SolanaPlatform.chainFromChainId(gh);
|
|
167
|
-
}
|
|
168
|
-
catch (e) {
|
|
169
|
-
// Override for devnet which will often have a new Genesis hash
|
|
170
|
-
if (rpc.rpcEndpoint.includes('http://127') ||
|
|
171
|
-
rpc.rpcEndpoint.includes('http://localhost') ||
|
|
172
|
-
rpc.rpcEndpoint === 'http://solana-devnet:8899') {
|
|
173
|
-
return ['Devnet', 'Solana'];
|
|
174
|
-
}
|
|
175
|
-
throw e;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
static async getTokenProgramId(rpc, mint) {
|
|
179
|
-
const mintAccountInfo = await rpc.getAccountInfo(mint);
|
|
180
|
-
if (!mintAccountInfo) {
|
|
181
|
-
throw new Error(`Mint account not found: ${mint.toBase58()}`);
|
|
182
|
-
}
|
|
183
|
-
const tokenProgram = mintAccountInfo.owner;
|
|
184
|
-
if (!tokenProgram) {
|
|
185
|
-
throw new Error(`Mint account has no owner: ${mint.toBase58()}`);
|
|
186
|
-
}
|
|
187
|
-
if (tokenProgram.equals(spl_token_1.TOKEN_PROGRAM_ID) ||
|
|
188
|
-
tokenProgram.equals(spl_token_1.TOKEN_2022_PROGRAM_ID)) {
|
|
189
|
-
return tokenProgram;
|
|
190
|
-
}
|
|
191
|
-
throw new Error(`Mint account has unsupported token program: ${mint.toBase58()} (${tokenProgram.toBase58()})`);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
exports.SolanaPlatform = SolanaPlatform;
|
|
195
|
-
//# sourceMappingURL=platform.js.map
|
package/dist/cjs/platform.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/platform.ts"],"names":[],"mappings":"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"}
|