Skip to content

Instantly share code, notes, and snippets.

View ryanpedersen42's full-sized avatar
🦛

Ryan Pedersen ryanpedersen42

🦛
  • San Francisco, CA
View GitHub Profile
@ryanpedersen42
ryanpedersen42 / header.jsx
Last active December 29, 2019 02:35
Header Profile
<ProfileHover
className='option'
orientation='left'
showName
noTheme
address={user.ethAddress}
>
<div className='option'>
{user.userProfile.name ? user.userProfile.name : user.ethAddress}
</div>
@ryanpedersen42
ryanpedersen42 / profile-page.jsx
Last active December 29, 2019 03:08
Profile Page
<EditProfile
box={user.box}
space={user.dappSpace}
currentUserAddr={user.ethAddress}
currentUser3BoxProfile={user.userProfile}
/>
@ryanpedersen42
ryanpedersen42 / comments.jsx
Last active December 29, 2019 02:42
Comment Component
<ThreeBoxComments
spaceName={user.dappSpace._name}
threadName={posts.currentResult}
adminEthAddr='0x55c4eb985536f74f354dbaf7dd2d8891e9373504'
members={false}
showCommentCount={15}
box={user.box}
currentUserAddr={user.ethAddress}
/>
addTo3Box = async () => {
const { petHash, imageDescription } = this.state;
const { user } = this.props;
const dappSpace = user.dappSpace;
try {
await dappSpace.public.set(petHash, imageDescription);
} catch(err) {
console.err(err);
}
@ryanpedersen42
ryanpedersen42 / 2_deploy_contract.js
Created December 28, 2019 22:09
deploy contract
const Pet = artifacts.require("Pet");
module.exports = function(deployer) {
deployer.deploy(Pet);
};
@ryanpedersen42
ryanpedersen42 / App.jsx
Created December 27, 2019 19:23
getContractAndPosts
getContractAndPosts = async () => {
const { setCurrentIPFS, setContract } = this.props
const contract = await new web3.eth // eslint-disable-line
.Contract(Pet.abi, '0x892de2063c8F898E21A9A1d4b981F7446a561Fe3');
await setContract(contract)
const petHashes = await contract.methods.getHashes().call()
await setCurrentIPFS(petHashes)
}
@ryanpedersen42
ryanpedersen42 / App.jsx
Created December 26, 2019 18:41
web3 Auth
loadWeb3 = async () => {
const { setEthAddress } = this.props;
if (window.ethereum) {
window.web3 = new Web3(window.ethereum)
const ethAddresses = await window.ethereum.enable()
const ethAddress = ethAddresses[0]
await setEthAddress(ethAddress)
}
else if (window.web3) {
@ryanpedersen42
ryanpedersen42 / App.jsx
Created December 23, 2019 06:49
load web3 App.jsx
loadWeb3 = async () => {
const { setEthAddress } = this.props;
if (window.ethereum) {
window.web3 = new Web3(window.ethereum)
const ethAddresses = await window.ethereum.enable()
const ethAddress = ethAddresses[0]
await setEthAddress(ethAddress)
}
else if (window.web3) {
@ryanpedersen42
ryanpedersen42 / App.jsx
Last active December 23, 2019 06:46
Get Contract in App.jsx
getContractAndPosts = async () => {
const { setCurrentIPFS, setContract } = this.props
const contract = await new web3.eth // eslint-disable-line
.Contract(Pet.abi, '<your-contract-hash>');
await setContract(contract)
const petHashes = await contract.methods.getHashes().call()
await setCurrentIPFS(petHashes)
}
@ryanpedersen42
ryanpedersen42 / Pet.sol
Created December 23, 2019 06:38
Pet Contract
pragma solidity ^0.5.0;
pragma experimental ABIEncoderV2;
contract Pet {
string[] petHashes;
function addPetHash(string memory _petHash) public {
string memory toPost = _petHash;
petHashes.push(toPost);
}