Skip to content

Commit 2cddcb6

Browse files
troubleshoot web3 library
1 parent 6c6a93b commit 2cddcb6

File tree

3 files changed

+88
-7
lines changed

3 files changed

+88
-7
lines changed

contracts/users.sol

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,22 @@ contract UserDatabase {
176176
function _setUserData(uint256 id, UserData memory newData) internal virtual {
177177
_idOfName[newData.userName] = id;
178178
_idOfAddress[newData.defaultAddress] = id;
179-
_userData[id] = newData;
179+
_userData[id].registrationDate = newData.registrationDate;
180+
_userData[id].defaultAddress = newData.defaultAddress;
181+
_userData[id].userName = newData.userName;
182+
_userData[id].userBio = newData.userBio;
183+
_userData[id].imgUrl = newData.imgUrl;
184+
185+
for (uint256 i; i < newData.linkedProfiles.length; i++) {
186+
187+
if (i >= _userData[id].linkedProfiles.length) {
188+
_userData[id].linkedProfiles.push(newData.linkedProfiles[i]);
189+
} else {
190+
_userData[id].linkedProfiles[i] = newData.linkedProfiles[i];
191+
}
192+
193+
}
194+
180195
emit UserDataUpdated(newData.defaultAddress, newData.userName, newData.userBio, newData.imgUrl, newData.linkedProfiles);
181196
}
182197

scripts/deploy.js

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,59 @@ async function deploy() {
1515
const UserControl = await ethers.getContractFactory("UserControl");
1616

1717
console.log("deploying UserControl");
18-
userControl = await UserControl.deploy();
18+
userControl = await UserControl.deploy([
19+
1,
20+
2,
21+
3,
22+
4,
23+
5,
24+
6,
25+
7,
26+
8,
27+
9,
28+
10,
29+
11,
30+
12,
31+
13,
32+
14,
33+
15,
34+
16,
35+
17,
36+
18,
37+
19,
38+
20,
39+
21,
40+
22,
41+
23,
42+
24,
43+
25
44+
],[
45+
'twitter',
46+
'instagram',
47+
'linkedin',
48+
'tiktok',
49+
'youtube',
50+
'github',
51+
'reddit',
52+
'discord',
53+
'telegram',
54+
'snapchat',
55+
'twitch',
56+
'mastodon',
57+
'patreon',
58+
'quora',
59+
'pintrest',
60+
'tumblr',
61+
'slack',
62+
'stackoverflow',
63+
'soundcloud',
64+
'spotify',
65+
'upwork',
66+
'kickstarter',
67+
'email',
68+
'website',
69+
'web3address'
70+
]);
1971
console.log(`waiting for deployment of UserControl ${userControl.target}`);
2072
await userControl.waitForDeployment();
2173
console.log(`deployed UserControl ${userControl.target}`);

template/scripts.js

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const USER_ABIFILE = '/artifacts/contracts/userControl.sol/UserControl.json';
2-
const USER_ADDRESS = '0xF7C255C599b464De52a71c84aD6d0ab193bd3593';
2+
const USER_ADDRESS = '0x6f380E5d68D7211f305976f86c66a22Ce17C3054';
33

44
const DEFAULT_RPC = 'https://ethereum-sepolia.publicnode.com';
55
const CHAIN_SYMBOL = 'S.ETH';
@@ -57,15 +57,27 @@ async function loadContract(abiFile, contractAddress) {
5757
});
5858
}
5959

60-
async function loadMain() {
61-
userContract = await loadContract(USER_ABIFILE, USER_ADDRESS);
62-
await checkMetamask();
60+
async function updateUserData() {
61+
console.log(connectedAccounts);
6362
for (let i = 0; i < connectedAccounts.length; i++) {
64-
userData.push(await userContract.methods['getUserData(address)'](connectedAccounts[i]));
63+
const address = Web3.utils.toChecksumAddress(connectedAccounts[i])
64+
const newData = await userContract.methods['getUserData(address)'](address).call({ from: address });
65+
userData.push(newData);
6566
}
6667
console.log(userData);
6768
}
6869

70+
async function getUserData(address) {
71+
return await userContract.methods['getUserData(address)'](address).call();
72+
}
73+
74+
async function loadMain() {
75+
await checkMetamask();
76+
userContract = await loadContract(USER_ABIFILE, USER_ADDRESS);
77+
await updateUserData();
78+
console.log(userContract);
79+
}
80+
6981
async function connectMetamask() {
7082
// Check if MetaMask is installed
7183
if (typeof window.ethereum !== 'undefined') {
@@ -136,11 +148,13 @@ const getProfileCardHTML = (user) => {
136148
function switchAccounts(user) {
137149
console.log(`Switching to Account ${user}`);
138150
connectedAccount = user;
151+
connectedAddress = '';
139152
// console.log(`Accounts Switched ${connectedAccount}`);
140153
const container = document.getElementById('profileListMenu');
141154

142155

143156
if (user != null) {
157+
connectedAddress = Web3.utils.toChecksumAddress(connectedAccounts[connectedAccount]);
144158
container.innerHTML = getProfileCardHTML(connectedAccount);
145159
}
146160

0 commit comments

Comments
 (0)