@dubsdotapp/expo 0.2.51 → 0.2.52
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/index.js +14 -39
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +14 -39
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -5
- package/src/index.ts +3 -0
- package/src/polyfill.ts +23 -0
- package/src/wallet/phantom-deeplink/crypto.ts +0 -45
- package/src/wallet/phantom-deeplink/ensure-self.ts +0 -9
package/dist/index.js
CHANGED
|
@@ -77,6 +77,20 @@ __export(index_exports, {
|
|
|
77
77
|
});
|
|
78
78
|
module.exports = __toCommonJS(index_exports);
|
|
79
79
|
|
|
80
|
+
// src/polyfill.ts
|
|
81
|
+
var import_expo_crypto = require("expo-crypto");
|
|
82
|
+
if (typeof global !== "undefined") {
|
|
83
|
+
if (typeof global.crypto !== "object") {
|
|
84
|
+
global.crypto = {};
|
|
85
|
+
}
|
|
86
|
+
if (typeof global.crypto.getRandomValues !== "function") {
|
|
87
|
+
global.crypto.getRandomValues = import_expo_crypto.getRandomValues;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (typeof self === "undefined" && typeof globalThis !== "undefined") {
|
|
91
|
+
globalThis.self = globalThis;
|
|
92
|
+
}
|
|
93
|
+
|
|
80
94
|
// src/constants.ts
|
|
81
95
|
var DEFAULT_BASE_URL = "https://dubs-server-prod-9c91d3f01199.herokuapp.com/api/developer/v1";
|
|
82
96
|
var DEFAULT_RPC_URL = "https://api.mainnet-beta.solana.com";
|
|
@@ -800,48 +814,10 @@ var MwaWalletAdapter = class {
|
|
|
800
814
|
var import_web32 = require("@solana/web3.js");
|
|
801
815
|
var import_bs582 = __toESM(require("bs58"));
|
|
802
816
|
|
|
803
|
-
// src/wallet/phantom-deeplink/ensure-self.ts
|
|
804
|
-
if (typeof self === "undefined") {
|
|
805
|
-
if (typeof globalThis !== "undefined") {
|
|
806
|
-
globalThis.self = globalThis;
|
|
807
|
-
}
|
|
808
|
-
}
|
|
809
|
-
|
|
810
817
|
// src/wallet/phantom-deeplink/crypto.ts
|
|
811
818
|
var import_tweetnacl = __toESM(require("tweetnacl"));
|
|
812
819
|
var import_bs58 = __toESM(require("bs58"));
|
|
813
|
-
var prngChecked = false;
|
|
814
|
-
function ensurePRNG() {
|
|
815
|
-
if (prngChecked) return;
|
|
816
|
-
prngChecked = true;
|
|
817
|
-
try {
|
|
818
|
-
import_tweetnacl.default.randomBytes(1);
|
|
819
|
-
return;
|
|
820
|
-
} catch {
|
|
821
|
-
}
|
|
822
|
-
const g = typeof globalThis !== "undefined" ? globalThis : void 0;
|
|
823
|
-
if (g?.crypto?.getRandomValues) {
|
|
824
|
-
import_tweetnacl.default.setPRNG((x, n) => {
|
|
825
|
-
const v = new Uint8Array(n);
|
|
826
|
-
g.crypto.getRandomValues(v);
|
|
827
|
-
for (let i = 0; i < n; i++) x[i] = v[i];
|
|
828
|
-
});
|
|
829
|
-
return;
|
|
830
|
-
}
|
|
831
|
-
try {
|
|
832
|
-
const { getRandomValues } = require("expo-crypto");
|
|
833
|
-
import_tweetnacl.default.setPRNG((x, n) => {
|
|
834
|
-
const v = new Uint8Array(n);
|
|
835
|
-
getRandomValues(v);
|
|
836
|
-
for (let i = 0; i < n; i++) x[i] = v[i];
|
|
837
|
-
});
|
|
838
|
-
return;
|
|
839
|
-
} catch {
|
|
840
|
-
}
|
|
841
|
-
console.error("[Dubs] No PRNG available \u2014 crypto operations will fail. Install expo-crypto or use Hermes.");
|
|
842
|
-
}
|
|
843
820
|
function generateKeyPair() {
|
|
844
|
-
ensurePRNG();
|
|
845
821
|
const kp = import_tweetnacl.default.box.keyPair();
|
|
846
822
|
return { publicKey: kp.publicKey, secretKey: kp.secretKey };
|
|
847
823
|
}
|
|
@@ -849,7 +825,6 @@ function deriveSharedSecret(ourSecretKey, theirPublicKey) {
|
|
|
849
825
|
return import_tweetnacl.default.box.before(theirPublicKey, ourSecretKey);
|
|
850
826
|
}
|
|
851
827
|
function encryptPayload(payload, sharedSecret) {
|
|
852
|
-
ensurePRNG();
|
|
853
828
|
const nonce = import_tweetnacl.default.randomBytes(24);
|
|
854
829
|
const message = new TextEncoder().encode(JSON.stringify(payload));
|
|
855
830
|
const encrypted = import_tweetnacl.default.box.after(message, nonce, sharedSecret);
|