@formo/analytics 1.16.2 → 1.16.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/FormoAnalytics.d.ts +2 -2
- package/dist/cjs/src/FormoAnalytics.d.ts.map +1 -1
- package/dist/cjs/src/FormoAnalytics.js +57 -48
- package/dist/cjs/src/FormoAnalytics.js.map +1 -1
- package/dist/cjs/src/lib/queue/EventQueue.js +2 -2
- package/dist/cjs/src/lib/queue/EventQueue.js.map +1 -1
- package/dist/cjs/src/validators/index.d.ts +1 -0
- package/dist/cjs/src/validators/index.d.ts.map +1 -1
- package/dist/cjs/src/validators/index.js +1 -0
- package/dist/cjs/src/validators/index.js.map +1 -1
- package/dist/cjs/src/validators/network.d.ts +2 -0
- package/dist/cjs/src/validators/network.d.ts.map +1 -0
- package/dist/cjs/src/validators/network.js +31 -0
- package/dist/cjs/src/validators/network.js.map +1 -0
- package/dist/cjs/test/utils/address.spec.d.ts +2 -0
- package/dist/cjs/test/utils/address.spec.d.ts.map +1 -0
- package/dist/cjs/test/utils/address.spec.js +12 -0
- package/dist/cjs/test/utils/address.spec.js.map +1 -0
- package/dist/cjs/test/utils/converter.spec.d.ts +2 -0
- package/dist/cjs/test/utils/converter.spec.d.ts.map +1 -0
- package/dist/cjs/test/utils/converter.spec.js +25 -0
- package/dist/cjs/test/utils/converter.spec.js.map +1 -0
- package/dist/cjs/test/validators/address.spec.d.ts +2 -0
- package/dist/cjs/test/validators/address.spec.d.ts.map +1 -0
- package/dist/cjs/test/validators/address.spec.js +14 -0
- package/dist/cjs/test/validators/address.spec.js.map +1 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/src/FormoAnalytics.d.ts +2 -2
- package/dist/esm/src/FormoAnalytics.d.ts.map +1 -1
- package/dist/esm/src/FormoAnalytics.js +57 -48
- package/dist/esm/src/FormoAnalytics.js.map +1 -1
- package/dist/esm/src/lib/queue/EventQueue.js +1 -1
- package/dist/esm/src/lib/queue/EventQueue.js.map +1 -1
- package/dist/esm/src/validators/index.d.ts +1 -0
- package/dist/esm/src/validators/index.d.ts.map +1 -1
- package/dist/esm/src/validators/index.js +1 -0
- package/dist/esm/src/validators/index.js.map +1 -1
- package/dist/esm/src/validators/network.d.ts +2 -0
- package/dist/esm/src/validators/network.d.ts.map +1 -0
- package/dist/esm/src/validators/network.js +28 -0
- package/dist/esm/src/validators/network.js.map +1 -0
- package/dist/esm/test/utils/address.spec.d.ts +2 -0
- package/dist/esm/test/utils/address.spec.d.ts.map +1 -0
- package/dist/esm/test/utils/address.spec.js +10 -0
- package/dist/esm/test/utils/address.spec.js.map +1 -0
- package/dist/esm/test/utils/converter.spec.d.ts +2 -0
- package/dist/esm/test/utils/converter.spec.d.ts.map +1 -0
- package/dist/esm/test/utils/converter.spec.js +23 -0
- package/dist/esm/test/utils/converter.spec.js.map +1 -0
- package/dist/esm/test/validators/address.spec.d.ts +2 -0
- package/dist/esm/test/validators/address.spec.d.ts.map +1 -0
- package/dist/esm/test/validators/address.spec.js +12 -0
- package/dist/esm/test/validators/address.spec.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/index.umd.min.js.map +1 -1
- package/package.json +2 -3
- package/src/FormoAnalytics.ts +5 -4
- package/src/lib/queue/EventQueue.ts +1 -1
- package/src/validators/index.ts +1 -0
- package/src/validators/network.ts +34 -0
- package/test/utils/address.spec.ts +14 -0
- package/test/utils/converter.spec.ts +31 -0
- package/test/validators/address.spec.ts +15 -0
- package/dist/cjs/test/lib.spec.d.ts +0 -2
- package/dist/cjs/test/lib.spec.d.ts.map +0 -1
- package/dist/cjs/test/lib.spec.js +0 -40
- package/dist/cjs/test/lib.spec.js.map +0 -1
- package/dist/esm/test/lib.spec.d.ts +0 -2
- package/dist/esm/test/lib.spec.d.ts.map +0 -1
- package/dist/esm/test/lib.spec.js +0 -38
- package/dist/esm/test/lib.spec.js.map +0 -1
- package/test/lib.spec.ts +0 -55
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@formo/analytics",
|
|
3
|
-
"version": "1.16.
|
|
3
|
+
"version": "1.16.4",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/getformo/sdk.git"
|
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"ethereum-cryptography": "^3.1.0",
|
|
25
25
|
"fetch-retry": "^6.0.0",
|
|
26
|
-
"is-network-error": "^1.1.0",
|
|
27
26
|
"mipd": "^0.0.7"
|
|
28
27
|
},
|
|
29
28
|
"devDependencies": {
|
|
@@ -87,7 +86,7 @@
|
|
|
87
86
|
"size-limit": [
|
|
88
87
|
{
|
|
89
88
|
"path": "dist/index.umd.min.js",
|
|
90
|
-
"limit": "
|
|
89
|
+
"limit": "25 KB"
|
|
91
90
|
}
|
|
92
91
|
],
|
|
93
92
|
"peerDependencies": {
|
package/src/FormoAnalytics.ts
CHANGED
|
@@ -54,7 +54,7 @@ interface IFormoAnalytics {
|
|
|
54
54
|
transactionHash?: string;
|
|
55
55
|
}): Promise<void>;
|
|
56
56
|
identify(
|
|
57
|
-
params
|
|
57
|
+
params?:
|
|
58
58
|
| {
|
|
59
59
|
address: Address | null;
|
|
60
60
|
providerName?: string;
|
|
@@ -318,7 +318,7 @@ export class FormoAnalytics implements IFormoAnalytics {
|
|
|
318
318
|
* @returns {Promise<void>}
|
|
319
319
|
*/
|
|
320
320
|
public async identify(
|
|
321
|
-
params
|
|
321
|
+
params?:
|
|
322
322
|
| {
|
|
323
323
|
address: Address | null;
|
|
324
324
|
providerName?: string;
|
|
@@ -327,9 +327,10 @@ export class FormoAnalytics implements IFormoAnalytics {
|
|
|
327
327
|
}
|
|
328
328
|
| readonly EIP6963ProviderDetail[]
|
|
329
329
|
): Promise<void> {
|
|
330
|
-
if (isArray(params)) {
|
|
330
|
+
if (isArray(params) || !params) {
|
|
331
|
+
const providers = isArray(params) ? params : await this.getProviders();
|
|
331
332
|
try {
|
|
332
|
-
for (const eip6963ProviderDetail of
|
|
333
|
+
for (const eip6963ProviderDetail of providers) {
|
|
333
334
|
if (!eip6963ProviderDetail) continue;
|
|
334
335
|
const accounts = await this.getAccounts(
|
|
335
336
|
eip6963ProviderDetail?.provider
|
package/src/validators/index.ts
CHANGED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const objectToString = Object.prototype.toString;
|
|
2
|
+
|
|
3
|
+
const isError = (value: any) => objectToString.call(value) === "[object Error]";
|
|
4
|
+
|
|
5
|
+
const errorMessages = new Set([
|
|
6
|
+
"network error", // Chrome
|
|
7
|
+
"Failed to fetch", // Chrome
|
|
8
|
+
"NetworkError when attempting to fetch resource.", // Firefox
|
|
9
|
+
"The Internet connection appears to be offline.", // Safari 16
|
|
10
|
+
"Load failed", // Safari 17+
|
|
11
|
+
"Network request failed", // `cross-fetch`
|
|
12
|
+
"fetch failed", // Undici (Node.js)
|
|
13
|
+
"terminated", // Undici (Node.js)
|
|
14
|
+
]);
|
|
15
|
+
|
|
16
|
+
export function isNetworkError(error: any) {
|
|
17
|
+
const isValid =
|
|
18
|
+
error &&
|
|
19
|
+
isError(error) &&
|
|
20
|
+
error.name === "TypeError" &&
|
|
21
|
+
typeof error.message === "string";
|
|
22
|
+
|
|
23
|
+
if (!isValid) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// We do an extra check for Safari 17+ as it has a very generic error message.
|
|
28
|
+
// Network errors in Safari have no stack.
|
|
29
|
+
if (error.message === "Load failed") {
|
|
30
|
+
return error.stack === undefined;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return errorMessages.has(error.message);
|
|
34
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { describe, it } from "mocha";
|
|
2
|
+
import { expect } from "chai";
|
|
3
|
+
import { toChecksumAddress } from "../../src/utils";
|
|
4
|
+
|
|
5
|
+
describe("toChecksumAddress", () => {
|
|
6
|
+
it("should return the checksum of the address", () => {
|
|
7
|
+
expect(
|
|
8
|
+
toChecksumAddress("0x82827Bc8342a16b681AfbA6B979E3D1aE5F28a0e")
|
|
9
|
+
).to.equal("0x82827Bc8342a16b681AfbA6B979E3D1aE5F28a0e");
|
|
10
|
+
expect(
|
|
11
|
+
toChecksumAddress("0x82827bc8342a16b681afba6b979e3d1ae5f28a0e")
|
|
12
|
+
).to.equal("0x82827Bc8342a16b681AfbA6B979E3D1aE5F28a0e");
|
|
13
|
+
});
|
|
14
|
+
});
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { describe, it } from "mocha";
|
|
2
|
+
import { expect } from "chai";
|
|
3
|
+
import { toSnakeCase } from "../../src/utils";
|
|
4
|
+
|
|
5
|
+
describe("toSnakeCase", () => {
|
|
6
|
+
it("should convert object keys to snake case", () => {
|
|
7
|
+
expect(
|
|
8
|
+
toSnakeCase({ chainId: "12345", hashMessage: "John Doe" })
|
|
9
|
+
).to.deep.equal({
|
|
10
|
+
chain_id: "12345",
|
|
11
|
+
hash_message: "John Doe",
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it("should convert object keys to snake case, omitting keys in the omitKeys array", () => {
|
|
16
|
+
expect(
|
|
17
|
+
toSnakeCase(
|
|
18
|
+
{
|
|
19
|
+
chainId: "12345",
|
|
20
|
+
hashMessage: "John Doe",
|
|
21
|
+
"user-agent": "Mozilla/5.0",
|
|
22
|
+
},
|
|
23
|
+
["user-agent"]
|
|
24
|
+
)
|
|
25
|
+
).to.deep.equal({
|
|
26
|
+
chain_id: "12345",
|
|
27
|
+
hash_message: "John Doe",
|
|
28
|
+
"user-agent": "Mozilla/5.0",
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { expect } from "chai";
|
|
2
|
+
import { describe, it } from "mocha";
|
|
3
|
+
import { isAddress } from "../../src/validators";
|
|
4
|
+
|
|
5
|
+
describe("isAddress", () => {
|
|
6
|
+
it("should return true if the input is a valid ethereum address", () => {
|
|
7
|
+
expect(isAddress("0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC")).to.equal(
|
|
8
|
+
true
|
|
9
|
+
);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
it("should return false otherwise", () => {
|
|
13
|
+
expect(isAddress("o")).to.equal(false);
|
|
14
|
+
});
|
|
15
|
+
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lib.spec.d.ts","sourceRoot":"","sources":["../../../test/lib.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var mocha_1 = require("mocha");
|
|
4
|
-
var utils_1 = require("../src/utils");
|
|
5
|
-
var validators_1 = require("../src/validators");
|
|
6
|
-
var chai_1 = require("chai");
|
|
7
|
-
(0, mocha_1.describe)("toSnakeCase", function () {
|
|
8
|
-
(0, mocha_1.it)("should convert object keys to snake case", function () {
|
|
9
|
-
(0, chai_1.expect)((0, utils_1.toSnakeCase)({ chainId: "12345", hashMessage: "John Doe" })).to.deep.equal({
|
|
10
|
-
chain_id: "12345",
|
|
11
|
-
hash_message: "John Doe",
|
|
12
|
-
});
|
|
13
|
-
});
|
|
14
|
-
(0, mocha_1.it)("should convert object keys to snake case, omitting keys in the omitKeys array", function () {
|
|
15
|
-
(0, chai_1.expect)((0, utils_1.toSnakeCase)({
|
|
16
|
-
chainId: "12345",
|
|
17
|
-
hashMessage: "John Doe",
|
|
18
|
-
"user-agent": "Mozilla/5.0",
|
|
19
|
-
}, ["user-agent"])).to.deep.equal({
|
|
20
|
-
chain_id: "12345",
|
|
21
|
-
hash_message: "John Doe",
|
|
22
|
-
"user-agent": "Mozilla/5.0",
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
(0, mocha_1.describe)("isAddress", function () {
|
|
27
|
-
(0, mocha_1.it)("should return true if the input is a valid ethereum address", function () {
|
|
28
|
-
(0, chai_1.expect)((0, validators_1.isAddress)("0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC")).to.equal(true);
|
|
29
|
-
});
|
|
30
|
-
(0, mocha_1.it)("should return false otherwise", function () {
|
|
31
|
-
(0, chai_1.expect)((0, validators_1.isAddress)("o")).to.equal(false);
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
(0, mocha_1.describe)("toChecksumAddress", function () {
|
|
35
|
-
(0, mocha_1.it)("should return the checksum of the address", function () {
|
|
36
|
-
(0, chai_1.expect)((0, utils_1.toChecksumAddress)("0x82827Bc8342a16b681AfbA6B979E3D1aE5F28a0e")).to.equal("0x82827Bc8342a16b681AfbA6B979E3D1aE5F28a0e");
|
|
37
|
-
(0, chai_1.expect)((0, utils_1.toChecksumAddress)("0x82827bc8342a16b681afba6b979e3d1ae5f28a0e")).to.equal("0x82827Bc8342a16b681AfbA6B979E3D1aE5F28a0e");
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
//# sourceMappingURL=lib.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lib.spec.js","sourceRoot":"","sources":["../../../test/lib.spec.ts"],"names":[],"mappings":";;AAAA,+BAAqC;AACrC,sCAA8D;AAC9D,gDAA8C;AAC9C,6BAA8B;AAE9B,IAAA,gBAAQ,EAAC,aAAa,EAAE;IACtB,IAAA,UAAE,EAAC,0CAA0C,EAAE;QAC7C,IAAA,aAAM,EACJ,IAAA,mBAAW,EAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAC3D,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACd,QAAQ,EAAE,OAAO;YACjB,YAAY,EAAE,UAAU;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,UAAE,EAAC,+EAA+E,EAAE;QAClF,IAAA,aAAM,EACJ,IAAA,mBAAW,EACT;YACE,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,UAAU;YACvB,YAAY,EAAE,aAAa;SAC5B,EACD,CAAC,YAAY,CAAC,CACf,CACF,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACd,QAAQ,EAAE,OAAO;YACjB,YAAY,EAAE,UAAU;YACxB,YAAY,EAAE,aAAa;SAC5B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,gBAAQ,EAAC,WAAW,EAAE;IACpB,IAAA,UAAE,EAAC,6DAA6D,EAAE;QAChE,IAAA,aAAM,EAAC,IAAA,sBAAS,EAAC,4CAA4C,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CACtE,IAAI,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,UAAE,EAAC,+BAA+B,EAAE;QAClC,IAAA,aAAM,EAAC,IAAA,sBAAS,EAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,gBAAQ,EAAC,mBAAmB,EAAE;IAC5B,IAAA,UAAE,EAAC,2CAA2C,EAAE;QAC9C,IAAA,aAAM,EACJ,IAAA,yBAAiB,EAAC,4CAA4C,CAAC,CAChE,CAAC,EAAE,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACzD,IAAA,aAAM,EACJ,IAAA,yBAAiB,EAAC,4CAA4C,CAAC,CAChE,CAAC,EAAE,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lib.spec.d.ts","sourceRoot":"","sources":["../../../test/lib.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { describe, it } from "mocha";
|
|
2
|
-
import { toChecksumAddress, toSnakeCase } from "../src/utils";
|
|
3
|
-
import { isAddress } from "../src/validators";
|
|
4
|
-
import { expect } from "chai";
|
|
5
|
-
describe("toSnakeCase", function () {
|
|
6
|
-
it("should convert object keys to snake case", function () {
|
|
7
|
-
expect(toSnakeCase({ chainId: "12345", hashMessage: "John Doe" })).to.deep.equal({
|
|
8
|
-
chain_id: "12345",
|
|
9
|
-
hash_message: "John Doe",
|
|
10
|
-
});
|
|
11
|
-
});
|
|
12
|
-
it("should convert object keys to snake case, omitting keys in the omitKeys array", function () {
|
|
13
|
-
expect(toSnakeCase({
|
|
14
|
-
chainId: "12345",
|
|
15
|
-
hashMessage: "John Doe",
|
|
16
|
-
"user-agent": "Mozilla/5.0",
|
|
17
|
-
}, ["user-agent"])).to.deep.equal({
|
|
18
|
-
chain_id: "12345",
|
|
19
|
-
hash_message: "John Doe",
|
|
20
|
-
"user-agent": "Mozilla/5.0",
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
describe("isAddress", function () {
|
|
25
|
-
it("should return true if the input is a valid ethereum address", function () {
|
|
26
|
-
expect(isAddress("0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC")).to.equal(true);
|
|
27
|
-
});
|
|
28
|
-
it("should return false otherwise", function () {
|
|
29
|
-
expect(isAddress("o")).to.equal(false);
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
describe("toChecksumAddress", function () {
|
|
33
|
-
it("should return the checksum of the address", function () {
|
|
34
|
-
expect(toChecksumAddress("0x82827Bc8342a16b681AfbA6B979E3D1aE5F28a0e")).to.equal("0x82827Bc8342a16b681AfbA6B979E3D1aE5F28a0e");
|
|
35
|
-
expect(toChecksumAddress("0x82827bc8342a16b681afba6b979e3d1ae5f28a0e")).to.equal("0x82827Bc8342a16b681AfbA6B979E3D1aE5F28a0e");
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
//# sourceMappingURL=lib.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lib.spec.js","sourceRoot":"","sources":["../../../test/lib.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,QAAQ,CAAC,aAAa,EAAE;IACtB,EAAE,CAAC,0CAA0C,EAAE;QAC7C,MAAM,CACJ,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAC3D,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACd,QAAQ,EAAE,OAAO;YACjB,YAAY,EAAE,UAAU;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE;QAClF,MAAM,CACJ,WAAW,CACT;YACE,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,UAAU;YACvB,YAAY,EAAE,aAAa;SAC5B,EACD,CAAC,YAAY,CAAC,CACf,CACF,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACd,QAAQ,EAAE,OAAO;YACjB,YAAY,EAAE,UAAU;YACxB,YAAY,EAAE,aAAa;SAC5B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,WAAW,EAAE;IACpB,EAAE,CAAC,6DAA6D,EAAE;QAChE,MAAM,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CACtE,IAAI,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE;QAClC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mBAAmB,EAAE;IAC5B,EAAE,CAAC,2CAA2C,EAAE;QAC9C,MAAM,CACJ,iBAAiB,CAAC,4CAA4C,CAAC,CAChE,CAAC,EAAE,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACzD,MAAM,CACJ,iBAAiB,CAAC,4CAA4C,CAAC,CAChE,CAAC,EAAE,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/test/lib.spec.ts
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { describe, it } from "mocha";
|
|
2
|
-
import { toChecksumAddress, toSnakeCase } from "../src/utils";
|
|
3
|
-
import { isAddress } from "../src/validators";
|
|
4
|
-
import { expect } from "chai";
|
|
5
|
-
|
|
6
|
-
describe("toSnakeCase", () => {
|
|
7
|
-
it("should convert object keys to snake case", () => {
|
|
8
|
-
expect(
|
|
9
|
-
toSnakeCase({ chainId: "12345", hashMessage: "John Doe" })
|
|
10
|
-
).to.deep.equal({
|
|
11
|
-
chain_id: "12345",
|
|
12
|
-
hash_message: "John Doe",
|
|
13
|
-
});
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
it("should convert object keys to snake case, omitting keys in the omitKeys array", () => {
|
|
17
|
-
expect(
|
|
18
|
-
toSnakeCase(
|
|
19
|
-
{
|
|
20
|
-
chainId: "12345",
|
|
21
|
-
hashMessage: "John Doe",
|
|
22
|
-
"user-agent": "Mozilla/5.0",
|
|
23
|
-
},
|
|
24
|
-
["user-agent"]
|
|
25
|
-
)
|
|
26
|
-
).to.deep.equal({
|
|
27
|
-
chain_id: "12345",
|
|
28
|
-
hash_message: "John Doe",
|
|
29
|
-
"user-agent": "Mozilla/5.0",
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
describe("isAddress", () => {
|
|
35
|
-
it("should return true if the input is a valid ethereum address", () => {
|
|
36
|
-
expect(isAddress("0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC")).to.equal(
|
|
37
|
-
true
|
|
38
|
-
);
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
it("should return false otherwise", () => {
|
|
42
|
-
expect(isAddress("o")).to.equal(false);
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
describe("toChecksumAddress", () => {
|
|
47
|
-
it("should return the checksum of the address", () => {
|
|
48
|
-
expect(
|
|
49
|
-
toChecksumAddress("0x82827Bc8342a16b681AfbA6B979E3D1aE5F28a0e")
|
|
50
|
-
).to.equal("0x82827Bc8342a16b681AfbA6B979E3D1aE5F28a0e");
|
|
51
|
-
expect(
|
|
52
|
-
toChecksumAddress("0x82827bc8342a16b681afba6b979e3d1ae5f28a0e")
|
|
53
|
-
).to.equal("0x82827Bc8342a16b681AfbA6B979E3D1aE5F28a0e");
|
|
54
|
-
});
|
|
55
|
-
});
|