+ Track Your Axe is an innovative blockchain-based solution verifying
+ ownership of musical instruments and items by creating a verifiable
+ history (provenance) of ownership.
+
- return (
-
-
-
Track Your...What?
-
- Track Your Axe is an innovative blockchain-based solution verifying ownership of musical instruments and items by creating a verifiable history (provenance) of ownership.
-
+
How Does it Work?
+
+ Track Your Axe uses a public, trustless database, i.e. a blockchain,
+ to publicly store and record ownership of all items listed. This
+ registry tracks ownership history, item details, item images over
+ time, and location.
+
+
-
How Does it Work?
-
- Track Your Axe uses a public, trustless database, i.e. a blockchain, to publicly store and record ownership of all items listed. This registry tracks ownership history, item details, item images over time, and location.
-
-
+
Is that Secure?
+
+ Indeed! To get technical about it, the 'deed' to the Provenance is,
+ technically, and NFT (non-fungible token). The code used to generate
+ this NFT is industry-standard and audited by third-parties, so your
+ ownership of the token is secure. This token is the used as the
+ indicator of ownership of the provenance itself, which exists at it's
+ own unique location on the blockchain.
+
+
+ The provenance is human-readable on the blockchain (the link to each
+ contract can be found on your item page) so you can visit it if you
+ wish, but if you don't wish to go that far, all the information is
+ displayed on this site.
+
-
Is that Secure?
-
- Indeed! To get technical about it, the 'deed' to the Provenance is, technically, and NFT (non-fungible token). The code used to generate this NFT is industry-standard and audited by third-parties, so your ownership of the token is secure. This token is the used as the indicator of ownership of the provenance itself, which exists at it's own unique location on the blockchain.
-
-
- The provenance is human-readable on the blockchain (the link to each contract can be found on your item page) so you can visit it if you wish, but if you don't wish to go that far, all the information is displayed on this site.
-
+
Why bother? And isn't blockchain bad for the planet?!?
+
+
+ Some instruments are so famous they are a household name; Lucille
+ comes to mind. However the number of instruments and artifacts that
+ trade hands daily is legion, and these instruments hold significant
+ cultural and monetary value. TYA allows for an indestrucible record
+ and lineage of these items and instruments and their history.
+
+
+ Additionally, there are a number of financial incentives to
+ registering your instrument on TYA. (list insurance, value of horn,
+ etc){" "}
+
+
+ But, really, what about the planet?! and isn't blockchain expensive?!
+
+
blah blah blah, yadda yadda
-
Why bother? And isn't blockchain bad for the planet?!?
-
-
- Some instruments are so famous they are a household name; Lucille comes to mind. However the number of instruments and artifacts that trade hands daily is legion, and these instruments hold significant cultural and monetary value. TYA allows for
- an indestrucible record and lineage of these items and instruments and their history.
-
-
Additionally, there are a number of financial incentives to registering your instrument on TYA. (list insurance, value of horn, etc)
-
But, really, what about the planet?! and isn't blockchain expensive?!
-
blah blah blah, yadda yadda
-
-
Ok, fine. So how do I register my instruments and items?
-
Excellent question! Visit the tutorial page: here
-
-
-
- );
-
+
Ok, fine. So how do I register my instruments and items?
;
+ }
+};
export default TransferProfile;
-
-
/*
these will only with an API endpoint calling a smart contract. nothing user based.
@@ -251,8 +261,6 @@ export async function getStaticProps() {
}
*/
-
-
/* original sale function
function ClaimProvenance() {
@@ -308,4 +316,4 @@ export async function getStaticProps() {
)
}
- */
\ No newline at end of file
+ */
diff --git a/pages/incoming-transfers/index.js b/pages/incoming-transfers/index.js
index b8713a2..95ced31 100644
--- a/pages/incoming-transfers/index.js
+++ b/pages/incoming-transfers/index.js
@@ -1,144 +1,194 @@
-import { useEffect, useState } from 'react';
-import { ethers } from 'ethers';
+import { useEffect, useState } from "react";
+import { ethers } from "ethers";
//next imports
-import Link from 'next/link'
-import { useRouter } from 'next/router';
+import Link from "next/link";
+import { useRouter } from "next/router";
//react-bootstrap imports
-import { Container, Carousel, Table, Row, Col, Card, Image, Button, ListGroup, ListGroupItem} from 'react-bootstrap';
+import {
+ Container,
+ Carousel,
+ Table,
+ Row,
+ Col,
+ Card,
+ Image,
+ Button,
+ ListGroup,
+ ListGroupItem,
+} from "react-bootstrap";
// context imports
-import { useItemContext } from '../../src/context/ItemContext';
-import { useContractContext } from '../../src/context/ContractContext';
-import { useUserContext } from '../../src/context/UserContext';
-import { useTransferContext } from '../../src/context/TransferContext';
+import { useItemContext } from "../../src/context/ItemContext";
+import { useContractContext } from "../../src/context/ContractContext";
+import { useUserContext } from "../../src/context/UserContext";
+import { useTransferContext } from "../../src/context/TransferContext";
//abi
-import Provenance from '../../artifacts/contracts/Provenance.sol/Provenance.json';
+import Provenance from "../../artifacts/contracts/Provenance.sol/Provenance.json";
// styles
-import styles from './transfers.module.css'
-
+import styles from "./transfers.module.css";
const IncomingTransfers = () => {
-
const { ipfsGetterRootURL } = useItemContext();
const { MothershipContract } = useContractContext();
const { mainAccount, provider, signer } = useUserContext();
- const { pendingTransferContracts, setPendingTransferContracts } = useTransferContext();
+ const { pendingTransferContracts, setPendingTransferContracts } =
+ useTransferContext();
const router = useRouter();
+ const [loaded, setLoaded] = useState(false);
- const [ loaded , setLoaded ] = useState(false);
-
- const [buyerAccount, setBuyerAccount] = useState('');
- const [errorMessage, setErrorMessage] = useState('');
-
+ const [buyerAccount, setBuyerAccount] = useState("");
+ const [errorMessage, setErrorMessage] = useState("");
const TransferTable = () => {
-
-
-
- if (pendingTransferContracts){
+ if (pendingTransferContracts) {
return (
<>
-
this page is for incoming transfers only. Transferring provenances is only allowed from the individual item pages. Visit your items page to transfer provenances or here to learn how.
+
+ this page is for incoming transfers only. Transferring provenances
+ is only allowed from the individual item pages. Visit your{" "}
+ items page to transfer provenances
+ or here to learn how.
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Tempus egestas sed sed risus pretium quam. Maecenas volutpat blandit aliquam etiam. Quam elementum pulvinar etiam non quam lacus suspendisse. Rutrum quisque non tellus orci ac auctor augue mauris. Nunc faucibus a pellentesque sit. Amet massa vitae tortor condimentum lacinia quis vel. Mollis aliquam ut porttitor leo a. Ut eu sem integer vitae justo eget magna fermentum. Id diam vel quam elementum pulvinar etiam non quam lacus. Nunc consequat interdum varius sit amet mattis. Vitae aliquet nec ullamcorper sit amet. Urna neque viverra justo nec ultrices. Aenean pharetra magna ac placerat vestibulum lectus mauris. Tincidunt arcu non sodales neque sodales. Vulputate eu scelerisque felis imperdiet proin fermentum leo vel. Fermentum posuere urna nec tincidunt praesent. Odio ut sem nulla pharetra. Ipsum nunc aliquet bibendum enim facilisis gravida. Molestie a iaculis at erat pellentesque adipiscing commodo elit.
-
- Sed euismod nisi porta lorem. Neque vitae tempus quam pellentesque nec nam aliquam sem et. Tellus in metus vulputate eu scelerisque felis imperdiet. Vestibulum lorem sed risus ultricies tristique nulla. Orci ac auctor augue mauris. Non sodales neque sodales ut. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Vitae justo eget magna fermentum iaculis eu non diam. Mollis nunc sed id semper. Netus et malesuada fames ac turpis egestas maecenas pharetra. Lectus nulla at volutpat diam ut venenatis tellus in. Imperdiet sed euismod nisi porta lorem. Sed tempus urna et pharetra. Sit amet nisl purus in mollis nunc. Dui faucibus in ornare quam viverra orci sagittis. Etiam erat velit scelerisque in dictum non consectetur a.
-
- Ultrices mi tempus imperdiet nulla malesuada pellentesque elit eget. Vulputate odio ut enim blandit volutpat. Metus aliquam eleifend mi in. Feugiat in ante metus dictum at. Lorem ipsum dolor sit amet consectetur adipiscing elit pellentesque. Praesent tristique magna sit amet purus gravida quis blandit. Risus viverra adipiscing at in tellus. Fusce id velit ut tortor pretium viverra suspendisse potenti. Aliquet risus feugiat in ante metus dictum at. Nec ultrices dui sapien eget mi proin. Tortor vitae purus faucibus ornare suspendisse. Eros in cursus turpis massa tincidunt dui ut ornare. Consequat semper viverra nam libero justo laoreet sit. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Diam quam nulla porttitor massa id neque aliquam vestibulum morbi.
-
- Molestie ac feugiat sed lectus. Diam donec adipiscing tristique risus nec feugiat in fermentum posuere. Curabitur gravida arcu ac tortor dignissim convallis aenean et tortor. Et odio pellentesque diam volutpat commodo sed. Nunc aliquet bibendum enim facilisis gravida. Dictumst vestibulum rhoncus est pellentesque elit ullamcorper dignissim. Tellus orci ac auctor augue. Eget nulla facilisi etiam dignissim diam quis enim lobortis. Sollicitudin aliquam ultrices sagittis orci a scelerisque purus semper eget. Elementum integer enim neque volutpat. Habitant morbi tristique senectus et. Convallis convallis tellus id interdum. Sit amet massa vitae tortor condimentum lacinia quis vel. Sit amet mauris commodo quis imperdiet massa. Massa massa ultricies mi quis hendrerit.
-
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Tempus
+ egestas sed sed risus pretium quam. Maecenas volutpat blandit aliquam
+ etiam. Quam elementum pulvinar etiam non quam lacus suspendisse.
+ Rutrum quisque non tellus orci ac auctor augue mauris. Nunc faucibus a
+ pellentesque sit. Amet massa vitae tortor condimentum lacinia quis
+ vel. Mollis aliquam ut porttitor leo a. Ut eu sem integer vitae justo
+ eget magna fermentum. Id diam vel quam elementum pulvinar etiam non
+ quam lacus. Nunc consequat interdum varius sit amet mattis. Vitae
+ aliquet nec ullamcorper sit amet. Urna neque viverra justo nec
+ ultrices. Aenean pharetra magna ac placerat vestibulum lectus mauris.
+ Tincidunt arcu non sodales neque sodales. Vulputate eu scelerisque
+ felis imperdiet proin fermentum leo vel. Fermentum posuere urna nec
+ tincidunt praesent. Odio ut sem nulla pharetra. Ipsum nunc aliquet
+ bibendum enim facilisis gravida. Molestie a iaculis at erat
+ pellentesque adipiscing commodo elit. Sed euismod nisi porta lorem.
+ Neque vitae tempus quam pellentesque nec nam aliquam sem et. Tellus in
+ metus vulputate eu scelerisque felis imperdiet. Vestibulum lorem sed
+ risus ultricies tristique nulla. Orci ac auctor augue mauris. Non
+ sodales neque sodales ut. Tincidunt tortor aliquam nulla facilisi cras
+ fermentum odio eu. Vitae justo eget magna fermentum iaculis eu non
+ diam. Mollis nunc sed id semper. Netus et malesuada fames ac turpis
+ egestas maecenas pharetra. Lectus nulla at volutpat diam ut venenatis
+ tellus in. Imperdiet sed euismod nisi porta lorem. Sed tempus urna et
+ pharetra. Sit amet nisl purus in mollis nunc. Dui faucibus in ornare
+ quam viverra orci sagittis. Etiam erat velit scelerisque in dictum non
+ consectetur a. Ultrices mi tempus imperdiet nulla malesuada
+ pellentesque elit eget. Vulputate odio ut enim blandit volutpat. Metus
+ aliquam eleifend mi in. Feugiat in ante metus dictum at. Lorem ipsum
+ dolor sit amet consectetur adipiscing elit pellentesque. Praesent
+ tristique magna sit amet purus gravida quis blandit. Risus viverra
+ adipiscing at in tellus. Fusce id velit ut tortor pretium viverra
+ suspendisse potenti. Aliquet risus feugiat in ante metus dictum at.
+ Nec ultrices dui sapien eget mi proin. Tortor vitae purus faucibus
+ ornare suspendisse. Eros in cursus turpis massa tincidunt dui ut
+ ornare. Consequat semper viverra nam libero justo laoreet sit. Egestas
+ sed tempus urna et pharetra pharetra massa massa ultricies. Diam quam
+ nulla porttitor massa id neque aliquam vestibulum morbi. Molestie ac
+ feugiat sed lectus. Diam donec adipiscing tristique risus nec feugiat
+ in fermentum posuere. Curabitur gravida arcu ac tortor dignissim
+ convallis aenean et tortor. Et odio pellentesque diam volutpat commodo
+ sed. Nunc aliquet bibendum enim facilisis gravida. Dictumst vestibulum
+ rhoncus est pellentesque elit ullamcorper dignissim. Tellus orci ac
+ auctor augue. Eget nulla facilisi etiam dignissim diam quis enim
+ lobortis. Sollicitudin aliquam ultrices sagittis orci a scelerisque
+ purus semper eget. Elementum integer enim neque volutpat. Habitant
+ morbi tristique senectus et. Convallis convallis tellus id interdum.
+ Sit amet massa vitae tortor condimentum lacinia quis vel. Sit amet
+ mauris commodo quis imperdiet massa. Massa massa ultricies mi quis
+ hendrerit.
+
-
- LOTS OF INFO ON HOW TO TRANSFERS PROVENANCES AND THEN BIG LINK TO ITEMS PAGE
-
-
-
-
-
-
-
- );
- }
-
- export default OutgoingTransfersInfo;
\ No newline at end of file
+ return (
+
+ LOTS OF INFO ON HOW TO TRANSFERS PROVENANCES AND THEN BIG LINK TO ITEMS
+ PAGE
+
+ );
+}
+
+export default OutgoingTransfersInfo;
diff --git a/pages/provenance-success/ProvenanceSuccess.js b/pages/provenance-success/ProvenanceSuccess.js
index 4254131..bea9496 100644
--- a/pages/provenance-success/ProvenanceSuccess.js
+++ b/pages/provenance-success/ProvenanceSuccess.js
@@ -1,74 +1,86 @@
-import { ethers } from 'ethers';
-import { useState } from 'react';
-
+import { ethers } from "ethers";
+import { useState } from "react";
// style
-import styles from './ProvenanceSuccess.module.css';
+import styles from "./ProvenanceSuccess.module.css";
//next imports
-import Link from 'next/link';
-import Image from 'next/image';
-import { useRouter } from 'next/router';
+import Link from "next/link";
+import Image from "next/image";
+import { useRouter } from "next/router";
//context imports
-import { useUserContext } from '../../src/context/UserContext';
-import { useItemContext } from '../../src/context/ItemContext';
-
-import { Button, Row, Col } from 'react-bootstrap';
+import { useUserContext } from "../../src/context/UserContext";
+import { useItemContext } from "../../src/context/ItemContext";
-import yes from '../../public/images/ndyes.gif';
-import greenCheckmark from '../../public/images/green_checkmark.png';
+import { Button, Row, Col } from "react-bootstrap";
+import yes from "../../public/images/ndyes.gif";
+import greenCheckmark from "../../public/images/green_checkmark.png";
const ProvenanceSuccess = () => {
-
- const { newProvenanceAddress } = useItemContext();
- const { mainAccount } = useUserContext();
-
- // create conditional on new ProvenanceAddress so that it tells them to go to item page if there is not new provenance address
- return(
-
-
-
-
-
Provenance Successfully Created!
-
-
-
-
{newProvenanceAddress ?
Your New Provenance is created at: {newProvenanceAddress}
not that provenance contracts need to automatically verified on deployment so they are human readable
-
-
-
-
-
-
-
-
-
-
-
-
- {/*{mainAccount} Provenances*/}
-
-
-
-
-
-
-
+ const { newProvenanceAddress } = useItemContext();
+ const { mainAccount } = useUserContext();
+
+ // create conditional on new ProvenanceAddress so that it tells them to go to item page if there is not new provenance address
+ return (
+
+
+
Provenance Successfully Created!
+
+
+
+ {newProvenanceAddress ? (
+
Your New Provenance is created at: {newProvenanceAddress}
-
-
- What happens in Step 1?
-
- Creation of a Provenance is a two part process. The NFT (also referred to as the token) acts as the proof of ownership for the Provenance itself.
- The behind-the-scenes mechanism to ensure your ownership of this token is industry-standard and audited by third party auditing experts, ensuring
- security.
-
-
- This token also requires a verification photo prove your ownership of the item. This photo needs to include your face and a picture of the item, preferably with serial number visible.
-
-
-
- {/* Verfication Photo Upload */}
- {readyToMint === false && formData.verificationphotohash.length > 0 ?
-
- null
- :
-
-
-
- }
- {/* Verication Photo Preview */}
- { formData.verificationphotohash ?
-
+ First time minting? Follow the{" "}
+ tutorial
+
+
STEP 1: MINT TOKEN (NFT)
+
+
+
+ What happens in Step 1?
+
+
+ Creation of a Provenance is a two part process. The NFT (also
+ referred to as the token) acts as the proof of ownership for the
+ Provenance itself. The behind-the-scenes mechanism to ensure your
+ ownership of this token is industry-standard and audited by third
+ party auditing experts, ensuring security.
+
+
+ This token also requires a verification photo prove your ownership
+ of the item. This photo needs to include your face and a picture
+ of the item, preferably with serial number visible.
+
+
+
+ {/* Verfication Photo Upload */}
+ {readyToMint === false &&
+ formData.verificationphotohash.length > 0 ? null : (
+
+
+ )}
+ {/* Verication Photo Preview */}
+ {formData.verificationphotohash ? (
+
+
+ {mintSuccessMessage ? (
+
Mint Success!
+ ) : null}
+
+ ) : null}
+
+ {/* Token Updates */}
+
+
+
-
STEP 2: CREATE PROVENANCE WITH MINTED TOKEN
-
-
-
- What happens in Step 2?
-
- In this step you enter all the identifying information about your item. All of this info will be stored on a blockchain in it's own unique smart contract forever and is publicy verifiable at any time (the link to view
- the contract on-chain is in the individual item page).
-
-
- You also have the option upload additional photos of the item (20 max).
-
-
-
-
- {/* Form */}
- {/* Eventually Form and User Tokens need to be broken into separate components */}
-
-
-
-
- {/*bootstrap modal*/}
- {
- setModalShow(false)
- setSubmitting(false)
- }}
- formdata={formData}
- createprovenance={createProvenance}
- tokenid={tokenId}
- unusedtokenid={unusedTokenID}
- setSubmitting={setSubmitting}
- />
-
-
-