Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

devop: prep release #509

Open
wants to merge 84 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
d586da7
devop: sol stuff
kvhnuke Jun 25, 2024
d1b0c01
devop: sol
kvhnuke Jun 25, 2024
e6dcc32
devop: sol stuff
kvhnuke Jun 26, 2024
4e32be2
Merge branch 'fix/watch-login-lag' into feat/solana
kvhnuke Jun 27, 2024
ea979a0
devop: update
kvhnuke Jul 23, 2024
2d94264
devop: merge
kvhnuke Jul 31, 2024
958e59e
devop: solana tokens
kvhnuke Jul 31, 2024
7e8d6ec
devop: solana send screen
kvhnuke Aug 1, 2024
65927c8
devop: more solana additions
kvhnuke Aug 2, 2024
51a6559
devop: minor changes
kvhnuke Aug 5, 2024
2da005e
devop: fix priority fees
kvhnuke Aug 6, 2024
28713b6
fix: minor issue
kvhnuke Aug 7, 2024
e418920
feat: nft send
kvhnuke Aug 8, 2024
c143051
devop: solana wallet-standard connection
kvhnuke Aug 13, 2024
90fe8a0
devop: solana verify tx
kvhnuke Aug 14, 2024
f764970
devop: solana verify tx
kvhnuke Aug 14, 2024
5ee1d99
wip: add changelly to rootstock
NickKelly1 Aug 15, 2024
a244001
chore: cleanup
NickKelly1 Aug 15, 2024
8028cec
devop: changelly changes for rsk
kvhnuke Aug 15, 2024
ffbe73d
wip: change uppercase solana network id
NickKelly1 Aug 15, 2024
05c372f
devop: add rango swap to blast and telos
NickKelly1 Aug 16, 2024
503d6ac
Merge branch 'devop/release-prep' into devop/rootstock-changelly-blas…
NickKelly1 Aug 16, 2024
5314c88
Merge pull request #499 from enkryptcom/develop
kvhnuke Aug 21, 2024
4b038a9
fix: okc activity
NickKelly1 Aug 23, 2024
32e7098
devop: add coti devnet network
NickKelly1 Aug 24, 2024
ad978e9
devop: clear existing value in address field on paste
ahsan-javaiid Aug 27, 2024
7679949
feat: btc ledger support
kvhnuke Aug 27, 2024
da9a4c3
wip: adding jupiter swap
NickKelly1 Aug 28, 2024
0ad5e21
fix: jumbled file
NickKelly1 Aug 28, 2024
3964cd0
fix: ledger btc address error
kvhnuke Aug 28, 2024
d0c406d
feat: add trezor support to btc
kvhnuke Aug 29, 2024
4e3f1b0
feat: add trezor support for litecoin
kvhnuke Aug 29, 2024
8ea64a0
feat: add ledger support for litecoin
kvhnuke Aug 29, 2024
671d356
devop: add latest ledger supported evm networks
kvhnuke Aug 29, 2024
ecd39c4
fix: typescript build issue
kvhnuke Aug 29, 2024
5407955
fix: build
kvhnuke Aug 29, 2024
656412c
feat: add ledger support for dogecoin
kvhnuke Aug 30, 2024
b4a69bd
feat: add trezor support for dogecoin
kvhnuke Aug 30, 2024
f0afe1f
devop: minor comment
kvhnuke Aug 30, 2024
28ade35
feat: automatic jupiter fee account creation, fix: some swap bug
NickKelly1 Sep 3, 2024
d5cc0f1
chore: lint
NickKelly1 Sep 3, 2024
59e9c38
devop: sol address change event
kvhnuke Sep 3, 2024
3824ce1
fix: hw btc,ltc,doge accounts
kvhnuke Sep 4, 2024
86d0fd1
fix: hw btc,ltc,doge accounts
kvhnuke Sep 4, 2024
0a671cc
fix: hw btc,ltc,doge accounts
kvhnuke Sep 4, 2024
9e8b152
devop: properly calculate op chain tx fees
kvhnuke Sep 4, 2024
ab40f11
fix: paraswap
kvhnuke Sep 5, 2024
760c396
fix: paraswap
kvhnuke Sep 5, 2024
4f82f96
fix: reconcile solana swap fees, chore: cleanup
NickKelly1 Sep 5, 2024
f24b369
chore: lint
NickKelly1 Sep 5, 2024
4d5e716
chore: cleanup
NickKelly1 Sep 5, 2024
7517c26
chore: cleanup
NickKelly1 Sep 5, 2024
f77d9a1
chore: cleanup
NickKelly1 Sep 5, 2024
4c6aa88
fix: error message typo
NickKelly1 Sep 5, 2024
6f7c81b
chore: comments
NickKelly1 Sep 5, 2024
cc8d518
devop: merge develop
kvhnuke Sep 5, 2024
1795622
Merge pull request #507 from enkryptcom/devop/op-fees
kvhnuke Sep 5, 2024
6007c38
fix: build
kvhnuke Sep 5, 2024
34625e7
devop: pr review fixes
NickKelly1 Sep 5, 2024
b81f6ba
devop: lets wait a day
kvhnuke Sep 5, 2024
3727354
feat: add support for changelly on solana
NickKelly1 Sep 6, 2024
296fd35
wip: adding rango swap to solana
NickKelly1 Sep 6, 2024
a6f8b7b
fix: rango swap solana issue
NickKelly1 Sep 6, 2024
a0fa430
Merge pull request #508 from enkryptcom/fix/swap-activity
kvhnuke Sep 9, 2024
f2cb9dd
devop: merge
kvhnuke Sep 9, 2024
40a70db
Merge branch 'devop/prep-release' of github.com:enkryptcom/enKrypt in…
kvhnuke Sep 9, 2024
9dc801d
Merge pull request #504 from enkryptcom/feat/hw-signer
kvhnuke Sep 9, 2024
906f4fe
Merge branch 'devop/add-coti-devnet-network' into devop/prep-release
kvhnuke Sep 9, 2024
6582c23
Merge pull request #502 from ahsan-javaiid/fix/address-input
kvhnuke Sep 9, 2024
49702db
devop: merge
kvhnuke Sep 9, 2024
d849356
Merge pull request #493 from enkryptcom/devop/rootstock-changelly-bla…
kvhnuke Sep 9, 2024
71cc237
Merge pull request #500 from enkryptcom/fix/okc-activity
kvhnuke Sep 9, 2024
acfe8ab
devop: merge
kvhnuke Sep 9, 2024
a27809e
Merge pull request #503 from enkryptcom/devop/add-jupiter-swap
kvhnuke Sep 9, 2024
a36a6b1
devop: package updates
kvhnuke Sep 9, 2024
199a5aa
fix: tests
kvhnuke Sep 9, 2024
e3e0768
chore: swap
kvhnuke Sep 9, 2024
5b22281
devop: add dapps to sol
kvhnuke Sep 9, 2024
08e84b3
fix: support for different token addresses in jupiter swap on solana
NickKelly1 Sep 10, 2024
b66fd25
chore: jupiter tests, fix: swap tests
NickKelly1 Sep 10, 2024
c8b18bb
chore: renaming
NickKelly1 Sep 10, 2024
fdd5b95
chore: switch from fetch to node-fetch to make gha tests pass
NickKelly1 Sep 10, 2024
f5c1465
devop: merge
kvhnuke Sep 10, 2024
3531a96
Merge pull request #510 from enkryptcom/fix/jupiter-swap-to-address
kvhnuke Sep 10, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,18 @@
"prepare": "husky"
},
"devDependencies": {
"@commitlint/cli": "^19.3.0",
"@commitlint/config-conventional": "^19.2.2",
"@swc/core": "^1.7.6",
"@commitlint/cli": "^19.4.1",
"@commitlint/config-conventional": "^19.4.1",
"@swc/core": "^1.7.24",
"concurrently": "^8.2.2",
"husky": "^9.1.4",
"husky": "^9.1.5",
"node-notifier": "^10.0.1",
"nodemon": "^3.1.4",
"ultra-runner": "^3.10.5"
},
"resolutions": {
"@ledgerhq/compressjs": "https://registry.yarnpkg.com/@favware/skip-dependency/-/skip-dependency-1.2.1.tgz",
"@noble/hashes": "^1.4.0"
"@noble/hashes": "^1.4.0",
"fork-ts-checker-webpack-plugin": "^6.5.3"
}
}
10 changes: 5 additions & 5 deletions packages/extension-bridge/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,24 +39,24 @@
"webextension-polyfill": "^0.12.0"
},
"devDependencies": {
"@types/chai": "^4.3.17",
"@types/chai": "^4.3.19",
"@types/mocha": "^10.0.7",
"@types/node": "^20.14.14",
"@types/node": "^20.16.5",
"@types/webextension-polyfill": "^0.10.7",
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
"bumpp": "^9.4.2",
"bumpp": "^9.5.2",
"eslint": "^8.57.0",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-config-prettier": "^8.10.0",
"eslint-import-resolver-alias": "^1.1.2",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-import": "^2.30.0",
"eslint-plugin-module-resolver": "^1.5.0",
"prettier": "^2.8.8",
"ts-node": "^10.9.2",
"tsconfig-paths": "^4.2.0",
"tsup": "^8.2.4",
"type-fest": "^4.23.0",
"type-fest": "^4.26.1",
"typescript": "^4.9.5",
"typescript-eslint": "0.0.1-alpha.0"
}
Expand Down
6 changes: 5 additions & 1 deletion packages/extension/configs/rollup.config.base.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import nodeResolve from "@rollup/plugin-node-resolve";
import { uglify } from "rollup-plugin-uglify";
import inject from "@rollup/plugin-inject";
import replace from "@rollup/plugin-replace";
import json from "@rollup/plugin-json";
import packageJson from "../package.json" assert { type: "json" };

