Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
171 commits
Select commit Hold shift + click to select a range
4a22b61
fix(pnl): resolve infinite % pnl and high execution price warnings
aldin4u Dec 17, 2025
a588138
fix(pnl): resolve type inference error for usdcChainId
aldin4u Dec 17, 2025
fa3b50d
fix(pnl): implement transaction deduplication and robust decimal dete…
aldin4u Dec 18, 2025
15379a6
fix(pnl): resolve CI lint errors in pnl.ts
aldin4u Dec 18, 2025
696d9ff
fix(pnl): skip calculation for balances < /bin/zsh.50 to avoid dust w…
aldin4u Dec 18, 2025
83db7aa
fix(pnl): simplify fallback logic and remove unnecessary type casts
aldin4u Dec 18, 2025
7111316
chore: skip CardsSwap tests and fix formatting in useTokenPnL.ts
aldin4u Dec 18, 2025
b3d06e9
changes as per feedback
vignesha22 Dec 19, 2025
5cef011
fixed lint
vignesha22 Dec 19, 2025
af8bbc8
bumped up some more gas for MTS and shown the calculation of USDC
vignesha22 Dec 22, 2025
87c91cf
fixed lint
vignesha22 Dec 22, 2025
9237fb4
fix(pulse): token selector responsiveness and daily price change data
aldin4u Dec 23, 2025
15a2774
feat: Add Perps trading app with Hyperliquid integration
aldin4u Dec 23, 2025
6f3fb95
refactor: Remove all Supabase references from perps app
aldin4u Dec 23, 2025
6a2f78c
chore: Remove temp files from git tracking
aldin4u Dec 23, 2025
2626678
unit mismatch bug
vignesha22 Jan 5, 2026
8029b36
feat(perps): Add sparkline chart, global account storage, and validat…
aldin4u Jan 6, 2026
9c227ad
Merge perp branch updates into perps
aldin4u Jan 6, 2026
c6b97bd
feat(perps): UX/UI improvements based on product design audit
aldin4u Jan 6, 2026
6ba304e
feat(perps): Add mobile-first redesign with responsive detection
aldin4u Jan 6, 2026
8c30b40
feat(perps): Set BTC as default asset and remove status banner
aldin4u Jan 6, 2026
50de434
feat(perps): Enhance AssetSelector with market data and sorting
aldin4u Jan 6, 2026
ac4a4de
fix(perps): Correct AssetSelector API response parsing
aldin4u Jan 6, 2026
7de7959
feat(perps): Add comprehensive market data to chart
aldin4u Jan 6, 2026
69d3b76
refactor(perps): Implement horizontal market data ticker
aldin4u Jan 6, 2026
c0f429a
style(perps): Fix horizontal ticker layout using flexbox
aldin4u Jan 6, 2026
7d9e08d
style(perps): Move market ticker to top-right corner
aldin4u Jan 6, 2026
b9e475b
style(perps): Enforce top-right ticker alignment
aldin4u Jan 6, 2026
60e9c31
revert(perps): Revert mobile-specific view and fix ticker alignment
aldin4u Jan 6, 2026
adafe01
style(perps): Finalize top-right ticker alignment without relative po…
aldin4u Jan 6, 2026
aabc2bd
style(perps): Align ticker to price baseline and reduce polling
aldin4u Jan 6, 2026
0d29cff
fix(perps): Improve ticker alignment and reduce API polling
aldin4u Jan 6, 2026
22abdfe
fix(perps): Final ticker alignment to top-right corner
aldin4u Jan 6, 2026
3629aec
fix(perps): Resolve stacked layout on laptop screens
aldin4u Jan 6, 2026
62c9b65
style(perps): Final typography alignment for header
aldin4u Jan 6, 2026
a40aea7
style(perps): Finalize mobile ticker optimization
aldin4u Jan 6, 2026
20817fb
feat(perps): Implement true JS split for responsive header
aldin4u Jan 6, 2026
337a35f
max button fixed on buy
vignesha22 Jan 6, 2026
7fdc96a
fixed lint issues
vignesha22 Jan 6, 2026
a092f67
changed as per code rabbit feedback
vignesha22 Jan 6, 2026
055a6fb
fix: refactor asset loading for instant strategy paste
aldin4u Jan 6, 2026
35d5bbc
chore: apply prettier formatting
aldin4u Jan 6, 2026
bcc6853
fix: resolve build OOM by lazy loading pillarx-app in Lobby
aldin4u Jan 6, 2026
8c5c554
fix: resolve package-lock.json conflict by regeneration
aldin4u Jan 6, 2026
6cfeb4d
updated snapshot
vignesha22 Jan 7, 2026
0bb637f
updated as per feedback
vignesha22 Jan 7, 2026
d7f0a94
fix: build issues, linting, and regenerate lockfile for deployment
aldin4u Jan 7, 2026
a6fbe25
fix: syntax error in MobilePositionsCard
aldin4u Jan 7, 2026
b16a1e8
fix: move Wrapper definition to fix no-use-before-define lint error
aldin4u Jan 7, 2026
3993187
fix: increase node memory limit for build to 4GB
aldin4u Jan 7, 2026
6703f36
Merge pull request #486 from pillarwallet/MTS_Fee_Calculation
vignesha22 Jan 7, 2026
26d997c
chore: revert unintentional formatting changes to insights app
aldin4u Jan 7, 2026
33b0586
feat: implement click-to-load asset for positions
aldin4u Jan 7, 2026
d1414ff
fix(perps): map raw asset to AssetInfo for click-to-load
aldin4u Jan 7, 2026
ceeec85
fix(perps): robust click-to-load with fallback fetching and price enr…
aldin4u Jan 7, 2026
aa01e7e
refactor(perps): centralized asset selection logic
aldin4u Jan 7, 2026
311e952
fix(perps): restore missing variables in Index.tsx
aldin4u Jan 7, 2026
3f48bb5
feat(perps): implement click-to-load asset with conditional scroll
aldin4u Jan 7, 2026
345fcd9
Merge pull request #493 from pillarwallet/PRO-3885-MaxButtonFix
vignesha22 Jan 7, 2026
c8ae0d8
fix(perps): remove duplicate identifier in MobilePositionsCard
aldin4u Jan 7, 2026
bd68cda
fix(tests): mock env var to resolve snapshot mismatch
aldin4u Jan 7, 2026
f11602d
feat(perps): UI refinements and imported account restrictions
aldin4u Jan 7, 2026
78fc7b5
chore: remove unused token logo generation script and constants
aldin4u Jan 7, 2026
d20140b
fix: increase Node.js heap size to 8GB for build
aldin4u Jan 8, 2026
f73c58c
feat: Add Copy Strategy button to Insights signal cards
aldin4u Jan 8, 2026
02a37d8
chore: remove test script for Hyperliquid flow
aldin4u Jan 8, 2026
9c7de98
chore: revert unrelated developer-apps changes
aldin4u Jan 8, 2026
966b9f9
chore: revert all non-perps changes to create pure perps branch
aldin4u Jan 8, 2026
53b77ed
refactor(perps): improve type safety, optimization, and bug fixes
aldin4u Jan 8, 2026
f2712f1
feat: implement PIN-based encrypted wallet storage
aldin4u Jan 8, 2026
50c3644
fix(agent): resolve duplicate imports and syntax error
aldin4u Jan 8, 2026
a4af822
fix(agent): remove duplicate function declaration
aldin4u Jan 8, 2026
4e587a6
fix(agent): restore missing closing divs
aldin4u Jan 8, 2026
c9edd49
fix(agent): ensure modals are reachable by moving them out of conditi…
aldin4u Jan 8, 2026
cda6d02
fix(keystore): define missing cache variable
aldin4u Jan 8, 2026
174de53
feat(agent): encrypt imported wallets with PIN
aldin4u Jan 8, 2026
d31fd30
feat(agent): add private key display modal
aldin4u Jan 8, 2026
419ba7a
style(agent): improve PIN input UI and update copy
aldin4u Jan 8, 2026
9991f40
fix(agent): restore useState import
aldin4u Jan 8, 2026
4cd75c0
style(agent): update locked status label
aldin4u Jan 8, 2026
534c3b6
fix(agent): hot-load cache and trigger refresh on creation
aldin4u Jan 8, 2026
c485a25
feat(agent): add settings menu and conditional reveal
aldin4u Jan 8, 2026
1a28c3b
fix(agent): remove duplicate import
aldin4u Jan 8, 2026
480c09c
fix(agent): update state after import
aldin4u Jan 8, 2026
e98e1d0
fix(hyperliquid): fallback to agent balance if main empty
aldin4u Jan 8, 2026
71f3f56
fix(ui): pass fetched agent data to PositionsCard
aldin4u Jan 8, 2026
37628f7
fix(ui): remove duplicate identifier
aldin4u Jan 8, 2026
3a9cc79
fix(ui): re-render positions on external state change
aldin4u Jan 8, 2026
43b03d0
revert(hyperliquid): remove agent fallback logic
aldin4u Jan 8, 2026
d839710
chore(debug): show master address in ui
aldin4u Jan 8, 2026
e81df97
fix(hyperliquid): prioritize agent wallet and propagate active address
aldin4u Jan 8, 2026
ef605f2
fix(hyperliquid): enforce agent usage and link history card
aldin4u Jan 8, 2026
0432f17
fix(hyperliquid): unconditional agent usage
aldin4u Jan 8, 2026
b94b29c
fix(ui): robust position display with fallback metadata
aldin4u Jan 8, 2026
90f8c4e
Implemented local encryption storage and UI fixes
aldin4u Jan 8, 2026
e822a37
Merge pull request #494 from pillarwallet/copy-strategy
aldin4u Jan 8, 2026
23834ea
feat: Refine Perps agent flow, validation, and UI
aldin4u Jan 8, 2026
e47f8f3
fix(test): mock VITE_SWAP_BUTTON_SWITCH env var in CardSwap test
aldin4u Jan 8, 2026
d866e19
fix(test): use vi.stubEnv for VITE_SWAP_BUTTON_SWITCH mock
aldin4u Jan 8, 2026
0fc70a2
feat: enhance keystore security, refine UI scale and loading states
aldin4u Jan 9, 2026
db30a2e
fix: correct deposit check to use EOA balance and cleanup logs
aldin4u Jan 9, 2026
5a6a330
pushing all the changes done
vignesha22 Jan 9, 2026
8adcbda
Merge branch 'perps' of github.com:pillarwallet/x into perps
vignesha22 Jan 9, 2026
f11477a
Revert "fix: correct deposit check to use EOA balance and cleanup logs"
vignesha22 Jan 9, 2026
97056f2
feat: add perps app to local allowed apps list
vignesha22 Jan 9, 2026
e2a7abd
feat: mandatory pillarx builder approval
aldin4u Jan 10, 2026
425b628
fix(ui): prevent mobile zoom, add copy buttons, autofocus pin
aldin4u Jan 10, 2026
7d338b7
feat(auth): add privy passkey creation to portfolio tile
aldin4u Jan 10, 2026
d5938d6
fix: resolve builder address type mismatch in keystore
aldin4u Jan 10, 2026
9ab23a9
feat: improve mobile PIN input auto-focus
aldin4u Jan 10, 2026
e448eea
fix: resolve invalid builder param type in order payload and dynamic …
aldin4u Jan 10, 2026
ae0f838
fix: correct relative import path for utils/blockchain in client.ts
aldin4u Jan 10, 2026
1e63d6b
feat: separate import account flow using imported private key and eve…
aldin4u Jan 10, 2026
29afd3b
fix: skip builder fee for imported accounts and fix sdk private key u…
aldin4u Jan 10, 2026
adef24d
Fix leverage label visibility and builder fee exemption for imported …
aldin4u Jan 12, 2026
128f99a
Fix deployment build failure by adding .npmrc to prevent git config e…
aldin4u Jan 15, 2026
578c895
Skip patch-package in Cloudflare Pages to prevent git config errors
aldin4u Jan 15, 2026
ce7d078
Remove postinstall script to fix Cloudflare Pages deployment
aldin4u Jan 15, 2026
3287b53
feat: Add Perps tile to homefeed with Hyperliquid branding
aldin4u Jan 15, 2026
cf90f30
package lock updated
RanaBug Jan 15, 2026
56c8e4d
fix: implement proper withdraw3 signing with master wallet
aldin4u Jan 19, 2026
48807cb
fix: add type module to package.json for Cloudflare Pages build
aldin4u Jan 19, 2026
da3164d
fix: address 7 CodeRabbit review issues
aldin4u Jan 19, 2026
178abb0
fix: add missing Tailwind tokens and animations
aldin4u Jan 19, 2026
1f13cb9
fix: improve mobile components React best practices
aldin4u Jan 19, 2026
69ff7bc
fix: convert config files to ESM and fix sidebar SSR issue
aldin4u Jan 19, 2026
7506c20
fix(perps): resolve PR #489 comments and build failure
aldin4u Jan 19, 2026
1ab9b85
Revert "fix(perps): resolve PR #489 comments and build failure"
aldin4u Jan 20, 2026
1b4d117
fix(perps): re-export roundToSzDecimals to fix build failure
aldin4u Jan 20, 2026
2d050fd
fix(privy): add validation for VITE_PRIVY_APP_ID to prevent silent fa…
aldin4u Jan 20, 2026
48d4d1e
fix(privy): add fallback to default Privy App ID for production builds
aldin4u Jan 20, 2026
0ceec49
revert: remove hardcoded Privy App ID fallback to test env vars
aldin4u Jan 20, 2026
04acd02
fix(build): revert to staging build script to fix env var handling
aldin4u Jan 20, 2026
ebf4981
style: fix indentation in Main.tsx
aldin4u Jan 20, 2026
eca3b16
fix(signing): add type casts for withdraw primaryType to resolve viem…
aldin4u Jan 20, 2026
f6ccf89
fix(build): re-add NODE_OPTIONS to prevent heap out of memory error
aldin4u Jan 20, 2026
a4fada7
Merge pull request #489 from pillarwallet/perps
aldin4u Jan 20, 2026
66c329a
fix: add .nvmrc to specify Node.js 20 for Cloudflare Pages
aldin4u Jan 20, 2026
e3632de
Merge pull request #496 from pillarwallet/perps
aldin4u Jan 20, 2026
4ea6169
feat: redesign hyperliquid tile and fix wallet portfolio slice
aldin4u Jan 20, 2026
1d80da4
Merge remote-tracking branch 'origin/main' into feat/redesign-hyperli…
aldin4u Jan 20, 2026
078141a
Merge remote-tracking branch 'origin/staging' into feat/redesign-hype…
aldin4u Jan 20, 2026
5027c57
Merge pull request #497 from pillarwallet/feat/redesign-hyperliquid-tile
aldin4u Jan 20, 2026
d376eb9
fix(insights): hide copy strategy text on mobile
aldin4u Jan 20, 2026
8142929
fix(lint): resolve prettier errors in PerpsTile
aldin4u Jan 20, 2026
7cbd020
chore(test): update snapshots and fix PerpsTile formatting
aldin4u Jan 20, 2026
482b563
Merge pull request #498 from pillarwallet/feat/mobile-copy-button-fix
aldin4u Jan 20, 2026
9888967
Merge pull request #483 from pillarwallet/fix/pnl-calculation-logic
aldin4u Jan 21, 2026
330bf14
Add Hyperliquid logo as perps app icon
aldin4u Jan 21, 2026
4ddbdcb
Merge pull request #500 from pillarwallet/feature/add-hyperliquid-icon
aldin4u Jan 21, 2026
5a50fd7
fix: import roundToSzDecimals to avoid runtime error
aldin4u Jan 28, 2026
08c5e10
Merge pull request #501 from pillarwallet/fix/roundToSzDecimals-undef…
aldin4u Jan 28, 2026
dfd8c43
fix: use fallback HTTP transport in delegatedEoa mode
aldin4u Feb 3, 2026
d54a6b2
fix: refine transport logic for EOA safety
aldin4u Feb 3, 2026
9fa9257
fix: update dependency arrays to include clientTransport
aldin4u Feb 3, 2026
337813e
Merge pull request #502 from pillarwallet/fix/delegated-eoa-signing
aldin4u Feb 3, 2026
cce4d64
fix: safeguard against getEtherspotProvider crash in delegated mode
aldin4u Feb 3, 2026
6885edd
fix: remove duplicate else block causing build error
aldin4u Feb 3, 2026
9adfc47
fix: resolve linting issues in useAlgoInsightsStats
aldin4u Feb 3, 2026
0b8260f
fix: update test snapshots
aldin4u Feb 3, 2026
4e87410
Merge pull request #503 from pillarwallet/fix/delegated-eoa-signing
aldin4u Feb 3, 2026
0424078
changed mobula url
vignesha22 Apr 10, 2026
5deec1d
fixed bug
vignesha22 Apr 14, 2026
d16a42b
updated snapshots
vignesha22 Apr 14, 2026
b88a701
Merge pull request #504 from pillarwallet/Updated_Mobula_Endpoint
vignesha22 Apr 15, 2026
e8825fe
Update Home Page Copy
Jul 9, 2026
90445ff
Update Icon & Style
Jul 9, 2026
5df53d5
Update Icon
Jul 9, 2026
697a94e
Update Snapshot
Jul 10, 2026
e52be72
Merge pull request #505 from pillarwallet/chore/landing-page-content-…
ch4r10t33r Jul 10, 2026
2cf0ae2
ci: unblock CircleCI apt and Slack notification failures (#507)
ch4r10t33r Aug 4, 2026
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
3 changes: 3 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ jobs:
- run:
name: Install jq
command: |
# Cypress image ships a Google Chrome apt source whose GPG key can expire
# and make `apt-get update` fail with NO_PUBKEY / exit 100 before jq installs.
rm -f /etc/apt/sources.list.d/google-chrome*.list /etc/apt/sources.list.d/*chrome*.list || true
apt-get update && apt-get install -y curl jq

# Clone secondary repo and run Playwright tests
Expand Down
1 change: 1 addition & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ VITE_SWAP_BUTTON_SWITCH="true"
VITE_PAYMASTER_URL="http://localhost:5050"
VITE_SENTRY_ENVIRONMENT="staging"
VITE_PULSE_NODE_URL="https://pulse.etherspot.io"
VITE_MOBULA_API_KEY="your_api_key_here"
1 change: 1 addition & 0 deletions .github/workflows/notifications.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Send Slack deployment notifications
continue-on-error: true
uses: arddluma/cloudflare-pages-slack-notification@v4
with:
apiToken: ${{ secrets.CF_API_TOKEN }}
Expand Down
7 changes: 7 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Disable git operations during npm install to prevent issues in CI/CD environments
# This fixes the git config error during Cloudflare Pages deployment
unsafe-perm=true
ignore-scripts=false

# Configure git to use system config only
git-tag-version=false
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
20
118 changes: 118 additions & 0 deletions Builders codes/fetch_builder_data.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
const https = require('https');
const fs = require('fs');
const lz4js = require('lz4js');

const builderAddress = '0x5e1d081488a5e746c1a13bf92103c1b9ee5962a2';
// 2026-01-12 is today. Let's check 12, 11, 10.
const dates = ['20260112', '20260111', '20260110', '20260109'];

async function fetchAndProcess(date) {
const url = `https://stats-data.hyperliquid.xyz/Mainnet/builder_fills/${builderAddress}/${date}.csv.lz4`;
// console.log(`Fetching ${url}...`);

return new Promise((resolve) => {
https.get(url, (res) => {
if (res.statusCode !== 200) {
// console.log(`No data for ${date} (Status: ${res.statusCode})`);
resolve(null);
return;
}

const chunks = [];
res.on('data', chunk => chunks.push(chunk));
res.on('end', () => {
const buffer = Buffer.concat(chunks);
try {
const decompressed = lz4js.decompress(buffer);
const csv = Buffer.from(decompressed).toString('utf8');
resolve({ date, csv });
} catch (e) {
console.error(`Error decompressing ${date}:`, e.message);
resolve(null);
}
});
res.on('error', () => resolve(null));
});
});
}

function parseCSV(csv) {
const lines = csv.trim().split('\n');
const headers = lines[0].split(',');
const data = [];
for (let i = 1; i < lines.length; i++) {
const values = lines[i].split(',');
const row = {};
headers.forEach((h, index) => {
row[h] = values[index];
});
data.push(row);
}
return data;
}

async function main() {
const results = [];
for (const date of dates) {
const result = await fetchAndProcess(date);
if (result) {
results.push(result);
}
}

if (results.length === 0) {
console.log("No builder referral data found for the last 3-4 days.");
return;
}

console.log("Builder Code Referrals (Last available data):");
let totalFees = 0;
const uniqueUsers = new Set();
const dailyStats = {};

results.forEach(({ date, csv }) => {
const records = parseCSV(csv);
let dailyFees = 0;
let dailyUsers = new Set();

records.forEach(r => {
const fee = parseFloat(r.builder_fee || 0);
dailyFees += fee;
totalFees += fee;
if (r.user) {
uniqueUsers.add(r.user);
dailyUsers.add(r.user);
}
});

dailyStats[date] = {
fees: dailyFees,
users: dailyUsers.size,
transactions: records.length
};
});

console.table(dailyStats);
console.log(`\nTotal Builder Fees: ${totalFees.toFixed(6)} USDC`);
console.log(`Total Unique Users: ${uniqueUsers.size}`);

console.log("\nUser Breakdown:");
const userBreakdown = {};
results.forEach(({ csv }) => {
const records = parseCSV(csv);
records.forEach(r => {
if (r.user) {
if (!userBreakdown[r.user]) {
userBreakdown[r.user] = 0;
}
userBreakdown[r.user] += parseFloat(r.builder_fee || 0);
}
});
});

Object.entries(userBreakdown).forEach(([user, fee]) => {
console.log(`User: ${user}, Total Fee: ${fee.toFixed(6)} USDC`);
});
}

main();
14 changes: 14 additions & 0 deletions Builders codes/node_modules/.package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Builders codes/node_modules/lz4js/.eslintrc

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Builders codes/node_modules/lz4js/.npmignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions Builders codes/node_modules/lz4js/.travis.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

39 changes: 39 additions & 0 deletions Builders codes/node_modules/lz4js/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading