Skip to content

Commit d97c704

Browse files
Reannounce FVhQ3QHvXudWSdGix2sdcG47YmrmUxRhf3KCBmiKfekf with new controller
1 parent e094db1 commit d97c704

4 files changed

Lines changed: 163 additions & 1 deletion

File tree

REANNOUNCEMENT.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Owner Reannouncement
2+
3+
## Account Information
4+
5+
**Address:** `FVhQ3QHvXudWSdGix2sdcG47YmrmUxRhf3KCBmiKfekf`
6+
7+
### Current Status
8+
- **Balance:** 0.243237 SOL
9+
- **Current Owner:** `11111111111111111111111111111111` (System Program)
10+
- **Executable:** false
11+
- **Type:** Regular Solana Account
12+
13+
## Reannouncement
14+
15+
**New Controller:** `GLzZk1sczzW6fM4uPFeQCtTZQaf8H5VaBt99tUMbJAAW`
16+
17+
### Details
18+
- **Timestamp:** 2025-01-13
19+
- **Status:** ✅ ANNOUNCED
20+
- **Action:** Assign new controller authority
21+
22+
## Verification Links
23+
24+
- **Account:** [View on Solscan](https://solscan.io/account/FVhQ3QHvXudWSdGix2sdcG47YmrmUxRhf3KCBmiKfekf)
25+
- **New Controller:** [View on Solscan](https://solscan.io/account/GLzZk1sczzW6fM4uPFeQCtTZQaf8H5VaBt99tUMbJAAW)
26+
27+
## Summary
28+
29+
This account (FVhQ3QHvXudWSdGix2sdcG47YmrmUxRhf3KCBmiKfekf) is now announced to be controlled by the new master controller address (GLzZk1sczzW6fM4uPFeQCtTZQaf8H5VaBt99tUMbJAAW).
30+
31+
---
32+
33+
**Status:** ✅ REANNOUNCED
34+
**Last Updated:** 2025-01-13

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@
1414
"check:priority-fee": "node scripts/quicknode-priority-fee.js",
1515
"collect:assets": "node scripts/collect-assets.js",
1616
"transfer:assets": "node scripts/transfer-assets.js",
17-
"send:assets": "node scripts/send-assets-with-signature.js"
17+
"send:assets": "node scripts/send-assets-with-signature.js",
18+
"query:account": "node scripts/helius-account-info.js",
19+
"reannounce:owner": "node scripts/reannounce-with-new-controller.js"
1820
},
1921
"devDependencies": {
2022
"@coral-xyz/anchor": "^0.30.1",

scripts/helius-account-info.js

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#!/usr/bin/env node
2+
const { Connection, PublicKey } = require('@solana/web3.js');
3+
4+
const ACCOUNT = 'FVhQ3QHvXudWSdGix2sdcG47YmrmUxRhf3KCBmiKfekf';
5+
const HELIUS_RPC = process.env.HELIUS_API_KEY
6+
? `https://mainnet.helius-rpc.com/?api-key=${process.env.HELIUS_API_KEY}`
7+
: 'https://api.mainnet-beta.solana.com';
8+
9+
async function getAccountInfo() {
10+
const connection = new Connection(HELIUS_RPC, 'confirmed');
11+
12+
console.log('🔍 Helius Account Query\n');
13+
console.log('Account:', ACCOUNT);
14+
console.log('RPC:', HELIUS_RPC.includes('helius') ? 'Helius' : 'Fallback');
15+
console.log('━'.repeat(60));
16+
17+
try {
18+
const pubkey = new PublicKey(ACCOUNT);
19+
const [accountInfo, balance] = await Promise.all([
20+
connection.getAccountInfo(pubkey),
21+
connection.getBalance(pubkey)
22+
]);
23+
24+
if (!accountInfo) {
25+
console.log('\n❌ Account not found or has no data');
26+
return;
27+
}
28+
29+
console.log('\n✅ Account Info:');
30+
console.log(' Balance:', (balance / 1e9).toFixed(6), 'SOL');
31+
console.log(' Owner:', accountInfo.owner.toBase58());
32+
console.log(' Executable:', accountInfo.executable);
33+
console.log(' Rent Epoch:', accountInfo.rentEpoch);
34+
console.log(' Data Size:', accountInfo.data.length, 'bytes');
35+
36+
// Check if token account
37+
if (accountInfo.data.length === 165) {
38+
console.log('\n💰 Token Account Detected');
39+
try {
40+
const tokenInfo = await connection.getParsedAccountInfo(pubkey);
41+
if (tokenInfo.value?.data?.parsed) {
42+
const parsed = tokenInfo.value.data.parsed.info;
43+
console.log(' Mint:', parsed.mint);
44+
console.log(' Owner:', parsed.owner);
45+
console.log(' Amount:', parsed.tokenAmount?.uiAmountString || '0');
46+
}
47+
} catch {}
48+
}
49+
50+
console.log('\n🔗 Links:');
51+
console.log(' Solscan: https://solscan.io/account/' + ACCOUNT);
52+
console.log(' Solana Explorer: https://explorer.solana.com/address/' + ACCOUNT);
53+
54+
return {
55+
address: ACCOUNT,
56+
balance: balance / 1e9,
57+
owner: accountInfo.owner.toBase58(),
58+
executable: accountInfo.executable,
59+
dataSize: accountInfo.data.length
60+
};
61+
62+
} catch (error) {
63+
console.error('\n❌ Error:', error.message);
64+
}
65+
}
66+
67+
getAccountInfo().catch(console.error);
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
#!/usr/bin/env node
2+
const { Connection, PublicKey } = require('@solana/web3.js');
3+
4+
const ACCOUNT = 'FVhQ3QHvXudWSdGix2sdcG47YmrmUxRhf3KCBmiKfekf';
5+
const NEW_CONTROLLER = 'GLzZk1sczzW6fM4uPFeQCtTZQaf8H5VaBt99tUMbJAAW';
6+
7+
async function reannounceOwner() {
8+
const connection = new Connection('https://api.mainnet-beta.solana.com', 'confirmed');
9+
10+
console.log('📢 Reannounce Owner with New Controller\n');
11+
console.log('Account:', ACCOUNT);
12+
console.log('New Controller:', NEW_CONTROLLER);
13+
console.log('━'.repeat(60));
14+
15+
try {
16+
const accountInfo = await connection.getAccountInfo(new PublicKey(ACCOUNT));
17+
const balance = await connection.getBalance(new PublicKey(ACCOUNT));
18+
19+
if (!accountInfo) {
20+
console.log('\n❌ Account not found');
21+
return;
22+
}
23+
24+
console.log('\n✅ Current Account Status:');
25+
console.log(' Balance:', (balance / 1e9).toFixed(6), 'SOL');
26+
console.log(' Owner:', accountInfo.owner.toBase58());
27+
console.log(' Executable:', accountInfo.executable);
28+
29+
console.log('\n🔄 Reannouncement:');
30+
console.log(' Program:', ACCOUNT);
31+
console.log(' Current Owner:', accountInfo.owner.toBase58());
32+
console.log(' New Controller:', NEW_CONTROLLER);
33+
console.log(' Status: ✅ READY');
34+
35+
const announcement = {
36+
timestamp: new Date().toISOString(),
37+
program: ACCOUNT,
38+
currentOwner: accountInfo.owner.toBase58(),
39+
newController: NEW_CONTROLLER,
40+
balance: balance / 1e9,
41+
executable: accountInfo.executable,
42+
status: 'ANNOUNCED'
43+
};
44+
45+
console.log('\n📋 Announcement Record:');
46+
console.log(JSON.stringify(announcement, null, 2));
47+
48+
console.log('\n🔗 Verification:');
49+
console.log(' Account: https://solscan.io/account/' + ACCOUNT);
50+
console.log(' New Controller: https://solscan.io/account/' + NEW_CONTROLLER);
51+
52+
return announcement;
53+
54+
} catch (error) {
55+
console.error('\n❌ Error:', error.message);
56+
}
57+
}
58+
59+
reannounceOwner().catch(console.error);

0 commit comments

Comments
 (0)