@wormhole-foundation/sdk-solana 0.5.0-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/README.md +1 -0
- package/dist/cjs/address.d.ts +26 -0
- package/dist/cjs/address.d.ts.map +1 -0
- package/dist/cjs/address.js +56 -0
- package/dist/cjs/address.js.map +1 -0
- package/dist/cjs/chain.d.ts +6 -0
- package/dist/cjs/chain.d.ts.map +1 -0
- package/dist/cjs/chain.js +19 -0
- package/dist/cjs/chain.js.map +1 -0
- package/dist/cjs/index.d.ts +8 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +24 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/platform.d.ts +29 -0
- package/dist/cjs/platform.d.ts.map +1 -0
- package/dist/cjs/platform.js +130 -0
- package/dist/cjs/platform.js.map +1 -0
- package/dist/cjs/signer.d.ts +38 -0
- package/dist/cjs/signer.d.ts.map +1 -0
- package/dist/cjs/signer.js +173 -0
- package/dist/cjs/signer.js.map +1 -0
- package/dist/cjs/testing/debug.d.ts +3 -0
- package/dist/cjs/testing/debug.d.ts.map +1 -0
- package/dist/cjs/testing/debug.js +14 -0
- package/dist/cjs/testing/debug.js.map +1 -0
- package/dist/cjs/testing/index.d.ts +7 -0
- package/dist/cjs/testing/index.d.ts.map +1 -0
- package/dist/cjs/testing/index.js +37 -0
- package/dist/cjs/testing/index.js.map +1 -0
- package/dist/cjs/testing/sendSigner.d.ts +18 -0
- package/dist/cjs/testing/sendSigner.d.ts.map +1 -0
- package/dist/cjs/testing/sendSigner.js +119 -0
- package/dist/cjs/testing/sendSigner.js.map +1 -0
- package/dist/cjs/testing/signer.d.ts +15 -0
- package/dist/cjs/testing/signer.d.ts.map +1 -0
- package/dist/cjs/testing/signer.js +39 -0
- package/dist/cjs/testing/signer.js.map +1 -0
- package/dist/cjs/types.d.ts +16 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +10 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/unsignedTransaction.d.ts +16 -0
- package/dist/cjs/unsignedTransaction.d.ts.map +1 -0
- package/dist/cjs/unsignedTransaction.js +19 -0
- package/dist/cjs/unsignedTransaction.js.map +1 -0
- package/dist/cjs/utils/anchor/common.d.ts +3 -0
- package/dist/cjs/utils/anchor/common.d.ts.map +1 -0
- package/dist/cjs/utils/anchor/common.js +95 -0
- package/dist/cjs/utils/anchor/common.js.map +1 -0
- package/dist/cjs/utils/anchor/error.d.ts +4 -0
- package/dist/cjs/utils/anchor/error.d.ts.map +1 -0
- package/dist/cjs/utils/anchor/error.js +14 -0
- package/dist/cjs/utils/anchor/error.js.map +1 -0
- package/dist/cjs/utils/anchor/idl.d.ts +123 -0
- package/dist/cjs/utils/anchor/idl.d.ts.map +1 -0
- package/dist/cjs/utils/anchor/idl.js +58 -0
- package/dist/cjs/utils/anchor/idl.js.map +1 -0
- package/dist/cjs/utils/anchor/index.d.ts +4 -0
- package/dist/cjs/utils/anchor/index.d.ts.map +1 -0
- package/dist/cjs/utils/anchor/index.js +20 -0
- package/dist/cjs/utils/anchor/index.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +5 -0
- package/dist/cjs/utils/index.d.ts.map +1 -0
- package/dist/cjs/utils/index.js +43 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/utils/account.d.ts +34 -0
- package/dist/cjs/utils/utils/account.d.ts.map +1 -0
- package/dist/cjs/utils/utils/account.js +59 -0
- package/dist/cjs/utils/utils/account.js.map +1 -0
- package/dist/cjs/utils/utils/bpfLoaderUpgradeable.d.ts +6 -0
- package/dist/cjs/utils/utils/bpfLoaderUpgradeable.d.ts.map +1 -0
- package/dist/cjs/utils/utils/bpfLoaderUpgradeable.js +14 -0
- package/dist/cjs/utils/utils/bpfLoaderUpgradeable.js.map +1 -0
- package/dist/cjs/utils/utils/connection.d.ts +4 -0
- package/dist/cjs/utils/utils/connection.d.ts.map +1 -0
- package/dist/cjs/utils/utils/connection.js +11 -0
- package/dist/cjs/utils/utils/connection.js.map +1 -0
- package/dist/cjs/utils/utils/index.d.ts +6 -0
- package/dist/cjs/utils/utils/index.d.ts.map +1 -0
- package/dist/cjs/utils/utils/index.js +27 -0
- package/dist/cjs/utils/utils/index.js.map +1 -0
- package/dist/cjs/utils/utils/secp256k1.d.ts +30 -0
- package/dist/cjs/utils/utils/secp256k1.d.ts.map +1 -0
- package/dist/cjs/utils/utils/secp256k1.js +111 -0
- package/dist/cjs/utils/utils/secp256k1.js.map +1 -0
- package/dist/cjs/utils/utils/splMetadata.d.ts +62 -0
- package/dist/cjs/utils/utils/splMetadata.d.ts.map +1 -0
- package/dist/cjs/utils/utils/splMetadata.js +212 -0
- package/dist/cjs/utils/utils/splMetadata.js.map +1 -0
- package/dist/cjs/utils/utils/transaction.d.ts +63 -0
- package/dist/cjs/utils/utils/transaction.d.ts.map +1 -0
- package/dist/cjs/utils/utils/transaction.js +128 -0
- package/dist/cjs/utils/utils/transaction.js.map +1 -0
- package/dist/esm/address.d.ts +26 -0
- package/dist/esm/address.d.ts.map +1 -0
- package/dist/esm/address.js +52 -0
- package/dist/esm/address.js.map +1 -0
- package/dist/esm/chain.d.ts +6 -0
- package/dist/esm/chain.d.ts.map +1 -0
- package/dist/esm/chain.js +15 -0
- package/dist/esm/chain.js.map +1 -0
- package/dist/esm/index.d.ts +8 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +8 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/platform.d.ts +29 -0
- package/dist/esm/platform.d.ts.map +1 -0
- package/dist/esm/platform.js +126 -0
- package/dist/esm/platform.js.map +1 -0
- package/dist/esm/signer.d.ts +38 -0
- package/dist/esm/signer.d.ts.map +1 -0
- package/dist/esm/signer.js +165 -0
- package/dist/esm/signer.js.map +1 -0
- package/dist/esm/testing/debug.d.ts +3 -0
- package/dist/esm/testing/debug.d.ts.map +1 -0
- package/dist/esm/testing/debug.js +10 -0
- package/dist/esm/testing/debug.js.map +1 -0
- package/dist/esm/testing/index.d.ts +7 -0
- package/dist/esm/testing/index.d.ts.map +1 -0
- package/dist/esm/testing/index.js +18 -0
- package/dist/esm/testing/index.js.map +1 -0
- package/dist/esm/testing/sendSigner.d.ts +18 -0
- package/dist/esm/testing/sendSigner.d.ts.map +1 -0
- package/dist/esm/testing/sendSigner.js +115 -0
- package/dist/esm/testing/sendSigner.js.map +1 -0
- package/dist/esm/testing/signer.d.ts +15 -0
- package/dist/esm/testing/signer.d.ts.map +1 -0
- package/dist/esm/testing/signer.js +35 -0
- package/dist/esm/testing/signer.js.map +1 -0
- package/dist/esm/types.d.ts +16 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +7 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/unsignedTransaction.d.ts +16 -0
- package/dist/esm/unsignedTransaction.d.ts.map +1 -0
- package/dist/esm/unsignedTransaction.js +15 -0
- package/dist/esm/unsignedTransaction.js.map +1 -0
- package/dist/esm/utils/anchor/common.d.ts +3 -0
- package/dist/esm/utils/anchor/common.d.ts.map +1 -0
- package/dist/esm/utils/anchor/common.js +91 -0
- package/dist/esm/utils/anchor/common.js.map +1 -0
- package/dist/esm/utils/anchor/error.d.ts +4 -0
- package/dist/esm/utils/anchor/error.d.ts.map +1 -0
- package/dist/esm/utils/anchor/error.js +10 -0
- package/dist/esm/utils/anchor/error.js.map +1 -0
- package/dist/esm/utils/anchor/idl.d.ts +123 -0
- package/dist/esm/utils/anchor/idl.d.ts.map +1 -0
- package/dist/esm/utils/anchor/idl.js +28 -0
- package/dist/esm/utils/anchor/idl.js.map +1 -0
- package/dist/esm/utils/anchor/index.d.ts +4 -0
- package/dist/esm/utils/anchor/index.d.ts.map +1 -0
- package/dist/esm/utils/anchor/index.js +4 -0
- package/dist/esm/utils/anchor/index.js.map +1 -0
- package/dist/esm/utils/index.d.ts +5 -0
- package/dist/esm/utils/index.d.ts.map +1 -0
- package/dist/esm/utils/index.js +15 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/utils/account.d.ts +34 -0
- package/dist/esm/utils/utils/account.d.ts.map +1 -0
- package/dist/esm/utils/utils/account.js +52 -0
- package/dist/esm/utils/utils/account.js.map +1 -0
- package/dist/esm/utils/utils/bpfLoaderUpgradeable.d.ts +6 -0
- package/dist/esm/utils/utils/bpfLoaderUpgradeable.d.ts.map +1 -0
- package/dist/esm/utils/utils/bpfLoaderUpgradeable.js +9 -0
- package/dist/esm/utils/utils/bpfLoaderUpgradeable.js.map +1 -0
- package/dist/esm/utils/utils/connection.d.ts +4 -0
- package/dist/esm/utils/utils/connection.d.ts.map +1 -0
- package/dist/esm/utils/utils/connection.js +7 -0
- package/dist/esm/utils/utils/connection.js.map +1 -0
- package/dist/esm/utils/utils/index.d.ts +6 -0
- package/dist/esm/utils/utils/index.d.ts.map +1 -0
- package/dist/esm/utils/utils/index.js +9 -0
- package/dist/esm/utils/utils/index.js.map +1 -0
- package/dist/esm/utils/utils/secp256k1.d.ts +30 -0
- package/dist/esm/utils/utils/secp256k1.d.ts.map +1 -0
- package/dist/esm/utils/utils/secp256k1.js +106 -0
- package/dist/esm/utils/utils/secp256k1.js.map +1 -0
- package/dist/esm/utils/utils/splMetadata.d.ts +62 -0
- package/dist/esm/utils/utils/splMetadata.d.ts.map +1 -0
- package/dist/esm/utils/utils/splMetadata.js +202 -0
- package/dist/esm/utils/utils/splMetadata.js.map +1 -0
- package/dist/esm/utils/utils/transaction.d.ts +63 -0
- package/dist/esm/utils/utils/transaction.d.ts.map +1 -0
- package/dist/esm/utils/utils/transaction.js +120 -0
- package/dist/esm/utils/utils/transaction.js.map +1 -0
- package/dist/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMetadata = exports.Metadata = exports.Key = exports.deriveSplTokenMetadataKey = exports.SplTokenMetadataProgram = exports.CreateMetadataAccountArgs = exports.Data = exports.Creator = void 0;
|
|
4
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
+
const account_1 = require("./account");
|
|
6
|
+
class Creator {
|
|
7
|
+
address;
|
|
8
|
+
verified;
|
|
9
|
+
share;
|
|
10
|
+
constructor(address, verified, share) {
|
|
11
|
+
this.address = new web3_js_1.PublicKey(address);
|
|
12
|
+
this.verified = verified;
|
|
13
|
+
this.share = share;
|
|
14
|
+
}
|
|
15
|
+
static size = 34;
|
|
16
|
+
serialize() {
|
|
17
|
+
const serialized = Buffer.alloc(Creator.size);
|
|
18
|
+
serialized.write(this.address.toBuffer().toString('hex'), 0, 'hex');
|
|
19
|
+
if (this.verified) {
|
|
20
|
+
serialized.writeUInt8(1, 32);
|
|
21
|
+
}
|
|
22
|
+
serialized.writeUInt8(this.share, 33);
|
|
23
|
+
return serialized;
|
|
24
|
+
}
|
|
25
|
+
static deserialize(data) {
|
|
26
|
+
const address = data.subarray(0, 32);
|
|
27
|
+
const verified = data.readUInt8(32) > 0;
|
|
28
|
+
const share = data.readUInt8(33);
|
|
29
|
+
return new Creator(address, verified, share);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.Creator = Creator;
|
|
33
|
+
class Data {
|
|
34
|
+
name;
|
|
35
|
+
symbol;
|
|
36
|
+
uri;
|
|
37
|
+
sellerFeeBasisPoints;
|
|
38
|
+
creators;
|
|
39
|
+
constructor(name, symbol, uri, sellerFeeBasisPoints, creators) {
|
|
40
|
+
this.name = name;
|
|
41
|
+
this.symbol = symbol;
|
|
42
|
+
this.uri = uri;
|
|
43
|
+
this.sellerFeeBasisPoints = sellerFeeBasisPoints;
|
|
44
|
+
this.creators = creators;
|
|
45
|
+
}
|
|
46
|
+
serialize() {
|
|
47
|
+
const nameLen = this.name.length;
|
|
48
|
+
const symbolLen = this.symbol.length;
|
|
49
|
+
const uriLen = this.uri.length;
|
|
50
|
+
const creators = this.creators;
|
|
51
|
+
const [creatorsLen, creatorsSize] = (() => {
|
|
52
|
+
if (creators === null) {
|
|
53
|
+
return [0, 0];
|
|
54
|
+
}
|
|
55
|
+
const creatorsLen = creators.length;
|
|
56
|
+
return [creatorsLen, 4 + creatorsLen * Creator.size];
|
|
57
|
+
})();
|
|
58
|
+
const serialized = Buffer.alloc(15 + nameLen + symbolLen + uriLen + creatorsSize);
|
|
59
|
+
serialized.writeUInt32LE(nameLen, 0);
|
|
60
|
+
serialized.write(this.name, 4);
|
|
61
|
+
serialized.writeUInt32LE(symbolLen, 4 + nameLen);
|
|
62
|
+
serialized.write(this.symbol, 8 + nameLen);
|
|
63
|
+
serialized.writeUInt32LE(uriLen, 8 + nameLen + symbolLen);
|
|
64
|
+
serialized.write(this.uri, 12 + nameLen + symbolLen);
|
|
65
|
+
serialized.writeUInt16LE(this.sellerFeeBasisPoints, 12 + nameLen + symbolLen + uriLen);
|
|
66
|
+
if (creators === null) {
|
|
67
|
+
serialized.writeUInt8(0, 14 + nameLen + symbolLen + uriLen);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
serialized.writeUInt8(1, 14 + nameLen + symbolLen + uriLen);
|
|
71
|
+
serialized.writeUInt32LE(creatorsLen, 15 + nameLen + symbolLen + uriLen);
|
|
72
|
+
for (let i = 0; i < creatorsLen; ++i) {
|
|
73
|
+
const creator = creators.at(i);
|
|
74
|
+
const idx = 19 + nameLen + symbolLen + uriLen + i * Creator.size;
|
|
75
|
+
serialized.write(creator.serialize().toString('hex'), idx, 'hex');
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return serialized;
|
|
79
|
+
}
|
|
80
|
+
static deserialize(data) {
|
|
81
|
+
const nameLen = data.readUInt32LE(0);
|
|
82
|
+
const name = data.subarray(4, 4 + nameLen).toString();
|
|
83
|
+
const symbolLen = data.readUInt32LE(4 + nameLen);
|
|
84
|
+
const symbol = data
|
|
85
|
+
.subarray(8 + nameLen, 8 + nameLen + symbolLen)
|
|
86
|
+
.toString();
|
|
87
|
+
const uriLen = data.readUInt32LE(8 + nameLen + symbolLen);
|
|
88
|
+
const uri = data
|
|
89
|
+
.subarray(12 + nameLen + symbolLen, 12 + nameLen + symbolLen + uriLen)
|
|
90
|
+
.toString();
|
|
91
|
+
const sellerFeeBasisPoints = data.readUInt16LE(12 + nameLen + symbolLen + uriLen);
|
|
92
|
+
const optionCreators = data.readUInt8(14 + nameLen + symbolLen + uriLen);
|
|
93
|
+
const creators = (() => {
|
|
94
|
+
if (optionCreators == 0) {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
const creators = [];
|
|
98
|
+
const creatorsLen = data.readUInt32LE(15 + nameLen + symbolLen + uriLen);
|
|
99
|
+
for (let i = 0; i < creatorsLen; ++i) {
|
|
100
|
+
const idx = 19 + nameLen + symbolLen + uriLen + i * Creator.size;
|
|
101
|
+
creators.push(Creator.deserialize(data.subarray(idx, idx + Creator.size)));
|
|
102
|
+
}
|
|
103
|
+
return creators;
|
|
104
|
+
})();
|
|
105
|
+
return new Data(name, symbol, uri, sellerFeeBasisPoints, creators);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.Data = Data;
|
|
109
|
+
class CreateMetadataAccountArgs extends Data {
|
|
110
|
+
isMutable;
|
|
111
|
+
constructor(name, symbol, uri, sellerFeeBasisPoints, creators, isMutable) {
|
|
112
|
+
super(name, symbol, uri, sellerFeeBasisPoints, creators);
|
|
113
|
+
this.isMutable = isMutable;
|
|
114
|
+
}
|
|
115
|
+
static serialize(name, symbol, uri, sellerFeeBasisPoints, creators, isMutable) {
|
|
116
|
+
return new CreateMetadataAccountArgs(name, symbol, uri, sellerFeeBasisPoints, creators, isMutable).serialize();
|
|
117
|
+
}
|
|
118
|
+
static serializeInstructionData(name, symbol, uri, sellerFeeBasisPoints, creators, isMutable) {
|
|
119
|
+
return Buffer.concat([
|
|
120
|
+
Buffer.alloc(1, 0),
|
|
121
|
+
CreateMetadataAccountArgs.serialize(name, symbol, uri, sellerFeeBasisPoints, creators, isMutable),
|
|
122
|
+
]);
|
|
123
|
+
}
|
|
124
|
+
serialize() {
|
|
125
|
+
return Buffer.concat([
|
|
126
|
+
super.serialize(),
|
|
127
|
+
Buffer.alloc(1, this.isMutable ? 1 : 0),
|
|
128
|
+
]);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
exports.CreateMetadataAccountArgs = CreateMetadataAccountArgs;
|
|
132
|
+
class SplTokenMetadataProgram {
|
|
133
|
+
/**
|
|
134
|
+
* @internal
|
|
135
|
+
*/
|
|
136
|
+
constructor() { }
|
|
137
|
+
/**
|
|
138
|
+
* Public key that identifies the SPL Token Metadata program
|
|
139
|
+
*/
|
|
140
|
+
static programId = new web3_js_1.PublicKey('metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s');
|
|
141
|
+
static createMetadataAccounts(payer, mint, mintAuthority, name, symbol, updateAuthority, updateAuthorityIsSigner = false, uri, creators, sellerFeeBasisPoints, isMutable = false, metadataAccount = deriveSplTokenMetadataKey(mint)) {
|
|
142
|
+
const keys = [
|
|
143
|
+
(0, account_1.newAccountMeta)(metadataAccount, false),
|
|
144
|
+
(0, account_1.newReadOnlyAccountMeta)(mint, false),
|
|
145
|
+
(0, account_1.newReadOnlyAccountMeta)(mintAuthority, true),
|
|
146
|
+
(0, account_1.newReadOnlyAccountMeta)(payer, true),
|
|
147
|
+
(0, account_1.newReadOnlyAccountMeta)(updateAuthority, updateAuthorityIsSigner),
|
|
148
|
+
(0, account_1.newReadOnlyAccountMeta)(web3_js_1.SystemProgram.programId, false),
|
|
149
|
+
(0, account_1.newReadOnlyAccountMeta)(web3_js_1.SYSVAR_RENT_PUBKEY, false),
|
|
150
|
+
];
|
|
151
|
+
const data = CreateMetadataAccountArgs.serializeInstructionData(name, symbol, uri === undefined ? '' : uri, sellerFeeBasisPoints === undefined ? 0 : sellerFeeBasisPoints, creators === undefined ? null : creators, isMutable);
|
|
152
|
+
return {
|
|
153
|
+
programId: SplTokenMetadataProgram.programId,
|
|
154
|
+
keys,
|
|
155
|
+
data,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
exports.SplTokenMetadataProgram = SplTokenMetadataProgram;
|
|
160
|
+
function deriveSplTokenMetadataKey(mint) {
|
|
161
|
+
return (0, account_1.deriveAddress)([
|
|
162
|
+
Buffer.from('metadata'),
|
|
163
|
+
SplTokenMetadataProgram.programId.toBuffer(),
|
|
164
|
+
new web3_js_1.PublicKey(mint).toBuffer(),
|
|
165
|
+
], SplTokenMetadataProgram.programId);
|
|
166
|
+
}
|
|
167
|
+
exports.deriveSplTokenMetadataKey = deriveSplTokenMetadataKey;
|
|
168
|
+
var Key;
|
|
169
|
+
(function (Key) {
|
|
170
|
+
Key[Key["Uninitialized"] = 0] = "Uninitialized";
|
|
171
|
+
Key[Key["EditionV1"] = 1] = "EditionV1";
|
|
172
|
+
Key[Key["MasterEditionV1"] = 2] = "MasterEditionV1";
|
|
173
|
+
Key[Key["ReservationListV1"] = 3] = "ReservationListV1";
|
|
174
|
+
Key[Key["MetadataV1"] = 4] = "MetadataV1";
|
|
175
|
+
Key[Key["ReservationListV2"] = 5] = "ReservationListV2";
|
|
176
|
+
Key[Key["MasterEditionV2"] = 6] = "MasterEditionV2";
|
|
177
|
+
Key[Key["EditionMarker"] = 7] = "EditionMarker";
|
|
178
|
+
})(Key || (exports.Key = Key = {}));
|
|
179
|
+
class Metadata {
|
|
180
|
+
key;
|
|
181
|
+
updateAuthority;
|
|
182
|
+
mint;
|
|
183
|
+
data;
|
|
184
|
+
primarySaleHappened;
|
|
185
|
+
isMutable;
|
|
186
|
+
constructor(key, updateAuthority, mint, data, primarySaleHappened, isMutable) {
|
|
187
|
+
this.key = key;
|
|
188
|
+
this.updateAuthority = new web3_js_1.PublicKey(updateAuthority);
|
|
189
|
+
this.mint = new web3_js_1.PublicKey(mint);
|
|
190
|
+
this.data = data;
|
|
191
|
+
this.primarySaleHappened = primarySaleHappened;
|
|
192
|
+
this.isMutable = isMutable;
|
|
193
|
+
}
|
|
194
|
+
static deserialize(data) {
|
|
195
|
+
const key = data.readUInt8(0);
|
|
196
|
+
const updateAuthority = data.subarray(1, 33);
|
|
197
|
+
const mint = data.subarray(33, 65);
|
|
198
|
+
const meta = Data.deserialize(data.subarray(65));
|
|
199
|
+
const metaLen = meta.serialize().length;
|
|
200
|
+
const primarySaleHappened = data.readUInt8(65 + metaLen) > 0;
|
|
201
|
+
const isMutable = data.readUInt8(66 + metaLen) > 0;
|
|
202
|
+
return new Metadata(key, updateAuthority, mint, meta, primarySaleHappened, isMutable);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
exports.Metadata = Metadata;
|
|
206
|
+
async function getMetadata(connection, mint, commitment) {
|
|
207
|
+
return connection
|
|
208
|
+
.getAccountInfo(deriveSplTokenMetadataKey(mint), commitment)
|
|
209
|
+
.then((info) => Metadata.deserialize((0, account_1.getAccountData)(info)));
|
|
210
|
+
}
|
|
211
|
+
exports.getMetadata = getMetadata;
|
|
212
|
+
//# sourceMappingURL=splMetadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"splMetadata.js","sourceRoot":"","sources":["../../../../src/utils/utils/splMetadata.ts"],"names":[],"mappings":";;;AAAA,6CASyB;AACzB,uCAKmB;AAEnB,MAAa,OAAO;IAClB,OAAO,CAAY;IACnB,QAAQ,CAAU;IAClB,KAAK,CAAS;IAEd,YAAY,OAA0B,EAAE,QAAiB,EAAE,KAAa;QACtE,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAS,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,IAAI,GAAW,EAAE,CAAC;IAEzB,SAAS;QACP,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9C,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAC9B;QACD,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACtC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAY;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACjC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;;AA5BH,0BA6BC;AAED,MAAa,IAAI;IACf,IAAI,CAAS;IACb,MAAM,CAAS;IACf,GAAG,CAAS;IACZ,oBAAoB,CAAS;IAC7B,QAAQ,CAAmB;IAE3B,YACE,IAAY,EACZ,MAAc,EACd,GAAW,EACX,oBAA4B,EAC5B,QAA0B;QAE1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,SAAS;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE;YACxC,IAAI,QAAQ,KAAK,IAAI,EAAE;gBACrB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACf;YAED,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC;YACpC,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC,CAAC,EAAE,CAAC;QACL,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAC7B,EAAE,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,CACjD,CAAC;QACF,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/B,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC;QACjD,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC;QAC3C,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;QAC1D,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;QACrD,UAAU,CAAC,aAAa,CACtB,IAAI,CAAC,oBAAoB,EACzB,EAAE,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAClC,CAAC;QACF,IAAI,QAAQ,KAAK,IAAI,EAAE;YACrB,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC;SAC7D;aAAM;YACL,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC;YAC5D,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC;YACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE;gBACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC;gBAChC,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;gBACjE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;aACnE;SACF;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAY;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI;aAChB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC;aAC9C,QAAQ,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI;aACb,QAAQ,CAAC,EAAE,GAAG,OAAO,GAAG,SAAS,EAAE,EAAE,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;aACrE,QAAQ,EAAE,CAAC;QACd,MAAM,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAC5C,EAAE,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAClC,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;YACrB,IAAI,cAAc,IAAI,CAAC,EAAE;gBACvB,OAAO,IAAI,CAAC;aACb;YAED,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC;YACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE;gBACpC,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;gBACjE,QAAQ,CAAC,IAAI,CACX,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAC5D,CAAC;aACH;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC;CACF;AA7FD,oBA6FC;AAED,MAAa,yBAA0B,SAAQ,IAAI;IACjD,SAAS,CAAU;IAEnB,YACE,IAAY,EACZ,MAAc,EACd,GAAW,EACX,oBAA4B,EAC5B,QAA0B,EAC1B,SAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,SAAS,CACd,IAAY,EACZ,MAAc,EACd,GAAW,EACX,oBAA4B,EAC5B,QAA0B,EAC1B,SAAkB;QAElB,OAAO,IAAI,yBAAyB,CAClC,IAAI,EACJ,MAAM,EACN,GAAG,EACH,oBAAoB,EACpB,QAAQ,EACR,SAAS,CACV,CAAC,SAAS,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,wBAAwB,CAC7B,IAAY,EACZ,MAAc,EACd,GAAW,EACX,oBAA4B,EAC5B,QAA0B,EAC1B,SAAkB;QAElB,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAClB,yBAAyB,CAAC,SAAS,CACjC,IAAI,EACJ,MAAM,EACN,GAAG,EACH,oBAAoB,EACpB,QAAQ,EACR,SAAS,CACV;SACF,CAAC,CAAC;IACL,CAAC;IAEQ,SAAS;QAChB,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,KAAK,CAAC,SAAS,EAAE;YACjB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;CACF;AA5DD,8DA4DC;AAED,MAAa,uBAAuB;IAClC;;OAEG;IACH,gBAAe,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,SAAS,GAAc,IAAI,mBAAS,CACzC,6CAA6C,CAC9C,CAAC;IAEF,MAAM,CAAC,sBAAsB,CAC3B,KAAgB,EAChB,IAAe,EACf,aAAwB,EACxB,IAAY,EACZ,MAAc,EACd,eAA0B,EAC1B,0BAAmC,KAAK,EACxC,GAAY,EACZ,QAA2B,EAC3B,oBAA6B,EAC7B,YAAqB,KAAK,EAC1B,kBAA6B,yBAAyB,CAAC,IAAI,CAAC;QAE5D,MAAM,IAAI,GAAkB;YAC1B,IAAA,wBAAc,EAAC,eAAe,EAAE,KAAK,CAAC;YACtC,IAAA,gCAAsB,EAAC,IAAI,EAAE,KAAK,CAAC;YACnC,IAAA,gCAAsB,EAAC,aAAa,EAAE,IAAI,CAAC;YAC3C,IAAA,gCAAsB,EAAC,KAAK,EAAE,IAAI,CAAC;YACnC,IAAA,gCAAsB,EAAC,eAAe,EAAE,uBAAuB,CAAC;YAChE,IAAA,gCAAsB,EAAC,uBAAa,CAAC,SAAS,EAAE,KAAK,CAAC;YACtD,IAAA,gCAAsB,EAAC,4BAAkB,EAAE,KAAK,CAAC;SAClD,CAAC;QACF,MAAM,IAAI,GAAG,yBAAyB,CAAC,wBAAwB,CAC7D,IAAI,EACJ,MAAM,EACN,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAC5B,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,EAC7D,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EACxC,SAAS,CACV,CAAC;QACF,OAAO;YACL,SAAS,EAAE,uBAAuB,CAAC,SAAS;YAC5C,IAAI;YACJ,IAAI;SACL,CAAC;IACJ,CAAC;;AAjDH,0DAkDC;AAED,SAAgB,yBAAyB,CAAC,IAAuB;IAC/D,OAAO,IAAA,uBAAa,EAClB;QACE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACvB,uBAAuB,CAAC,SAAS,CAAC,QAAQ,EAAE;QAC5C,IAAI,mBAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;KAC/B,EACD,uBAAuB,CAAC,SAAS,CAClC,CAAC;AACJ,CAAC;AATD,8DASC;AAED,IAAY,GASX;AATD,WAAY,GAAG;IACb,+CAAa,CAAA;IACb,uCAAS,CAAA;IACT,mDAAe,CAAA;IACf,uDAAiB,CAAA;IACjB,yCAAU,CAAA;IACV,uDAAiB,CAAA;IACjB,mDAAe,CAAA;IACf,+CAAa,CAAA;AACf,CAAC,EATW,GAAG,mBAAH,GAAG,QASd;AAED,MAAa,QAAQ;IACnB,GAAG,CAAM;IACT,eAAe,CAAY;IAC3B,IAAI,CAAY;IAChB,IAAI,CAAO;IACX,mBAAmB,CAAU;IAC7B,SAAS,CAAU;IAEnB,YACE,GAAW,EACX,eAAkC,EAClC,IAAuB,EACvB,IAAU,EACV,mBAA4B,EAC5B,SAAkB;QAElB,IAAI,CAAC,GAAG,GAAG,GAAU,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,IAAI,mBAAS,CAAC,eAAe,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAY;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;QACxC,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACnD,OAAO,IAAI,QAAQ,CACjB,GAAG,EACH,eAAe,EACf,IAAI,EACJ,IAAI,EACJ,mBAAmB,EACnB,SAAS,CACV,CAAC;IACJ,CAAC;CACF;AAzCD,4BAyCC;AAEM,KAAK,UAAU,WAAW,CAC/B,UAAsB,EACtB,IAAuB,EACvB,UAAuB;IAEvB,OAAO,UAAU;SACd,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;SAC3D,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAA,wBAAc,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AARD,kCAQC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Transaction, Keypair, Connection, PublicKeyInitData, PublicKey, ConfirmOptions, RpcResponseAndContext, SignatureResult, TransactionSignature, Signer } from '@solana/web3.js';
|
|
2
|
+
/**
|
|
3
|
+
* Object that holds list of unsigned {@link Transaction}s and {@link Keypair}s
|
|
4
|
+
* required to sign for each transaction.
|
|
5
|
+
*/
|
|
6
|
+
export interface PreparedTransactions {
|
|
7
|
+
unsignedTransactions: Transaction[];
|
|
8
|
+
signers: Signer[];
|
|
9
|
+
}
|
|
10
|
+
export interface TransactionSignatureAndResponse {
|
|
11
|
+
signature: TransactionSignature;
|
|
12
|
+
response: RpcResponseAndContext<SignatureResult>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Resembles WalletContextState and Anchor's NodeWallet's signTransaction function signature
|
|
16
|
+
*/
|
|
17
|
+
export type SignTransaction = (transaction: Transaction) => Promise<Transaction>;
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* @param payers
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
export declare function signTransactionFactory(...payers: Signer[]): SignTransaction;
|
|
24
|
+
export declare function modifySignTransaction(signTransaction: SignTransaction, ...payers: Signer[]): SignTransaction;
|
|
25
|
+
/**
|
|
26
|
+
* Wrapper for {@link Keypair} resembling Solana web3 browser wallet
|
|
27
|
+
*/
|
|
28
|
+
export declare class NodeWallet {
|
|
29
|
+
payer: Keypair;
|
|
30
|
+
signTransaction: SignTransaction;
|
|
31
|
+
constructor(payer: Keypair);
|
|
32
|
+
static fromSecretKey(secretKey: Uint8Array, options?: {
|
|
33
|
+
skipValidation?: boolean | undefined;
|
|
34
|
+
} | undefined): NodeWallet;
|
|
35
|
+
publicKey(): PublicKey;
|
|
36
|
+
pubkey(): PublicKey;
|
|
37
|
+
key(): PublicKey;
|
|
38
|
+
toString(): string;
|
|
39
|
+
keypair(): Keypair;
|
|
40
|
+
signer(): Signer;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The transactions provided to this function should be ready to send.
|
|
44
|
+
* This function will do the following:
|
|
45
|
+
* 1. Add the {@param payer} as the feePayer and latest blockhash to the {@link Transaction}.
|
|
46
|
+
* 2. Sign using {@param signTransaction}.
|
|
47
|
+
* 3. Send raw transaction.
|
|
48
|
+
* 4. Confirm transaction.
|
|
49
|
+
*/
|
|
50
|
+
export declare function signSendAndConfirmTransaction(connection: Connection, payer: PublicKeyInitData, signTransaction: SignTransaction, unsignedTransaction: Transaction, options?: ConfirmOptions): Promise<TransactionSignatureAndResponse>;
|
|
51
|
+
/**
|
|
52
|
+
* @deprecated Please use {@link signSendAndConfirmTransaction} instead, which allows
|
|
53
|
+
* retries to be configured in {@link ConfirmOptions}.
|
|
54
|
+
*
|
|
55
|
+
* The transactions provided to this function should be ready to send.
|
|
56
|
+
* This function will do the following:
|
|
57
|
+
* 1. Add the {@param payer} as the feePayer and latest blockhash to the {@link Transaction}.
|
|
58
|
+
* 2. Sign using {@param signTransaction}.
|
|
59
|
+
* 3. Send raw transaction.
|
|
60
|
+
* 4. Confirm transaction.
|
|
61
|
+
*/
|
|
62
|
+
export declare function sendAndConfirmTransactionsWithRetry(connection: Connection, signTransaction: SignTransaction, payer: string, unsignedTransactions: Transaction[], maxRetries?: number, options?: ConfirmOptions): Promise<TransactionSignatureAndResponse[]>;
|
|
63
|
+
//# sourceMappingURL=transaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/utils/utils/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,MAAM,EACP,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,oBAAoB,EAAE,WAAW,EAAE,CAAC;IACpC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,+BAA+B;IAC9C,SAAS,EAAE,oBAAoB,CAAC;IAChC,QAAQ,EAAE,qBAAqB,CAAC,eAAe,CAAC,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAC5B,WAAW,EAAE,WAAW,KACrB,OAAO,CAAC,WAAW,CAAC,CAAC;AAE1B;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAK3E;AAED,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,eAAe,EAChC,GAAG,MAAM,EAAE,MAAM,EAAE,GAClB,eAAe,CAOjB;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;gBAErB,KAAK,EAAE,OAAO;IAK1B,MAAM,CAAC,aAAa,CAClB,SAAS,EAAE,UAAU,EACrB,OAAO,CAAC,EACJ;QACE,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KACtC,GACD,SAAS,GACZ,UAAU;IAIb,SAAS,IAAI,SAAS;IAItB,MAAM,IAAI,SAAS;IAInB,GAAG,IAAI,SAAS;IAIhB,QAAQ,IAAI,MAAM;IAIlB,OAAO,IAAI,OAAO;IAIlB,MAAM,IAAI,MAAM;CAGjB;AAED;;;;;;;GAOG;AACH,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,iBAAiB,EACxB,eAAe,EAAE,eAAe,EAChC,mBAAmB,EAAE,WAAW,EAChC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,+BAA+B,CAAC,CAsB1C;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mCAAmC,CACvD,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,EAChC,KAAK,EAAE,MAAM,EACb,oBAAoB,EAAE,WAAW,EAAE,EACnC,UAAU,GAAE,MAAU,EACtB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,+BAA+B,EAAE,CAAC,CA6C5C"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendAndConfirmTransactionsWithRetry = exports.signSendAndConfirmTransaction = exports.NodeWallet = exports.modifySignTransaction = exports.signTransactionFactory = void 0;
|
|
4
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
* @param payers
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
function signTransactionFactory(...payers) {
|
|
11
|
+
return modifySignTransaction((transaction) => Promise.resolve(transaction), ...payers);
|
|
12
|
+
}
|
|
13
|
+
exports.signTransactionFactory = signTransactionFactory;
|
|
14
|
+
function modifySignTransaction(signTransaction, ...payers) {
|
|
15
|
+
return (transaction) => {
|
|
16
|
+
for (const payer of payers) {
|
|
17
|
+
transaction.partialSign(payer);
|
|
18
|
+
}
|
|
19
|
+
return signTransaction(transaction);
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
exports.modifySignTransaction = modifySignTransaction;
|
|
23
|
+
/**
|
|
24
|
+
* Wrapper for {@link Keypair} resembling Solana web3 browser wallet
|
|
25
|
+
*/
|
|
26
|
+
class NodeWallet {
|
|
27
|
+
payer;
|
|
28
|
+
signTransaction;
|
|
29
|
+
constructor(payer) {
|
|
30
|
+
this.payer = payer;
|
|
31
|
+
this.signTransaction = signTransactionFactory(this.payer);
|
|
32
|
+
}
|
|
33
|
+
static fromSecretKey(secretKey, options) {
|
|
34
|
+
return new NodeWallet(web3_js_1.Keypair.fromSecretKey(secretKey, options));
|
|
35
|
+
}
|
|
36
|
+
publicKey() {
|
|
37
|
+
return this.payer.publicKey;
|
|
38
|
+
}
|
|
39
|
+
pubkey() {
|
|
40
|
+
return this.publicKey();
|
|
41
|
+
}
|
|
42
|
+
key() {
|
|
43
|
+
return this.publicKey();
|
|
44
|
+
}
|
|
45
|
+
toString() {
|
|
46
|
+
return this.publicKey().toString();
|
|
47
|
+
}
|
|
48
|
+
keypair() {
|
|
49
|
+
return this.payer;
|
|
50
|
+
}
|
|
51
|
+
signer() {
|
|
52
|
+
return this.keypair();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.NodeWallet = NodeWallet;
|
|
56
|
+
/**
|
|
57
|
+
* The transactions provided to this function should be ready to send.
|
|
58
|
+
* This function will do the following:
|
|
59
|
+
* 1. Add the {@param payer} as the feePayer and latest blockhash to the {@link Transaction}.
|
|
60
|
+
* 2. Sign using {@param signTransaction}.
|
|
61
|
+
* 3. Send raw transaction.
|
|
62
|
+
* 4. Confirm transaction.
|
|
63
|
+
*/
|
|
64
|
+
async function signSendAndConfirmTransaction(connection, payer, signTransaction, unsignedTransaction, options) {
|
|
65
|
+
const commitment = options?.commitment;
|
|
66
|
+
const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash(commitment);
|
|
67
|
+
unsignedTransaction.recentBlockhash = blockhash;
|
|
68
|
+
unsignedTransaction.feePayer = new web3_js_1.PublicKey(payer);
|
|
69
|
+
// Sign transaction, broadcast, and confirm
|
|
70
|
+
const signed = await signTransaction(unsignedTransaction);
|
|
71
|
+
const signature = await connection.sendRawTransaction(signed.serialize(), options);
|
|
72
|
+
const response = await connection.confirmTransaction({
|
|
73
|
+
blockhash,
|
|
74
|
+
lastValidBlockHeight,
|
|
75
|
+
signature,
|
|
76
|
+
}, commitment);
|
|
77
|
+
return { signature, response };
|
|
78
|
+
}
|
|
79
|
+
exports.signSendAndConfirmTransaction = signSendAndConfirmTransaction;
|
|
80
|
+
/**
|
|
81
|
+
* @deprecated Please use {@link signSendAndConfirmTransaction} instead, which allows
|
|
82
|
+
* retries to be configured in {@link ConfirmOptions}.
|
|
83
|
+
*
|
|
84
|
+
* The transactions provided to this function should be ready to send.
|
|
85
|
+
* This function will do the following:
|
|
86
|
+
* 1. Add the {@param payer} as the feePayer and latest blockhash to the {@link Transaction}.
|
|
87
|
+
* 2. Sign using {@param signTransaction}.
|
|
88
|
+
* 3. Send raw transaction.
|
|
89
|
+
* 4. Confirm transaction.
|
|
90
|
+
*/
|
|
91
|
+
async function sendAndConfirmTransactionsWithRetry(connection, signTransaction, payer, unsignedTransactions, maxRetries = 0, options) {
|
|
92
|
+
if (unsignedTransactions.length == 0) {
|
|
93
|
+
return Promise.reject('No transactions provided to send.');
|
|
94
|
+
}
|
|
95
|
+
const commitment = options?.commitment;
|
|
96
|
+
let currentRetries = 0;
|
|
97
|
+
const output = [];
|
|
98
|
+
for (const transaction of unsignedTransactions) {
|
|
99
|
+
while (currentRetries <= maxRetries) {
|
|
100
|
+
try {
|
|
101
|
+
const latest = await connection.getLatestBlockhash(commitment);
|
|
102
|
+
transaction.recentBlockhash = latest.blockhash;
|
|
103
|
+
transaction.feePayer = new web3_js_1.PublicKey(payer);
|
|
104
|
+
const signed = await signTransaction(transaction).catch((e) => null);
|
|
105
|
+
if (signed === null) {
|
|
106
|
+
return Promise.reject('Failed to sign transaction.');
|
|
107
|
+
}
|
|
108
|
+
const signature = await connection.sendRawTransaction(signed.serialize(), options);
|
|
109
|
+
const response = await connection.confirmTransaction({
|
|
110
|
+
signature,
|
|
111
|
+
...latest,
|
|
112
|
+
}, commitment);
|
|
113
|
+
output.push({ signature, response });
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
catch (e) {
|
|
117
|
+
console.error(e);
|
|
118
|
+
++currentRetries;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (currentRetries > maxRetries) {
|
|
122
|
+
return Promise.reject('Reached the maximum number of retries.');
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return Promise.resolve(output);
|
|
126
|
+
}
|
|
127
|
+
exports.sendAndConfirmTransactionsWithRetry = sendAndConfirmTransactionsWithRetry;
|
|
128
|
+
//# sourceMappingURL=transaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../../src/utils/utils/transaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Address, Platform, UniversalAddress } from '@wormhole-foundation/sdk-connect';
|
|
2
|
+
import { PublicKey } from '@solana/web3.js';
|
|
3
|
+
import { AnySolanaAddress } from './types';
|
|
4
|
+
export declare const SolanaZeroAddress = "11111111111111111111111111111111";
|
|
5
|
+
export declare class SolanaAddress implements Address {
|
|
6
|
+
static readonly byteSize = 32;
|
|
7
|
+
static readonly platform: Platform;
|
|
8
|
+
readonly type: string;
|
|
9
|
+
readonly address: PublicKey;
|
|
10
|
+
constructor(address: AnySolanaAddress);
|
|
11
|
+
unwrap(): PublicKey;
|
|
12
|
+
toString(): string;
|
|
13
|
+
toUint8Array(): Uint8Array;
|
|
14
|
+
toNative(): this;
|
|
15
|
+
toUniversalAddress(): UniversalAddress;
|
|
16
|
+
static instanceof(address: any): address is SolanaAddress;
|
|
17
|
+
equals(other: SolanaAddress | UniversalAddress): boolean;
|
|
18
|
+
}
|
|
19
|
+
declare global {
|
|
20
|
+
namespace Wormhole {
|
|
21
|
+
interface PlatformToNativeAddressMapping {
|
|
22
|
+
Solana: SolanaAddress;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=address.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,gBAAgB,EAGjB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAa,MAAM,SAAS,CAAC;AAEtD,eAAO,MAAM,iBAAiB,qCAAqC,CAAC;AAEpE,qBAAa,aAAc,YAAW,OAAO;IAC3C,MAAM,CAAC,QAAQ,CAAC,QAAQ,MAAM;IAC9B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAa;IAE/C,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;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,QAAQ,CAAC;QACjB,UAAiB,8BAA8B;YAC7C,MAAM,EAAE,aAAa,CAAC;SACvB;KACF;CACF"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { UniversalAddress, encoding, registerNative, } from '@wormhole-foundation/sdk-connect';
|
|
2
|
+
import { PublicKey } from '@solana/web3.js';
|
|
3
|
+
import { _platform } from './types';
|
|
4
|
+
export const SolanaZeroAddress = '11111111111111111111111111111111';
|
|
5
|
+
export class SolanaAddress {
|
|
6
|
+
static byteSize = 32;
|
|
7
|
+
static platform = _platform;
|
|
8
|
+
type = 'Native';
|
|
9
|
+
address;
|
|
10
|
+
constructor(address) {
|
|
11
|
+
if (SolanaAddress.instanceof(address)) {
|
|
12
|
+
this.address = address.address;
|
|
13
|
+
}
|
|
14
|
+
else if (UniversalAddress.instanceof(address)) {
|
|
15
|
+
this.address = new PublicKey(address.toUint8Array());
|
|
16
|
+
}
|
|
17
|
+
else if (typeof address === 'string' && encoding.hex.valid(address)) {
|
|
18
|
+
this.address = new PublicKey(encoding.hex.decode(address));
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
this.address = new PublicKey(address);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
unwrap() {
|
|
25
|
+
return this.address;
|
|
26
|
+
}
|
|
27
|
+
toString() {
|
|
28
|
+
return this.address.toBase58();
|
|
29
|
+
}
|
|
30
|
+
toUint8Array() {
|
|
31
|
+
return new Uint8Array(this.address.toBytes());
|
|
32
|
+
}
|
|
33
|
+
toNative() {
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
toUniversalAddress() {
|
|
37
|
+
return new UniversalAddress(this.toUint8Array());
|
|
38
|
+
}
|
|
39
|
+
static instanceof(address) {
|
|
40
|
+
return address.constructor.platform === SolanaAddress.platform;
|
|
41
|
+
}
|
|
42
|
+
equals(other) {
|
|
43
|
+
if (SolanaAddress.instanceof(other)) {
|
|
44
|
+
return other.unwrap().equals(this.unwrap());
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
return this.toUniversalAddress().equals(other);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
registerNative(_platform, SolanaAddress);
|
|
52
|
+
//# sourceMappingURL=address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,gBAAgB,EAChB,QAAQ,EACR,cAAc,GACf,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAoB,SAAS,EAAE,MAAM,SAAS,CAAC;AAEtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,kCAAkC,CAAC;AAEpE,MAAM,OAAO,aAAa;IACxB,MAAM,CAAU,QAAQ,GAAG,EAAE,CAAC;IAC9B,MAAM,CAAU,QAAQ,GAAa,SAAS,CAAC;IAEtC,IAAI,GAAW,QAAQ,CAAC;IAExB,OAAO,CAAY;IAE5B,YAAY,OAAyB;QACnC,IAAI,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;SAChC;aAAM,IAAI,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;SACtD;aAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YACrE,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;SAC5D;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;SACvC;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,gBAAgB,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;YACnC,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SAC7C;aAAM;YACL,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAChD;IACH,CAAC;;AAaH,cAAc,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ChainAddress, ChainContext, Network, UniversalOrNative } from '@wormhole-foundation/sdk-connect';
|
|
2
|
+
import { SolanaChains } from './types';
|
|
3
|
+
export declare class SolanaChain<N extends Network, C extends SolanaChains = SolanaChains> extends ChainContext<N, C> {
|
|
4
|
+
getTokenAccount(address: UniversalOrNative<C>, token: UniversalOrNative<C>): Promise<ChainAddress<C>>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=chain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,YAAY,EAEZ,OAAO,EACP,iBAAiB,EAClB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,qBAAa,WAAW,CACtB,CAAC,SAAS,OAAO,EACjB,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;CAU5B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { getAssociatedTokenAddress } from '@solana/spl-token';
|
|
2
|
+
import { ChainContext, } from '@wormhole-foundation/sdk-connect';
|
|
3
|
+
import { SolanaAddress } from './address';
|
|
4
|
+
export class SolanaChain extends ChainContext {
|
|
5
|
+
async getTokenAccount(address, token) {
|
|
6
|
+
const mint = new SolanaAddress(token).unwrap();
|
|
7
|
+
const owner = new SolanaAddress(address).unwrap();
|
|
8
|
+
const ata = await getAssociatedTokenAddress(mint, owner);
|
|
9
|
+
return {
|
|
10
|
+
chain: this.chain,
|
|
11
|
+
address: new SolanaAddress(ata.toString()),
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAEL,YAAY,GAIb,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,MAAM,OAAO,WAGX,SAAQ,YAAkB;IACjB,KAAK,CAAC,eAAe,CAC5B,OAA6B,EAC7B,KAA2B;QAE3B,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QAElD,MAAM,GAAG,GAAG,MAAM,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzD,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAqB;SAC/D,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Balances, Chain, ChainsConfig, Network, PlatformContext, SignedTx, StaticPlatformMethods, TokenId, TxHash } from '@wormhole-foundation/sdk-connect';
|
|
2
|
+
import { SolanaChain } from './chain';
|
|
3
|
+
import { Commitment, Connection, ConnectionConfig, SendOptions } from '@solana/web3.js';
|
|
4
|
+
import { AnySolanaAddress, SolanaChains, SolanaPlatformType } from './types';
|
|
5
|
+
/**
|
|
6
|
+
* @category Solana
|
|
7
|
+
*/
|
|
8
|
+
export declare class SolanaPlatform<N extends Network> extends PlatformContext<N, SolanaPlatformType> implements StaticPlatformMethods<SolanaPlatformType, typeof SolanaPlatform> {
|
|
9
|
+
static _platform: "Solana";
|
|
10
|
+
constructor(network: N, config?: ChainsConfig<N, SolanaPlatformType>);
|
|
11
|
+
getRpc<C extends SolanaChains>(chain: C, config?: ConnectionConfig): Connection;
|
|
12
|
+
getChain<C extends SolanaChains>(chain: C, rpc?: Connection): SolanaChain<N, C>;
|
|
13
|
+
static nativeTokenId<N extends Network, C extends SolanaChains>(network: N, chain: C): TokenId<C>;
|
|
14
|
+
static isNativeTokenId<N extends Network, C extends SolanaChains>(network: N, chain: C, tokenId: TokenId): boolean;
|
|
15
|
+
static isSupportedChain(chain: Chain): boolean;
|
|
16
|
+
static getDecimals(chain: Chain, rpc: Connection, token: AnySolanaAddress): Promise<number>;
|
|
17
|
+
static getBalance(chain: Chain, rpc: Connection, walletAddress: string, token: AnySolanaAddress): Promise<bigint | null>;
|
|
18
|
+
static getBalances(chain: Chain, rpc: Connection, walletAddress: string, tokens: AnySolanaAddress[]): Promise<Balances>;
|
|
19
|
+
static sendWait(chain: Chain, rpc: Connection, stxns: SignedTx[], opts?: SendOptions): Promise<TxHash[]>;
|
|
20
|
+
static latestBlock(rpc: Connection, commitment?: Commitment): Promise<{
|
|
21
|
+
blockhash: string;
|
|
22
|
+
lastValidBlockHeight: number;
|
|
23
|
+
}>;
|
|
24
|
+
static getLatestBlock(rpc: Connection): Promise<number>;
|
|
25
|
+
static getLatestFinalizedBlock(rpc: Connection): Promise<number>;
|
|
26
|
+
static chainFromChainId(genesisHash: string): [Network, SolanaChains];
|
|
27
|
+
static chainFromRpc(rpc: Connection): Promise<[Network, SolanaChains]>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=platform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,OAAO,EACP,eAAe,EACf,QAAQ,EACR,qBAAqB,EACrB,OAAO,EACP,MAAM,EAOP,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtC,OAAO,EACL,UAAU,EACV,UAAU,EACV,gBAAgB,EAGhB,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,qBAAa,cAAc,CAAC,CAAC,SAAS,OAAO,CAC3C,SAAQ,eAAe,CAAC,CAAC,EAAE,kBAAkB,CAC7C,YAAW,qBAAqB,CAAC,kBAAkB,EAAE,OAAO,cAAc,CAAC;IAE3E,MAAM,CAAC,SAAS,WAAa;gBAEjB,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,kBAAkB,CAAC;IAOpE,MAAM,CAAC,CAAC,SAAS,YAAY,EAC3B,KAAK,EAAE,CAAC,EACR,MAAM,GAAE,gBAGP,GACA,UAAU;IAMb,QAAQ,CAAC,CAAC,SAAS,YAAY,EAC7B,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,EAAE,UAAU,GACf,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;IAKpB,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,YAAY,EAC5D,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,CAAC,CAAC;IAMb,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,YAAY,EAC9D,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,OAAO,GACf,OAAO;IAOV,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;WAKjC,WAAW,CACtB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,MAAM,CAAC;WAeL,UAAU,CACrB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,UAAU,EACf,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;WAcZ,WAAW,CACtB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,UAAU,EACf,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,gBAAgB,EAAE,GACzB,OAAO,CAAC,QAAQ,CAAC;WA4BP,QAAQ,CACnB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,QAAQ,EAAE,EACjB,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC;WAoCP,WAAW,CACtB,GAAG,EAAE,UAAU,EACf,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAA;KAAE,CAAC;WAIlD,cAAc,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;WAIhD,uBAAuB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAKtE,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC;WAexD,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;CAI7E"}
|