/** @typedef {import('rollup').InputOptions} InputOptions */
Expand All @@ -27,8 +28,11 @@ const base = {
__VERSION__: JSON.stringify(packageJson.version),
__IS_OPERA__: process.env.BROWSER === "opera-edge",
}),
typescript(),
typescript({
exclude: [/node_modules/],
}),
commonjs(),
json(),
inject({
Buffer: ["buffer", "Buffer"],
}),
Expand Down
61 changes: 36 additions & 25 deletions packages/extension/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@enkryptcom/extension",
"version": "1.43.0",
"version": "1.44.0",
"private": true,
"scripts": {
"zip": "cd dist; zip -r release.zip *;",
Expand All @@ -21,8 +21,8 @@
"watch-vue-firefox": "cross-env BROWSER='firefox' vue-cli-service build --watch --no-clean"
},
"dependencies": {
"@amplitude/analytics-browser": "^2.10.0",
"@babel/runtime": "^7.25.0",
"@amplitude/analytics-browser": "^2.11.2",
"@babel/runtime": "^7.25.6",
"@enkryptcom/extension-bridge": "workspace:^",
"@enkryptcom/hw-wallets": "workspace:^",
"@enkryptcom/keyring": "workspace:^",
Expand All @@ -31,26 +31,35 @@
"@enkryptcom/swap": "workspace:^",
"@enkryptcom/types": "workspace:^",
"@enkryptcom/utils": "workspace:^",
"@ethereumjs/common": "^4.3.0",
"@ethereumjs/tx": "^5.3.0",
"@ethereumjs/util": "^9.0.3",
"@ethereumjs/common": "^4.4.0",
"@ethereumjs/tx": "^5.4.0",
"@ethereumjs/util": "^9.1.0",
"@kadena/client": "^1.13.0",
"@ledgerhq/hw-transport-webusb": "^6.29.2",
"@metamask/eth-sig-util": "^7.0.3",
"@metaplex-foundation/mpl-bubblegum": "^4.2.1",
"@metaplex-foundation/umi": "^0.9.2",
"@metaplex-foundation/umi-bundle-defaults": "^0.9.2",
"@rollup/plugin-replace": "^5.0.7",
"@types/chrome": "^0.0.269",
"@solana-developers/helpers": "^2.5.4",
"@solana/spl-token": "^0.4.8",
"@solana/wallet-standard-features": "^1.2.0",
"@solana/web3.js": "^1.95.3",
"@types/chrome": "^0.0.270",
"@types/events": "^3.0.3",
"@types/less": "^3.0.6",
"@types/lodash": "^4.17.7",
"@types/utf-8-validate": "^5.0.2",
"@vueuse/core": "^10.11.0",
"@vueuse/core": "^10.11.1",
"@wallet-standard/base": "^0.0.0-20240703212708",
"add": "^2.0.6",
"bignumber.js": "^9.1.2",
"bip39": "^3.1.0",
"bitcoinjs-lib": "^6.1.6",
"bs58": "^6.0.0",
"chai": "^4.5.0",
"concurrently": "^8.2.2",
"core-js": "^3.38.0",
"core-js": "^3.38.1",
"echarts": "^5.5.1",
"ethereum-cryptography": "^2.2.1",
"ethereumjs-abi": "^0.6.8",
Expand All @@ -61,15 +70,15 @@
"moment": "^2.30.1",
"nanoevents": "^9.0.0",
"pact-lang-api": "^4.3.6",
"pinia": "^2.2.0",
"pinia": "^2.2.2",
"qrcode.vue": "^3.4.1",
"switch-ts": "^1.1.1",
"url-parse": "^1.5.10",
"uuid": "^10.0.0",
"vue": "^3.4.35",
"vue-echarts": "7.0.1",
"vue-router": "4.4.2",
"vue3-lottie": "^3.3.0",
"vue": "^3.5.3",
"vue-echarts": "7.0.3",
"vue-router": "4.4.3",
"vue3-lottie": "^3.3.1",
"vuedraggable": "^4.1.0",
"web3-eth": "^1.10.4",
"web3-utils": "^1.10.4",
Expand All @@ -79,25 +88,27 @@
"devDependencies": {
"@babel/plugin-transform-class-static-block": "^7.24.7",
"@kadena/pactjs-cli": "^1.13.0",
"@polkadot/api": "^12.2.3",
"@polkadot/extension-inject": "^0.50.1",
"@polkadot/api": "^12.4.2",
"@polkadot/extension-inject": "^0.52.3",
"@polkadot/keyring": "^13.0.2",
"@polkadot/rpc-provider": "^12.2.3",
"@polkadot/types": "^12.2.3",
"@polkadot/types-known": "^12.2.3",
"@polkadot/ui-shared": "^3.8.3",
"@polkadot/rpc-provider": "^12.4.2",
"@polkadot/types": "^12.4.2",
"@polkadot/types-known": "^12.4.2",
"@polkadot/ui-shared": "^3.9.1",
"@polkadot/util": "^13.0.2",
"@polkadot/wasm-crypto": "^7.3.2",
"@rollup/plugin-commonjs": "^26.0.1",
"@rollup/plugin-inject": "^5.0.5",
"@rollup/plugin-json": "^6.1.0",
"@rollup/plugin-node-resolve": "^15.2.3",
"@rollup/plugin-typescript": "^11.1.6",
"@types/bs58": "^4.0.4",
"@types/ethereumjs-abi": "^0.6.5",
"@types/mocha": "^10.0.7",
"@types/url-parse": "^1.4.11",
"@types/uuid": "^10.0.0",
"@types/wif": "^2.0.5",
"@types/zxcvbn": "^4.4.4",
"@types/zxcvbn": "^4.4.5",
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
"@vue/cli-plugin-babel": "~5.0.8",
Expand All @@ -115,19 +126,19 @@
"https-browserify": "^1.0.0",
"less": "^4.2.0",
"less-loader": "^12.2.0",
"mocha": "^10.7.0",
"mocha": "^10.7.3",
"path-browserify": "^1.0.1",
"prettier": "^2.8.8",
"rimraf": "^6.0.1",
"rollup": "^4.20.0",
"rollup": "^4.21.2",
"rollup-plugin-uglify": "^6.0.4",
"semver": "^7.6.3",
"stream-browserify": "^3.0.0",
"stream-http": "^3.2.0",
"systeminformation": "^5.23.3",
"systeminformation": "^5.23.5",
"ts-mocha": "^10.0.0",
"tsconfig-paths": "^4.2.0",
"typescript": "^4.9.5",
"typescript": "^5.6.2",
"url": "^0.11.4",
"webextension-polyfill": "^0.12.0"
},
Expand Down
4 changes: 2 additions & 2 deletions packages/extension/src/libs/background/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,12 @@ import {
InternalOnMessageResponse,
Message,
} from "@/types/messenger";
import { RPCRequestType } from "@enkryptcom/types";
import { RPCRequestType, OnMessageResponse } from "@enkryptcom/types";
import { v4 as randomUUID } from "uuid";
import { getCustomError } from "../error";
import KeyRingBase from "../keyring/keyring";
import { sendToWindow } from "@/libs/messenger/extension";
import { ProviderName } from "@/types/provider";
import { OnMessageResponse } from "@enkryptcom/types";
import Providers from "@/providers";
import Browser from "webextension-polyfill";
import TabInfo from "@/libs/utils/tab-info";
Expand Down Expand Up @@ -48,6 +47,7 @@ class BackgroundHandler {
[ProviderName.polkadot]: {},
[ProviderName.bitcoin]: {},
[ProviderName.kadena]: {},
[ProviderName.solana]: {},
};
this.#providers = Providers;
}
Expand Down
10 changes: 8 additions & 2 deletions packages/extension/src/libs/background/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,25 @@ import BitcoinProvider from "@/providers/bitcoin";
import type EthereumProvider from "@/providers/ethereum";
import type PolkadotProvider from "@/providers/polkadot";
import type KadenaProvider from "@/providers/kadena";
import SolanaProvider from "@/providers/solana";

