@crossmint/wallets-sdk 0.20.2 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/__tests__/test-utils.cjs +8 -8
- package/dist/api/__tests__/test-utils.d.cts +3 -3
- package/dist/api/__tests__/test-utils.d.ts +3 -3
- package/dist/api/__tests__/test-utils.js +6 -6
- package/dist/api/client.cjs +4 -4
- package/dist/api/client.d.cts +1 -0
- package/dist/api/client.d.ts +1 -0
- package/dist/api/client.js +3 -3
- package/dist/api/gen/index.cjs +3 -103
- package/dist/api/gen/index.d.cts +2 -2
- package/dist/api/gen/index.d.ts +2 -2
- package/dist/api/gen/index.js +6 -106
- package/dist/api/gen/sdk.gen.cjs +2 -102
- package/dist/api/gen/sdk.gen.d.cts +22 -370
- package/dist/api/gen/sdk.gen.d.ts +22 -370
- package/dist/api/gen/sdk.gen.js +5 -105
- package/dist/api/gen/types.gen.d.cts +2558 -5712
- package/dist/api/gen/types.gen.d.ts +2558 -5712
- package/dist/api/index.cjs +4 -4
- package/dist/api/index.js +3 -3
- package/dist/api/types.d.cts +12 -12
- package/dist/api/types.d.ts +12 -12
- package/dist/chains/chains.cjs +5 -5
- package/dist/chains/chains.js +4 -4
- package/dist/{chunk-JREZWZ2S.cjs → chunk-2M32LBCA.cjs} +3 -3
- package/dist/{chunk-KQH5ZXJ4.js → chunk-2PSAUSOG.js} +61 -18
- package/dist/chunk-2RG6642I.js +39 -0
- package/dist/{chunk-R4AW5ADG.cjs → chunk-3WZUNLYI.cjs} +1 -1
- package/dist/{chunk-6UMJYMAY.js → chunk-4Z3YDHHG.js} +2 -2
- package/dist/{chunk-POG76HDD.cjs → chunk-4ZWUI6LE.cjs} +64 -48
- package/dist/chunk-5IC7UWND.cjs +1 -0
- package/dist/{chunk-HXJ3YPAN.js → chunk-65KPNJ77.js} +13 -4
- package/dist/{chunk-IDKGJO2G.cjs → chunk-7EZDSDKA.cjs} +21 -11
- package/dist/{chunk-PM7BGATN.cjs → chunk-7SUWMK4J.cjs} +34 -25
- package/dist/{chunk-47R3UV3J.cjs → chunk-7W4HGN3H.cjs} +11 -6
- package/dist/chunk-BR4UVMIC.js +332 -0
- package/dist/chunk-BUBSPQ7U.cjs +332 -0
- package/dist/{chunk-MRZXYVQO.cjs → chunk-CPZQ7BK5.cjs} +6 -6
- package/dist/chunk-CTOLL4BK.js +29 -0
- package/dist/chunk-DDNG224J.cjs +45 -0
- package/dist/{chunk-T2XUADHW.js → chunk-EVR4CD53.js} +8 -3
- package/dist/{chunk-U3NV7UY7.js → chunk-FZQG6OX2.js} +1 -1
- package/dist/chunk-GJT2JD3E.js +45 -0
- package/dist/{chunk-TYQ4YIP7.js → chunk-GLUD6EBN.js} +1 -1
- package/dist/chunk-H6WV5NRT.js +10 -0
- package/dist/{chunk-FICVKSXZ.js → chunk-HFEF2URB.js} +2 -2
- package/dist/chunk-HWTWDQYT.cjs +42 -0
- package/dist/{chunk-CMBFV325.js → chunk-HYA3ESUA.js} +3 -3
- package/dist/chunk-IGRPHTXZ.cjs +1 -0
- package/dist/chunk-K6LSGLG6.js +42 -0
- package/dist/chunk-KHY5FXO4.cjs +37 -0
- package/dist/chunk-L52GDMSH.js +0 -0
- package/dist/{chunk-A6E67ZZP.js → chunk-M47ZHA7Q.js} +14 -5
- package/dist/{chunk-6FG5QXII.cjs → chunk-M4HCASMG.cjs} +20 -11
- package/dist/chunk-M6IPPGXQ.cjs +29 -0
- package/dist/{chunk-R6DH4V7S.cjs → chunk-M7OPRXZH.cjs} +7 -7
- package/dist/{chunk-WDZY4PP4.cjs → chunk-MIKWTXUA.cjs} +6 -6
- package/dist/chunk-MNHK6EQK.cjs +57 -0
- package/dist/{chunk-66UY53KP.cjs → chunk-NO2KMGS2.cjs} +80 -37
- package/dist/chunk-OPKFMXPI.cjs +39 -0
- package/dist/{chunk-WWW6IGZ7.js → chunk-OXB6RTW7.js} +14 -4
- package/dist/{chunk-RYQI3RXL.cjs → chunk-P4XJHOLW.cjs} +18 -12
- package/dist/chunk-Q52MMQSC.js +57 -0
- package/dist/chunk-QM3BB4E2.js +0 -0
- package/dist/{chunk-ZAX22GSI.cjs → chunk-QQNDLR6E.cjs} +18 -18
- package/dist/chunk-RUQYXEEG.cjs +10 -0
- package/dist/chunk-S2L5Z2ZT.js +37 -0
- package/dist/{chunk-PUO4QNXH.js → chunk-T5NKL6F4.js} +2 -2
- package/dist/{chunk-WHTECI7J.cjs → chunk-U56Z2EOR.cjs} +6 -6
- package/dist/{chunk-W7K5E64Q.js → chunk-VLZ5ZS5U.js} +8 -2
- package/dist/{chunk-7TT3VUDF.cjs → chunk-VTF3WCXG.cjs} +6 -6
- package/dist/{chunk-FHMKNG62.js → chunk-VVPGO564.js} +24 -8
- package/dist/{chunk-2WBSPOWU.js → chunk-X4SPF4KJ.js} +4 -4
- package/dist/{chunk-ABMZ3ZVN.js → chunk-XEPUH4XH.js} +1 -1
- package/dist/index.cjs +26 -17
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +25 -16
- package/dist/logger/index.cjs +3 -3
- package/dist/logger/index.js +2 -2
- package/dist/logger/init.cjs +3 -3
- package/dist/logger/init.js +2 -2
- package/dist/sdk.cjs +23 -14
- package/dist/sdk.js +22 -13
- package/dist/signers/index.cjs +17 -8
- package/dist/signers/index.js +16 -7
- package/dist/signers/non-custodial/index.cjs +7 -7
- package/dist/signers/non-custodial/index.js +6 -6
- package/dist/signers/non-custodial/ncs-evm-signer.cjs +5 -5
- package/dist/signers/non-custodial/ncs-evm-signer.js +4 -4
- package/dist/signers/non-custodial/ncs-signer.cjs +4 -4
- package/dist/signers/non-custodial/ncs-signer.js +3 -3
- package/dist/signers/non-custodial/ncs-solana-signer.cjs +5 -5
- package/dist/signers/non-custodial/ncs-solana-signer.js +4 -4
- package/dist/signers/non-custodial/ncs-stellar-signer.cjs +5 -5
- package/dist/signers/non-custodial/ncs-stellar-signer.js +4 -4
- package/dist/signers/server/assemble-server-signer.cjs +14 -0
- package/dist/signers/server/assemble-server-signer.d.cts +11 -0
- package/dist/signers/server/assemble-server-signer.d.ts +11 -0
- package/dist/signers/server/assemble-server-signer.js +14 -0
- package/dist/signers/server/evm-server-signer.cjs +7 -0
- package/dist/signers/server/evm-server-signer.d.cts +25 -0
- package/dist/signers/server/evm-server-signer.d.ts +25 -0
- package/dist/signers/server/evm-server-signer.js +7 -0
- package/dist/signers/server/helpers/derive-server-signer.cjs +11 -0
- package/dist/signers/server/helpers/derive-server-signer.d.cts +15 -0
- package/dist/signers/server/helpers/derive-server-signer.d.ts +15 -0
- package/dist/signers/server/helpers/derive-server-signer.js +11 -0
- package/dist/signers/server/helpers/get-chain-type.cjs +7 -0
- package/dist/signers/server/helpers/get-chain-type.d.cts +7 -0
- package/dist/signers/server/helpers/get-chain-type.d.ts +7 -0
- package/dist/signers/server/helpers/get-chain-type.js +7 -0
- package/dist/signers/server/helpers/index.cjs +15 -0
- package/dist/signers/server/helpers/index.d.cts +9 -0
- package/dist/signers/server/helpers/index.d.ts +9 -0
- package/dist/signers/server/helpers/index.js +15 -0
- package/dist/signers/server/index.cjs +29 -0
- package/dist/signers/server/index.d.cts +12 -0
- package/dist/signers/server/index.d.ts +12 -0
- package/dist/signers/server/index.js +29 -0
- package/dist/signers/server/solana-server-signer.cjs +7 -0
- package/dist/signers/server/solana-server-signer.d.cts +25 -0
- package/dist/signers/server/solana-server-signer.d.ts +25 -0
- package/dist/signers/server/solana-server-signer.js +7 -0
- package/dist/signers/server/stellar-server-signer.cjs +7 -0
- package/dist/signers/server/stellar-server-signer.d.cts +25 -0
- package/dist/signers/server/stellar-server-signer.d.ts +25 -0
- package/dist/signers/server/stellar-server-signer.js +7 -0
- package/dist/signers/types.d.cts +15 -3
- package/dist/signers/types.d.ts +15 -3
- package/dist/utils/constants.cjs +2 -2
- package/dist/utils/constants.js +1 -1
- package/dist/utils/server-key-derivation.cjs +9 -0
- package/dist/utils/server-key-derivation.d.cts +20 -0
- package/dist/utils/server-key-derivation.d.ts +20 -0
- package/dist/utils/server-key-derivation.js +9 -0
- package/dist/wallets/__tests__/test-helpers.cjs +19 -10
- package/dist/wallets/__tests__/test-helpers.js +18 -9
- package/dist/wallets/evm.cjs +20 -11
- package/dist/wallets/evm.js +19 -10
- package/dist/wallets/solana.cjs +20 -11
- package/dist/wallets/solana.js +19 -10
- package/dist/wallets/stellar.cjs +20 -11
- package/dist/wallets/stellar.js +19 -10
- package/dist/wallets/types.d.cts +7 -4
- package/dist/wallets/types.d.ts +7 -4
- package/dist/wallets/wallet-factory.cjs +21 -12
- package/dist/wallets/wallet-factory.js +20 -11
- package/dist/wallets/wallet.cjs +19 -10
- package/dist/wallets/wallet.d.cts +2 -2
- package/dist/wallets/wallet.d.ts +2 -2
- package/dist/wallets/wallet.js +18 -9
- package/package.json +3 -2
- package/dist/chunk-BMMZIPXT.js +0 -778
- package/dist/chunk-COR3CNRW.cjs +0 -778
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkRUQYXEEGcjs = require('./chunk-RUQYXEEG.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkMNHK6EQKcjs = require('./chunk-MNHK6EQK.cjs');
|
|
7
|
+
|
|
8
|
+
// src/signers/server/helpers/derive-server-signer.ts
|
|
9
|
+
var _accounts = require('viem/accounts');
|
|
10
|
+
var _utils = require('@noble/hashes/utils');
|
|
11
|
+
var _web3js = require('@solana/web3.js');
|
|
12
|
+
var _stellarsdk = require('@stellar/stellar-sdk');
|
|
13
|
+
function deriveServerSignerAddress(keyBytes, chain) {
|
|
14
|
+
const chainType = _chunkRUQYXEEGcjs.getChainType.call(void 0, chain);
|
|
15
|
+
switch (chainType) {
|
|
16
|
+
case "evm":
|
|
17
|
+
return _accounts.privateKeyToAccount.call(void 0, `0x${_utils.bytesToHex.call(void 0, keyBytes)}`).address;
|
|
18
|
+
case "solana":
|
|
19
|
+
return _web3js.Keypair.fromSeed(keyBytes).publicKey.toBase58();
|
|
20
|
+
case "stellar":
|
|
21
|
+
return _stellarsdk.Keypair.fromRawEd25519Seed(Buffer.from(keyBytes)).publicKey();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function deriveServerSignerDetails(signer, chain, projectId, environment) {
|
|
25
|
+
if (typeof window !== "undefined") {
|
|
26
|
+
throw new Error("Server signers can only be used from server-side code.");
|
|
27
|
+
}
|
|
28
|
+
const chainStr = typeof chain === "string" ? chain : String(chain);
|
|
29
|
+
const derivedKeyBytes = _chunkMNHK6EQKcjs.deriveKeyBytes.call(void 0, signer.secret, projectId, environment, chainStr);
|
|
30
|
+
const derivedAddress = deriveServerSignerAddress(derivedKeyBytes, chain);
|
|
31
|
+
return { derivedKeyBytes, derivedAddress };
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
exports.deriveServerSignerAddress = deriveServerSignerAddress; exports.deriveServerSignerDetails = deriveServerSignerDetails;
|
|
File without changes
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Wallet
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-VVPGO564.js";
|
|
4
|
+
import {
|
|
5
|
+
deriveServerSignerDetails
|
|
6
|
+
} from "./chunk-S2L5Z2ZT.js";
|
|
4
7
|
import {
|
|
5
8
|
toViemChain
|
|
6
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-X4SPF4KJ.js";
|
|
7
10
|
import {
|
|
8
11
|
InvalidTypedDataError,
|
|
9
12
|
SignatureNotCreatedError,
|
|
@@ -11,7 +14,7 @@ import {
|
|
|
11
14
|
} from "./chunk-SGINWAB6.js";
|
|
12
15
|
import {
|
|
13
16
|
walletsLogger
|
|
14
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-XEPUH4XH.js";
|
|
15
18
|
import {
|
|
16
19
|
__async,
|
|
17
20
|
__decorateClass
|
|
@@ -162,8 +165,14 @@ var _EVMWallet = class _EVMWallet extends Wallet {
|
|
|
162
165
|
}
|
|
163
166
|
createTransaction(transaction, options) {
|
|
164
167
|
return __async(this, null, function* () {
|
|
165
|
-
|
|
166
|
-
|
|
168
|
+
let signer;
|
|
169
|
+
if ((options == null ? void 0 : options.experimental_signer) == null) {
|
|
170
|
+
signer = this.signer.locator();
|
|
171
|
+
} else if (typeof options.experimental_signer === "string") {
|
|
172
|
+
signer = options.experimental_signer;
|
|
173
|
+
} else {
|
|
174
|
+
signer = `server:${deriveServerSignerDetails(options.experimental_signer, this.chain, this.apiClient.projectId, this.apiClient.environment).derivedAddress}`;
|
|
175
|
+
}
|
|
167
176
|
const transactionCreationResponse = yield this.apiClient.createTransaction(this.walletLocator, {
|
|
168
177
|
params: {
|
|
169
178
|
signer,
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunk4ZWUI6LEcjs = require('./chunk-4ZWUI6LE.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkKHY5FXO4cjs = require('./chunk-KHY5FXO4.cjs');
|
|
4
7
|
|
|
5
8
|
|
|
6
9
|
var _chunkXC2V34TScjs = require('./chunk-XC2V34TS.cjs');
|
|
7
10
|
|
|
8
11
|
|
|
9
|
-
var
|
|
12
|
+
var _chunk2M32LBCAcjs = require('./chunk-2M32LBCA.cjs');
|
|
10
13
|
|
|
11
14
|
|
|
12
15
|
|
|
@@ -14,7 +17,7 @@ var _chunkUO2J2ZB2cjs = require('./chunk-UO2J2ZB2.cjs');
|
|
|
14
17
|
|
|
15
18
|
// src/wallets/stellar.ts
|
|
16
19
|
var _commonsdkbase = require('@crossmint/common-sdk-base');
|
|
17
|
-
var _StellarWallet = class _StellarWallet extends
|
|
20
|
+
var _StellarWallet = class _StellarWallet extends _chunk4ZWUI6LEcjs.Wallet {
|
|
18
21
|
constructor(wallet) {
|
|
19
22
|
super(
|
|
20
23
|
{
|
|
@@ -22,10 +25,10 @@ var _StellarWallet = class _StellarWallet extends _chunkPOG76HDDcjs.Wallet {
|
|
|
22
25
|
address: wallet.address,
|
|
23
26
|
owner: wallet.owner,
|
|
24
27
|
signer: wallet.signer,
|
|
25
|
-
options:
|
|
28
|
+
options: _chunk4ZWUI6LEcjs.Wallet.getOptions(wallet),
|
|
26
29
|
alias: wallet.alias
|
|
27
30
|
},
|
|
28
|
-
|
|
31
|
+
_chunk4ZWUI6LEcjs.Wallet.getApiClient(wallet)
|
|
29
32
|
);
|
|
30
33
|
}
|
|
31
34
|
static from(wallet) {
|
|
@@ -37,11 +40,11 @@ var _StellarWallet = class _StellarWallet extends _chunkPOG76HDDcjs.Wallet {
|
|
|
37
40
|
sendTransaction(params) {
|
|
38
41
|
return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
|
|
39
42
|
var _a;
|
|
40
|
-
|
|
43
|
+
_chunk2M32LBCAcjs.walletsLogger.info("stellarWallet.sendTransaction.start");
|
|
41
44
|
yield this.preAuthIfNeeded();
|
|
42
45
|
const createdTransaction = yield this.createTransaction(params);
|
|
43
46
|
if ((_a = params.options) == null ? void 0 : _a.experimental_prepareOnly) {
|
|
44
|
-
|
|
47
|
+
_chunk2M32LBCAcjs.walletsLogger.info("stellarWallet.sendTransaction.prepared", {
|
|
45
48
|
transactionId: createdTransaction.id
|
|
46
49
|
});
|
|
47
50
|
return {
|
|
@@ -52,7 +55,7 @@ var _StellarWallet = class _StellarWallet extends _chunkPOG76HDDcjs.Wallet {
|
|
|
52
55
|
}
|
|
53
56
|
const options = {};
|
|
54
57
|
const result = yield this.approveTransactionAndWait(createdTransaction.id, options);
|
|
55
|
-
|
|
58
|
+
_chunk2M32LBCAcjs.walletsLogger.info("stellarWallet.sendTransaction.success", {
|
|
56
59
|
transactionId: createdTransaction.id,
|
|
57
60
|
hash: result.hash
|
|
58
61
|
});
|
|
@@ -61,9 +64,15 @@ var _StellarWallet = class _StellarWallet extends _chunkPOG76HDDcjs.Wallet {
|
|
|
61
64
|
}
|
|
62
65
|
createTransaction(params) {
|
|
63
66
|
return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
|
|
64
|
-
var _a;
|
|
65
67
|
const { contractId, options } = params;
|
|
66
|
-
|
|
68
|
+
let signer;
|
|
69
|
+
if ((options == null ? void 0 : options.experimental_signer) == null) {
|
|
70
|
+
signer = this.signer.locator();
|
|
71
|
+
} else if (typeof options.experimental_signer === "string") {
|
|
72
|
+
signer = options.experimental_signer;
|
|
73
|
+
} else {
|
|
74
|
+
signer = `server:${_chunkKHY5FXO4cjs.deriveServerSignerDetails.call(void 0, options.experimental_signer, this.chain, this.apiClient.projectId, this.apiClient.environment).derivedAddress}`;
|
|
75
|
+
}
|
|
67
76
|
let transaction;
|
|
68
77
|
if ("transaction" in params) {
|
|
69
78
|
transaction = {
|
|
@@ -96,7 +105,7 @@ var _StellarWallet = class _StellarWallet extends _chunkPOG76HDDcjs.Wallet {
|
|
|
96
105
|
};
|
|
97
106
|
_chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
|
|
98
107
|
_commonsdkbase.WithLoggerContext.call(void 0, {
|
|
99
|
-
logger:
|
|
108
|
+
logger: _chunk2M32LBCAcjs.walletsLogger,
|
|
100
109
|
methodName: "stellarWallet.sendTransaction",
|
|
101
110
|
buildContext(thisArg) {
|
|
102
111
|
return { chain: thisArg.chain, address: thisArg.address };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkRUQYXEEGcjs = require('./chunk-RUQYXEEG.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkDDNG224Jcjs = require('./chunk-DDNG224J.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _chunkHWTWDQYTcjs = require('./chunk-HWTWDQYT.cjs');
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
var _chunkOPKFMXPIcjs = require('./chunk-OPKFMXPI.cjs');
|
|
13
|
+
|
|
14
|
+
// src/signers/server/assemble-server-signer.ts
|
|
15
|
+
function assembleServerSigner(chain, config) {
|
|
16
|
+
const chainType = _chunkRUQYXEEGcjs.getChainType.call(void 0, chain);
|
|
17
|
+
switch (chainType) {
|
|
18
|
+
case "evm":
|
|
19
|
+
return new (0, _chunkDDNG224Jcjs.EVMServerSigner)(config);
|
|
20
|
+
case "solana":
|
|
21
|
+
return new (0, _chunkHWTWDQYTcjs.SolanaServerSigner)(config);
|
|
22
|
+
case "stellar":
|
|
23
|
+
return new (0, _chunkOPKFMXPIcjs.StellarServerSigner)(config);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
exports.assembleServerSigner = assembleServerSigner;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkNO2KMGS2cjs = require('./chunk-NO2KMGS2.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkP4XJHOLWcjs = require('./chunk-P4XJHOLW.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunk2M32LBCAcjs = require('./chunk-2M32LBCA.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
var _chunkUO2J2ZB2cjs = require('./chunk-UO2J2ZB2.cjs');
|
|
@@ -16,10 +16,10 @@ var _chunkUO2J2ZB2cjs = require('./chunk-UO2J2ZB2.cjs');
|
|
|
16
16
|
var _commonsdkbase = require('@crossmint/common-sdk-base');
|
|
17
17
|
var CrossmintWallets = class _CrossmintWallets {
|
|
18
18
|
constructor(crossmint) {
|
|
19
|
-
|
|
20
|
-
const apiClient = new (0,
|
|
21
|
-
this.walletFactory = new (0,
|
|
22
|
-
|
|
19
|
+
_chunk2M32LBCAcjs.initWalletsLogger.call(void 0, crossmint.apiKey);
|
|
20
|
+
const apiClient = new (0, _chunkP4XJHOLWcjs.ApiClient)(crossmint);
|
|
21
|
+
this.walletFactory = new (0, _chunkNO2KMGS2cjs.WalletFactory)(apiClient);
|
|
22
|
+
_chunk2M32LBCAcjs.walletsLogger.info("wallets.sdk.initialized");
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
25
|
* Initialize the Wallets SDK
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
+
var _chunkHTSQPZHWcjs = require('./chunk-HTSQPZHW.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
3
6
|
var _chunkNIBKCMQ2cjs = require('./chunk-NIBKCMQ2.cjs');
|
|
4
7
|
|
|
5
8
|
|
|
@@ -12,13 +15,10 @@ var _chunk7USEVMTWcjs = require('./chunk-7USEVMTW.cjs');
|
|
|
12
15
|
var _chunkF7L2TZ3Icjs = require('./chunk-F7L2TZ3I.cjs');
|
|
13
16
|
|
|
14
17
|
|
|
15
|
-
var _chunkHTSQPZHWcjs = require('./chunk-HTSQPZHW.cjs');
|
|
16
|
-
|
|
17
|
-
|
|
18
18
|
var _chunkXC2V34TScjs = require('./chunk-XC2V34TS.cjs');
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
var
|
|
21
|
+
var _chunk2M32LBCAcjs = require('./chunk-2M32LBCA.cjs');
|
|
22
22
|
|
|
23
23
|
// src/chains/chains.ts
|
|
24
24
|
var _commonsdkbase = require('@crossmint/common-sdk-base');
|
|
@@ -197,7 +197,7 @@ function validateChainForEnvironment(chain, environment) {
|
|
|
197
197
|
if (!isProductionEnv && isMainnetChain(evmChain)) {
|
|
198
198
|
const testnetEquivalent = mainnetToTestnet(evmChain);
|
|
199
199
|
if (testnetEquivalent != null) {
|
|
200
|
-
|
|
200
|
+
_chunk2M32LBCAcjs.walletsLogger.debug("validateChainForEnvironment.autoConverted", {
|
|
201
201
|
chain,
|
|
202
202
|
convertedTo: testnetEquivalent,
|
|
203
203
|
environment,
|
|
@@ -205,7 +205,7 @@ function validateChainForEnvironment(chain, environment) {
|
|
|
205
205
|
});
|
|
206
206
|
return testnetEquivalent;
|
|
207
207
|
}
|
|
208
|
-
|
|
208
|
+
_chunk2M32LBCAcjs.walletsLogger.debug("validateChainForEnvironment.mismatch", {
|
|
209
209
|
chain,
|
|
210
210
|
environment,
|
|
211
211
|
message: `Chain "${chain}" is a mainnet chain and should not be used in ${environment} environment. No testnet equivalent is available. Please use a testnet chain instead.`
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/utils/server-key-derivation.ts
|
|
2
|
+
var _hkdf = require('@noble/hashes/hkdf');
|
|
3
|
+
var _sha2 = require('@noble/hashes/sha2');
|
|
4
|
+
var _utils = require('@noble/hashes/utils');
|
|
5
|
+
var HKDF_SALT = "crossmint";
|
|
6
|
+
var SECRET_PREFIX = "xmsk1_";
|
|
7
|
+
function deriveKeyBytes(secret, projectId, environment, chain) {
|
|
8
|
+
const rawSecret = stripAndValidateSecret(secret);
|
|
9
|
+
const ikm = hexToBytes(rawSecret);
|
|
10
|
+
const algorithm = getAlgorithmForChain(chain);
|
|
11
|
+
const info = `${projectId}:${environment}:${chain}-${algorithm}`;
|
|
12
|
+
return _hkdf.hkdf.call(void 0, _sha2.sha256, ikm, HKDF_SALT, info, 32);
|
|
13
|
+
}
|
|
14
|
+
function deriveAlias(secret, projectId, environment, chain) {
|
|
15
|
+
const rawSecret = stripAndValidateSecret(secret);
|
|
16
|
+
const ikm = hexToBytes(rawSecret);
|
|
17
|
+
const info = `${projectId}:${environment}:${chain}-alias`;
|
|
18
|
+
const derived = _hkdf.hkdf.call(void 0, _sha2.sha256, ikm, HKDF_SALT, info, 17);
|
|
19
|
+
return `s-${_utils.bytesToHex.call(void 0, derived).slice(0, 34)}`;
|
|
20
|
+
}
|
|
21
|
+
var EXPECTED_SECRET_LENGTH = 64;
|
|
22
|
+
function stripAndValidateSecret(secret) {
|
|
23
|
+
const rawSecret = secret.startsWith(SECRET_PREFIX) ? secret.slice(SECRET_PREFIX.length) : secret;
|
|
24
|
+
if (rawSecret.length !== EXPECTED_SECRET_LENGTH) {
|
|
25
|
+
throw new Error(
|
|
26
|
+
`Invalid server signer secret: expected ${EXPECTED_SECRET_LENGTH}-char hex string (256-bit), got ${rawSecret.length} chars`
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
return rawSecret;
|
|
30
|
+
}
|
|
31
|
+
function getAlgorithmForChain(chain) {
|
|
32
|
+
if (chain === "solana") {
|
|
33
|
+
return "ed25519";
|
|
34
|
+
}
|
|
35
|
+
if (chain === "stellar") {
|
|
36
|
+
return "ed25519";
|
|
37
|
+
}
|
|
38
|
+
return "secp256k1";
|
|
39
|
+
}
|
|
40
|
+
function hexToBytes(hex) {
|
|
41
|
+
if (hex.length % 2 !== 0) {
|
|
42
|
+
throw new Error(`Invalid hex string: odd length (${hex.length})`);
|
|
43
|
+
}
|
|
44
|
+
if (!/^[0-9a-fA-F]+$/.test(hex)) {
|
|
45
|
+
throw new Error("Invalid hex string: contains non-hex characters");
|
|
46
|
+
}
|
|
47
|
+
const bytes = new Uint8Array(hex.length / 2);
|
|
48
|
+
for (let i = 0; i < hex.length; i += 2) {
|
|
49
|
+
bytes[i / 2] = parseInt(hex.slice(i, i + 2), 16);
|
|
50
|
+
}
|
|
51
|
+
return bytes;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
exports.deriveKeyBytes = deriveKeyBytes; exports.deriveAlias = deriveAlias;
|
|
@@ -4,20 +4,23 @@
|
|
|
4
4
|
var _chunkRBHGZDDXcjs = require('./chunk-RBHGZDDX.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunk4ZWUI6LEcjs = require('./chunk-4ZWUI6LE.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunk7W4HGN3Hcjs = require('./chunk-7W4HGN3H.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunkKHY5FXO4cjs = require('./chunk-KHY5FXO4.cjs');
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
var _chunkMIKWTXUAcjs = require('./chunk-MIKWTXUA.cjs');
|
|
14
17
|
|
|
15
18
|
|
|
16
19
|
|
|
17
20
|
var _chunkXC2V34TScjs = require('./chunk-XC2V34TS.cjs');
|
|
18
21
|
|
|
19
22
|
|
|
20
|
-
var
|
|
23
|
+
var _chunk2M32LBCAcjs = require('./chunk-2M32LBCA.cjs');
|
|
21
24
|
|
|
22
25
|
|
|
23
26
|
|
|
@@ -36,45 +39,45 @@ var WalletFactory = class {
|
|
|
36
39
|
getOrCreateWallet(args) {
|
|
37
40
|
return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
|
|
38
41
|
if (this.apiClient.isServerSide) {
|
|
39
|
-
|
|
42
|
+
_chunk2M32LBCAcjs.walletsLogger.error("walletFactory.getOrCreateWallet.error", {
|
|
40
43
|
error: "getOrCreateWallet can only be called from client-side code"
|
|
41
44
|
});
|
|
42
45
|
throw new (0, _chunkXC2V34TScjs.WalletCreationError)(
|
|
43
46
|
"getOrCreateWallet can only be called from client-side code.\n- Make sure you're running this in the browser (or another client environment), not on your server.\n- Use your Crossmint Client API Key (not a server key)."
|
|
44
47
|
);
|
|
45
48
|
}
|
|
46
|
-
args = _chunkUO2J2ZB2cjs.__spreadProps.call(void 0, _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, {}, args), { chain:
|
|
49
|
+
args = _chunkUO2J2ZB2cjs.__spreadProps.call(void 0, _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, {}, args), { chain: _chunkMIKWTXUAcjs.validateChainForEnvironment.call(void 0, args.chain, this.apiClient.environment) });
|
|
47
50
|
const locator = this.getWalletLocator(args);
|
|
48
|
-
|
|
51
|
+
_chunk2M32LBCAcjs.walletsLogger.info("walletFactory.getOrCreateWallet.start");
|
|
49
52
|
const existingWallet = yield this.apiClient.getWallet(locator);
|
|
50
53
|
if (existingWallet != null && !("error" in existingWallet)) {
|
|
51
|
-
|
|
54
|
+
_chunk2M32LBCAcjs.walletsLogger.info("walletFactory.getOrCreateWallet.existing", {
|
|
52
55
|
address: existingWallet.address
|
|
53
56
|
});
|
|
54
57
|
return this.createWalletInstance(existingWallet, args);
|
|
55
58
|
}
|
|
56
|
-
|
|
59
|
+
_chunk2M32LBCAcjs.walletsLogger.info("walletFactory.getOrCreateWallet.creating");
|
|
57
60
|
return this.createWalletInternal(args);
|
|
58
61
|
});
|
|
59
62
|
}
|
|
60
63
|
getWallet(walletLocator, args) {
|
|
61
64
|
return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
|
|
62
65
|
if (!this.apiClient.isServerSide) {
|
|
63
|
-
|
|
66
|
+
_chunk2M32LBCAcjs.walletsLogger.error("walletFactory.getWallet.error", {
|
|
64
67
|
error: "getWallet is not supported on client side"
|
|
65
68
|
});
|
|
66
69
|
throw new (0, _chunkXC2V34TScjs.WalletCreationError)("getWallet is not supported on client side, use getOrCreateWallet instead");
|
|
67
70
|
}
|
|
68
|
-
args = _chunkUO2J2ZB2cjs.__spreadProps.call(void 0, _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, {}, args), { chain:
|
|
69
|
-
|
|
71
|
+
args = _chunkUO2J2ZB2cjs.__spreadProps.call(void 0, _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, {}, args), { chain: _chunkMIKWTXUAcjs.validateChainForEnvironment.call(void 0, args.chain, this.apiClient.environment) });
|
|
72
|
+
_chunk2M32LBCAcjs.walletsLogger.info("walletFactory.getWallet.start");
|
|
70
73
|
const existingWallet = yield this.apiClient.getWallet(walletLocator);
|
|
71
74
|
if ("error" in existingWallet) {
|
|
72
|
-
|
|
75
|
+
_chunk2M32LBCAcjs.walletsLogger.warn("walletFactory.getWallet.notFound", {
|
|
73
76
|
error: existingWallet.error
|
|
74
77
|
});
|
|
75
78
|
throw new (0, _chunkXC2V34TScjs.WalletNotAvailableError)(JSON.stringify(existingWallet));
|
|
76
79
|
}
|
|
77
|
-
|
|
80
|
+
_chunk2M32LBCAcjs.walletsLogger.info("walletFactory.getWallet.success", {
|
|
78
81
|
address: existingWallet.address
|
|
79
82
|
});
|
|
80
83
|
return this.createWalletInstance(existingWallet, args);
|
|
@@ -82,33 +85,49 @@ var WalletFactory = class {
|
|
|
82
85
|
}
|
|
83
86
|
createWallet(args) {
|
|
84
87
|
return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
|
|
85
|
-
args = _chunkUO2J2ZB2cjs.__spreadProps.call(void 0, _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, {}, args), { chain:
|
|
88
|
+
args = _chunkUO2J2ZB2cjs.__spreadProps.call(void 0, _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, {}, args), { chain: _chunkMIKWTXUAcjs.validateChainForEnvironment.call(void 0, args.chain, this.apiClient.environment) });
|
|
86
89
|
return this.createWalletInternal(args);
|
|
87
90
|
});
|
|
88
91
|
}
|
|
89
92
|
createWalletInternal(args) {
|
|
90
93
|
return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
|
|
91
|
-
var _a, _b, _c, _d, _e;
|
|
94
|
+
var _a, _b, _c, _d, _e, _f;
|
|
92
95
|
yield (_c = (_b = (_a = args.options) == null ? void 0 : _a.experimental_callbacks) == null ? void 0 : _b.onWalletCreationStart) == null ? void 0 : _c.call(_b);
|
|
93
|
-
|
|
96
|
+
_chunk2M32LBCAcjs.walletsLogger.info("walletFactory.createWallet.start");
|
|
94
97
|
this.mutateSignerFromCustomAuth(args, true);
|
|
95
|
-
|
|
98
|
+
let adminSigner;
|
|
99
|
+
const delegatedSigners = (_d = args.delegatedSigners) == null ? void 0 : _d.map((ds) => ({
|
|
100
|
+
signer: typeof ds.signer === "object" && ds.signer.type === "server" ? `server:${_chunkKHY5FXO4cjs.deriveServerSignerDetails.call(void 0, ds.signer, args.chain, this.apiClient.projectId, this.apiClient.environment).derivedAddress}` : ds.signer
|
|
101
|
+
}));
|
|
102
|
+
if (args.signer.type === "passkey") {
|
|
103
|
+
adminSigner = yield this.createPasskeyAdminSigner(args.signer);
|
|
104
|
+
} else if (args.signer.type === "server") {
|
|
105
|
+
const { derivedAddress } = _chunkKHY5FXO4cjs.deriveServerSignerDetails.call(void 0,
|
|
106
|
+
args.signer,
|
|
107
|
+
args.chain,
|
|
108
|
+
this.apiClient.projectId,
|
|
109
|
+
this.apiClient.environment
|
|
110
|
+
);
|
|
111
|
+
adminSigner = { type: "server", address: derivedAddress };
|
|
112
|
+
} else {
|
|
113
|
+
adminSigner = args.signer;
|
|
114
|
+
}
|
|
96
115
|
const walletResponse = yield this.apiClient.createWallet({
|
|
97
116
|
type: "smart",
|
|
98
117
|
chainType: this.getChainType(args.chain),
|
|
99
118
|
config: _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, {
|
|
100
119
|
adminSigner
|
|
101
|
-
}, (args == null ? void 0 : args.plugins) ? { plugins: args.plugins } : {}),
|
|
102
|
-
owner: (
|
|
103
|
-
alias: (
|
|
120
|
+
}, (args == null ? void 0 : args.plugins) ? { plugins: args.plugins } : {}), delegatedSigners != null ? { delegatedSigners } : {}),
|
|
121
|
+
owner: (_e = args.owner) != null ? _e : void 0,
|
|
122
|
+
alias: (_f = args.alias) != null ? _f : void 0
|
|
104
123
|
});
|
|
105
124
|
if ("error" in walletResponse) {
|
|
106
|
-
|
|
125
|
+
_chunk2M32LBCAcjs.walletsLogger.error("walletFactory.createWallet.error", {
|
|
107
126
|
error: walletResponse.error
|
|
108
127
|
});
|
|
109
128
|
throw new (0, _chunkXC2V34TScjs.WalletCreationError)(JSON.stringify(walletResponse));
|
|
110
129
|
}
|
|
111
|
-
|
|
130
|
+
_chunk2M32LBCAcjs.walletsLogger.info("walletFactory.createWallet.success", {
|
|
112
131
|
address: walletResponse.address
|
|
113
132
|
});
|
|
114
133
|
return this.createWalletInstance(walletResponse, args);
|
|
@@ -116,21 +135,21 @@ var WalletFactory = class {
|
|
|
116
135
|
}
|
|
117
136
|
createWalletInstance(walletResponse, args) {
|
|
118
137
|
this.validateExistingWalletConfig(walletResponse, args);
|
|
119
|
-
const signerConfig = this.toInternalSignerConfig(walletResponse, args.signer, args.options);
|
|
120
|
-
return new (0,
|
|
138
|
+
const signerConfig = this.toInternalSignerConfig(walletResponse, args.signer, args.chain, args.options);
|
|
139
|
+
return new (0, _chunk4ZWUI6LEcjs.Wallet)(
|
|
121
140
|
{
|
|
122
141
|
chain: args.chain,
|
|
123
142
|
address: walletResponse.address,
|
|
124
143
|
owner: walletResponse.owner,
|
|
125
|
-
signer:
|
|
144
|
+
signer: _chunk7W4HGN3Hcjs.assembleSigner.call(void 0, args.chain, signerConfig),
|
|
126
145
|
options: args.options,
|
|
127
146
|
alias: args.alias
|
|
128
147
|
},
|
|
129
148
|
this.apiClient
|
|
130
149
|
);
|
|
131
150
|
}
|
|
132
|
-
toInternalSignerConfig(walletResponse, signerArgs, options) {
|
|
133
|
-
var _a, _b, _c, _d, _e, _f;
|
|
151
|
+
toInternalSignerConfig(walletResponse, signerArgs, chain, options) {
|
|
152
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
134
153
|
if (!(walletResponse.chainType === "evm" || walletResponse.chainType === "solana" || walletResponse.chainType === "stellar")) {
|
|
135
154
|
throw new (0, _chunkXC2V34TScjs.WalletCreationError)(`Wallet type ${walletResponse.chainType} is not supported`);
|
|
136
155
|
}
|
|
@@ -165,8 +184,31 @@ var WalletFactory = class {
|
|
|
165
184
|
onCreatePasskey: signerArgs.onCreatePasskey,
|
|
166
185
|
onSignWithPasskey: signerArgs.onSignWithPasskey
|
|
167
186
|
};
|
|
187
|
+
case "server": {
|
|
188
|
+
const serverAdminSigner = (_e = walletResponse.config) == null ? void 0 : _e.adminSigner;
|
|
189
|
+
if ((serverAdminSigner == null ? void 0 : serverAdminSigner.type) !== "server") {
|
|
190
|
+
throw new (0, _chunkXC2V34TScjs.WalletCreationError)("Server signer expects a server admin signer on the wallet");
|
|
191
|
+
}
|
|
192
|
+
const { derivedKeyBytes, derivedAddress } = _chunkKHY5FXO4cjs.deriveServerSignerDetails.call(void 0,
|
|
193
|
+
signerArgs,
|
|
194
|
+
chain,
|
|
195
|
+
this.apiClient.projectId,
|
|
196
|
+
this.apiClient.environment
|
|
197
|
+
);
|
|
198
|
+
if (serverAdminSigner.address !== derivedAddress) {
|
|
199
|
+
throw new (0, _chunkXC2V34TScjs.WalletCreationError)(
|
|
200
|
+
`Server signer address ${derivedAddress} does not match the wallet's admin signer address`
|
|
201
|
+
);
|
|
202
|
+
}
|
|
203
|
+
return {
|
|
204
|
+
type: "server",
|
|
205
|
+
derivedKeyBytes,
|
|
206
|
+
locator: serverAdminSigner.locator,
|
|
207
|
+
address: derivedAddress
|
|
208
|
+
};
|
|
209
|
+
}
|
|
168
210
|
case "email": {
|
|
169
|
-
if (((
|
|
211
|
+
if (((_f = walletResponse.config) == null ? void 0 : _f.adminSigner.type) !== "email") {
|
|
170
212
|
throw new (0, _chunkXC2V34TScjs.WalletCreationError)("Email signer does not match the wallet's signer type");
|
|
171
213
|
}
|
|
172
214
|
const { locator, email, address } = walletResponse.config.adminSigner;
|
|
@@ -181,7 +223,7 @@ var WalletFactory = class {
|
|
|
181
223
|
};
|
|
182
224
|
}
|
|
183
225
|
case "phone": {
|
|
184
|
-
if (((
|
|
226
|
+
if (((_g = walletResponse.config) == null ? void 0 : _g.adminSigner.type) !== "phone") {
|
|
185
227
|
throw new (0, _chunkXC2V34TScjs.WalletCreationError)("Phone signer does not match the wallet's signer type");
|
|
186
228
|
}
|
|
187
229
|
const { locator, phone, address } = walletResponse.config.adminSigner;
|
|
@@ -263,10 +305,10 @@ var WalletFactory = class {
|
|
|
263
305
|
_chunkRBHGZDDXcjs.compareSignerConfigs.call(void 0, adminSignerArgs, existingWalletSigner);
|
|
264
306
|
}
|
|
265
307
|
if (args.delegatedSigners != null) {
|
|
266
|
-
this.validateDelegatedSigners(existingWallet, args.delegatedSigners);
|
|
308
|
+
this.validateDelegatedSigners(existingWallet, args.delegatedSigners, args.chain);
|
|
267
309
|
}
|
|
268
310
|
}
|
|
269
|
-
validateDelegatedSigners(existingWallet, inputDelegatedSigners) {
|
|
311
|
+
validateDelegatedSigners(existingWallet, inputDelegatedSigners, chain) {
|
|
270
312
|
var _a;
|
|
271
313
|
const existingDelegatedSigners = (_a = existingWallet == null ? void 0 : existingWallet.config) == null ? void 0 : _a.delegatedSigners;
|
|
272
314
|
if (inputDelegatedSigners.length === 0) {
|
|
@@ -278,13 +320,14 @@ var WalletFactory = class {
|
|
|
278
320
|
);
|
|
279
321
|
}
|
|
280
322
|
for (const argSigner of inputDelegatedSigners) {
|
|
323
|
+
const resolvedSigner = typeof argSigner.signer === "object" && argSigner.signer.type === "server" ? `server:${_chunkKHY5FXO4cjs.deriveServerSignerDetails.call(void 0, argSigner.signer, chain, this.apiClient.projectId, this.apiClient.environment).derivedAddress}` : argSigner.signer;
|
|
281
324
|
const matchingExistingSigner = existingDelegatedSigners.find(
|
|
282
|
-
(existingSigner) => existingSigner.locator ===
|
|
325
|
+
(existingSigner) => existingSigner.locator === resolvedSigner
|
|
283
326
|
);
|
|
284
327
|
if (matchingExistingSigner == null) {
|
|
285
328
|
const walletSigners = existingDelegatedSigners.map((s) => s.locator).join(", ");
|
|
286
329
|
throw new (0, _chunkXC2V34TScjs.WalletCreationError)(
|
|
287
|
-
`Delegated signer '${
|
|
330
|
+
`Delegated signer '${resolvedSigner}' does not exist in wallet "${existingWallet.address}". Available delegated signers: ${walletSigners}. ${DELEGATED_SIGNER_MISMATCH_ERROR}`
|
|
288
331
|
);
|
|
289
332
|
}
|
|
290
333
|
}
|
|
@@ -301,7 +344,7 @@ var WalletFactory = class {
|
|
|
301
344
|
};
|
|
302
345
|
_chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
|
|
303
346
|
_commonsdkbase.WithLoggerContext.call(void 0, {
|
|
304
|
-
logger:
|
|
347
|
+
logger: _chunk2M32LBCAcjs.walletsLogger,
|
|
305
348
|
methodName: "walletFactory.getOrCreateWallet",
|
|
306
349
|
buildContext(_thisArg, args) {
|
|
307
350
|
const walletArgs = args[0];
|
|
@@ -311,7 +354,7 @@ _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
|
|
|
311
354
|
], WalletFactory.prototype, "getOrCreateWallet", 1);
|
|
312
355
|
_chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
|
|
313
356
|
_commonsdkbase.WithLoggerContext.call(void 0, {
|
|
314
|
-
logger:
|
|
357
|
+
logger: _chunk2M32LBCAcjs.walletsLogger,
|
|
315
358
|
methodName: "walletFactory.getWallet",
|
|
316
359
|
buildContext(_thisArg, args) {
|
|
317
360
|
const walletLocator = args[0];
|
|
@@ -322,7 +365,7 @@ _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
|
|
|
322
365
|
], WalletFactory.prototype, "getWallet", 1);
|
|
323
366
|
_chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
|
|
324
367
|
_commonsdkbase.WithLoggerContext.call(void 0, {
|
|
325
|
-
logger:
|
|
368
|
+
logger: _chunk2M32LBCAcjs.walletsLogger,
|
|
326
369
|
methodName: "walletFactory.createWallet",
|
|
327
370
|
buildContext(_thisArg, args) {
|
|
328
371
|
const walletArgs = args[0];
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkUO2J2ZB2cjs = require('./chunk-UO2J2ZB2.cjs');
|
|
4
|
+
|
|
5
|
+
// src/signers/server/stellar-server-signer.ts
|
|
6
|
+
var _stellarsdk = require('@stellar/stellar-sdk');
|
|
7
|
+
var StellarServerSigner = class {
|
|
8
|
+
constructor(config) {
|
|
9
|
+
this.type = "server";
|
|
10
|
+
this.keypair = _stellarsdk.Keypair.fromRawEd25519Seed(Buffer.from(config.derivedKeyBytes));
|
|
11
|
+
this._address = this.keypair.publicKey();
|
|
12
|
+
this._locator = config.locator;
|
|
13
|
+
}
|
|
14
|
+
address() {
|
|
15
|
+
return this._address;
|
|
16
|
+
}
|
|
17
|
+
locator() {
|
|
18
|
+
return this._locator;
|
|
19
|
+
}
|
|
20
|
+
signMessage(message) {
|
|
21
|
+
return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
|
|
22
|
+
if (!/^[A-Za-z0-9+/]*={0,2}$/.test(message)) {
|
|
23
|
+
throw new Error("StellarServerSigner.signMessage: expected a base64-encoded string");
|
|
24
|
+
}
|
|
25
|
+
const messageBytes = Buffer.from(message, "base64");
|
|
26
|
+
const signatureBytes = this.keypair.sign(messageBytes);
|
|
27
|
+
return { signature: signatureBytes.toString("base64") };
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
signTransaction(transaction) {
|
|
31
|
+
return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
|
|
32
|
+
return yield this.signMessage(transaction);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
exports.StellarServerSigner = StellarServerSigner;
|