diff --git a/explorer/package-lock.json b/explorer/package-lock.json
index b100ba9e35..7b971da91c 100644
--- a/explorer/package-lock.json
+++ b/explorer/package-lock.json
@@ -1269,9 +1269,8 @@
"integrity": "sha512-DetpxZw1fzPD5xUBrIAoplLChO2VB8DlL5Gg+I1IR9b2wPqYIca2WSUxL5g1vLeR4MsQq1NeWriXAVffV+U1Fw=="
},
"@solana/web3.js": {
- "version": "0.43.0",
- "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-0.43.0.tgz",
- "integrity": "sha512-Zf+UfoAuXdn8WwvYSVb8k4hQ484L2ZK6eXlW5EN048273Nks0+Sf44QrUpq2AhYVm6KAT7siyB8Nhgo0jQAG6A==",
+ "version": "github:jstarry/solana-web3.js#c7d8fe33877a9eae354b456e019ad5044c25eeb7",
+ "from": "github:jstarry/solana-web3.js#address-history",
"requires": {
"@babel/runtime": "^7.3.1",
"bn.js": "^5.0.0",
@@ -1296,9 +1295,9 @@
"integrity": "sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA=="
},
"buffer": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.5.0.tgz",
- "integrity": "sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww==",
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz",
+ "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==",
"requires": {
"base64-js": "^1.0.2",
"ieee754": "^1.1.4"
@@ -1627,9 +1626,9 @@
"integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g=="
},
"@types/express-serve-static-core": {
- "version": "4.17.3",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.3.tgz",
- "integrity": "sha512-sHEsvEzjqN+zLbqP+8OXTipc10yH1QLR+hnr5uw29gi9AhCAAAdri8ClNV7iMdrJrIzXIQtlkPvq8tJGhj3QJQ==",
+ "version": "4.17.5",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.5.tgz",
+ "integrity": "sha512-578YH5Lt88AKoADy0b2jQGwJtrBxezXtVe/MBqWXKZpqx91SnC0pVkVCcxcytz3lWW+cHBYDi3Ysh0WXc+rAYw==",
"requires": {
"@types/node": "*",
"@types/range-parser": "*"
@@ -1686,9 +1685,9 @@
"integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA=="
},
"@types/lodash": {
- "version": "4.14.149",
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.149.tgz",
- "integrity": "sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ=="
+ "version": "4.14.150",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.150.tgz",
+ "integrity": "sha512-kMNLM5JBcasgYscD9x/Gvr6lTAv2NVgsKtet/hm93qMyf/D1pt+7jeEZklKJKxMVmXjxbRVQQGfqDSfipYCO6w=="
},
"@types/minimatch": {
"version": "3.0.3",
@@ -7205,9 +7204,9 @@
}
},
"jayson": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.2.0.tgz",
- "integrity": "sha512-DZQnwA57GcStw4soSYB2VntWXFfoWvmSarlaWePDYOWhjxT72PBM4atEBomaTaS1uqk3jFC9UO9AyWjlujo3xw==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.2.1.tgz",
+ "integrity": "sha512-8YfxxjQdcSVMr0/+7B1+aGUFAI+yQYfTWBOI+rq+PBu35HL7nJ3wayC2fTXeUJZqad/I4UoDwMtBTNVWJ9rzlg==",
"requires": {
"@types/connect": "^3.4.32",
"@types/express-serve-static-core": "^4.16.9",
diff --git a/explorer/package.json b/explorer/package.json
index 776eca134a..d23d5aeef1 100644
--- a/explorer/package.json
+++ b/explorer/package.json
@@ -3,7 +3,7 @@
"version": "0.1.0",
"private": true,
"dependencies": {
- "@solana/web3.js": "^0.43.0",
+ "@solana/web3.js": "github:jstarry/solana-web3.js#address-history",
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.3.2",
"@testing-library/user-event": "^7.1.2",
diff --git a/explorer/src/App.tsx b/explorer/src/App.tsx
index 4135728beb..df3daba384 100644
--- a/explorer/src/App.tsx
+++ b/explorer/src/App.tsx
@@ -8,13 +8,19 @@ import {
useTransactions,
ActionType
} from "./providers/transactions";
-import { AccountsProvider } from "./providers/accounts";
+import {
+ AccountsProvider,
+ useSelectedAccount,
+ useAccountsDispatch,
+ ActionType as AccountActionType
+} from "./providers/accounts";
import { BlocksProvider } from "./providers/blocks";
import ClusterStatusButton from "./components/ClusterStatusButton";
import AccountsCard from "./components/AccountsCard";
import TransactionsCard from "./components/TransactionsCard";
import ClusterModal from "./components/ClusterModal";
import TransactionModal from "./components/TransactionModal";
+import AccountModal from "./components/AccountModal";
import Logo from "./img/logos-solana/light-explorer-logo.svg";
import { useCurrentTab, Tab } from "./providers/tab";
@@ -31,6 +37,7 @@ function App() {
onClose={() => setShowClusterModal(false)}
/>
+