export interface TabProviderType {
[key: string]: Record<
number,
EthereumProvider | PolkadotProvider | BitcoinProvider | KadenaProvider
| EthereumProvider
| PolkadotProvider
| BitcoinProvider
| KadenaProvider
| SolanaProvider
>;
}
export interface ProviderType {
[key: string]:
| typeof EthereumProvider
| typeof PolkadotProvider
| typeof BitcoinProvider
| typeof KadenaProvider;
| typeof KadenaProvider
| typeof SolanaProvider;
}
export interface ExternalMessageOptions {
savePersistentEvents: boolean;
Expand Down
7 changes: 4 additions & 3 deletions packages/extension/src/libs/cache-fetch/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,16 @@ const cacheFetch = async (
return fetch(options.url, fetchOptions)
.then((res) => res.json())
.then((json) => {
const jsonstring = JSON.stringify(json);
const jsondata = options.postProcess ? options.postProcess(json) : json;
const jsonstring = JSON.stringify(jsondata);
if (!jsonstring.includes("error")) {
const store: StoredData = {
timestamp: new Date().getTime(),
data: jsonstring,
};
return storage.set(hash, store).then(() => json);
return storage.set(hash, store).then(() => jsondata);
}
return json;
return jsondata;
});
}
};
Expand Down
1 change: 1 addition & 0 deletions packages/extension/src/libs/cache-fetch/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ export interface RequestOptions {
url: string;
post?: Record<string, any>;
headers?: Record<string, any>;
postProcess?: (data: any) => any;
}
export interface StoredData {
timestamp: number;
Expand Down
2 changes: 2 additions & 0 deletions packages/extension/src/libs/dapp-list/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@ const lists: Partial<Record<NetworkNames, string>> = {
"https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/dapps/scroll.json",
[NetworkNames.Rari]:
"https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/dapps/rari.json",
[NetworkNames.Solana]:
"https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/dapps/sol.json",
};

export default lists;
95 changes: 95 additions & 0 deletions packages/extension/src/libs/nft-handlers/simplehash-solana.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
import { NFTCollection, NFTItem, NFTType } from "@/types/nft";
import { NodeType } from "@/types/provider";
import cacheFetch from "../cache-fetch";
import { NetworkNames } from "@enkryptcom/types";
import { SHNFTType, SHResponse, SHSolanaNFTType } from "./types/simplehash";
const SH_ENDPOINT = "https://partners.mewapi.io/nfts/";
const CACHE_TTL = 60 * 1000;
const SolanaTokenPrograms = {
Bubblegum: "BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY",
Token: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
};
export default async (
network: NodeType,
address: string
): Promise<NFTCollection[]> => {
const supportedNetworks = {
[NetworkNames.Solana]: "solana",
};
if (!Object.keys(supportedNetworks).includes(network.name))
throw new Error("Simplehash: network not supported");
let allItems: SHSolanaNFTType[] = [];
const fetchAll = (continuation?: string): Promise<void> => {
const query = continuation
? continuation
: `${SH_ENDPOINT}owners_v2?chains=${
supportedNetworks[network.name as keyof typeof supportedNetworks]
}&wallet_addresses=${network.displayAddress(
address
)}&filters=spam_score__lte=50`;
return cacheFetch(
{
url: query,
},
CACHE_TTL
).then((json) => {
const items: SHNFTType[] = (json.result as SHResponse).nfts;
allItems = allItems.concat(items as SHSolanaNFTType[]);
if (json.result.next) return fetchAll(json.result.next);
});
};
await fetchAll();
if (!allItems || !allItems.length) return [];
const collections: Record<string, NFTCollection> = {};
allItems.forEach((item) => {
if (!item.image_url && !item.previews.image_medium_url) return;
if (
item.extra_metadata.token_program !== SolanaTokenPrograms.Bubblegum &&
item.extra_metadata.token_program !== SolanaTokenPrograms.Token
)
return;
if (collections[item.collection.collection_id]) {
const tItem: NFTItem = {
contract: item.contract_address,
id: item.nft_id,
image: item.image_url || item.previews.image_medium_url,
name: item.name,
url: item.collection.marketplace_pages.length
? item.collection.marketplace_pages[0].nft_url
: `https://magiceden.io/item-details/${item.contract_address}`,
type:
item.extra_metadata.token_program === SolanaTokenPrograms.Bubblegum
? NFTType.SolanaBGUM
: NFTType.SolanaToken,
};
collections[item.collection.collection_id].items.push(tItem);
} else {
const ret: NFTCollection = {
name: item.collection.name,
description: item.collection.description,
image:
item.collection.image_url ||
require("@action/assets/common/not-found.jpg"),
contract: item.contract_address,
items: [
{
contract: item.contract_address,
id: item.nft_id,
image: item.image_url || item.previews.image_medium_url,
name: item.name,
url: item.collection.marketplace_pages.length
? item.collection.marketplace_pages[0].nft_url
: `https://magiceden.io/item-details/${item.contract_address}`,
type:
item.extra_metadata.token_program ===
SolanaTokenPrograms.Bubblegum
? NFTType.SolanaBGUM
: NFTType.SolanaToken,
},
],
};
collections[item.collection.collection_id] = ret;
}
});
return Object.values(collections);
};
Loading
Loading