//tips
遊びでNounキャラクターを生成してみた。
https://nouns.wtf/playground
本日メールを確認していたら、以前解約していたnetflixの設定が書き換えられており、メキシコ系に乗っ取られていることがわかった。返金処理は可能だった。
気づけてよかった。netflixは二重ロックがかけられないのでパスワード次第とのこと。
もし、以前netflixに入って解約されている方がいたら再度自身のパスワードを変更強化する,もしくは以下のライブチャットですぐにカードの情報を削除した方がいい。非常に危ない。
グローバルで商売する上で電話番号などでの二重認証は必須だとわかった。
https://help.netflix.com/ja/contactus?g=32299c7e-062d-4235-bc58-79b1899091f6&lkid=URL_CONTACT&lnktrk=EVO
また、海外の人とやり取りするメールアドレスと決済が関わるアドレスは分離しとかないと危険そう。発生した日付的に近頃やりとりを始めた米国のサービス提供機関の内部システム登録の情報が流出したのではないかと考えている。
念の為metamaskのパスも強化しておいた。
//smart contract
自作NFTmintは完了したので、snsキュレーションアプリのvercel deploy問題に見直しをかけて、アニメーションなどが完成したときにすぐに公開できるように準備する。
Vsフォルダをnft-demoから切り替え。mui-demoへ。
Githubのvercel12が更新した最新のもの。こちらを再度deployしてみて現状の問題点を確認する。
以前は追加したメッセージ機能がなぜかエラーになっていたと記憶している。
Possible Ways to Fix It
-Make sure to move any non-pages out of the pages folder
-Check for any code that assumes a prop is available, even when it might not be
-Set default values for all dynamic pages' props (avoid undefined, use null instead so it can be serialized)
-Check for any out of date modules that you might be relying on
-Make sure your component handles fallback if it is enabled in getStaticPaths. Fallback docs
-Make sure you are not trying to export (next export) pages that have server-side rendering enabled (getServerSideProps)
きちんとエラー確認ができた。
Error occurred prerendering page "/ID/1/Message/1". Read more: https://nextjs.org/docs/messages/prerender-error
Error: Error serializing `.ninja[3].username` returned from `getStaticProps` in "/ID/[id]/Message/[msid]".
下記のページを開いてみると大元の記述にfrom adding non-pagesとある。
https://nextjs.org/docs/messages/prerender-error
確かに、生じている問題は下記の2パターンがメイン。
Error: Error serializing `.ninja[3].username` returned from `getStaticProps` in "/ID/[id]/Message/[msid]".
Error: Error serializing `.ninja[0].username` returned from `getStaticProps` in "/ID/[id]/Message/[msid]".
つまりそれ以外のninja[1].ninja[2].は問題ないということ。
`.ninja[3].username`
Error occurred prerendering page "/ID/1/Message/1".
Error occurred prerendering page "/ID/1/Message/2".
Error occurred prerendering page "/ID/1/Message/3".
Error occurred prerendering page "/ID/1/Message/4".
`.ninja[0].username`
Error occurred prerendering page "/ID/2/Message/1".
Error occurred prerendering page "/ID/2/Message/2".
Error occurred prerendering page "/ID/2/Message/3".
Error occurred prerendering page "/ID/2/Message/4".
ninja[].usernameの意味は[msid]ページにて確認すべきと感じたので getStaticPathsとgetStaticPropsのログを見直す。
const paths = filtered.map(ninja => {
return {
params: { id:ninja[0].toString() ,msid:ninja[1].toString()}
}
})
console.log('paths')
console.log(paths)
paths
[
{ params: { id: '1', msid: '1' } },
{ params: { id: '1', msid: '3' } },
{ params: { id: '1', msid: '2' } },
{ params: { id: '1', msid: '4' } },
{ params: { id: '3', msid: '1' } },
{ params: { id: '3', msid: '3' } },
{ params: { id: '3', msid: '2' } },
{ params: { id: '3', msid: '4' } },
{ params: { id: '2', msid: '1' } },
{ params: { id: '2', msid: '3' } },
{ params: { id: '2', msid: '2' } },
{ params: { id: '2', msid: '4' } },
{ params: { id: '4', msid: '1' } },
{ params: { id: '4', msid: '3' } },
{ params: { id: '4', msid: '2' } },
{ params: { id: '4', msid: '4' } }
]
context
{
params: { id: '1', msid: '1' },
これをみていくと`.ninja[3].username` つまり0を含めると4番目のメッセージの中にusernameがundefinedとなっているものがある。
{
title: null,
details: null,
userid: 2,
username: undefined,
category: null,
tweetId: null,
debankid: null,
address: null,
mail: '123456@gmail.com',
youtubeId: null,
mediumid: null,
docid: 'NHs7KyiPgJTZZUmgJPUw',
tweetlink: null,
discordlink: null,
youtubelink: null,
telelink: null,
whatslink: null,
followers: null,
following: null,
nftlink: null,
customlink1: null,
customhash1: null,
customlink2: null,
customhash2: null,
ycomment: null,
storagelink: null,
itsmeid: null,
Message: 'かき',
Towhom: 1,
date: '30000000',
msid: 1
},
中身を見ていくと、username:”nak”として登録されている。
docidのNHs7KyiPgJTZZUmgJPUwではエラーが出ている一方でuE0uEGVClq2KplFRpJxeではきちんとusername:”nak”で登録されている。
違いはデータベースのフィールドの並びの順番程度しかなかったのでusernameをフィールドの一番下に持ってくる形で揃えた。
git remote rm origin
git reset --hard origin/master
rm -rf .git/
git init
git config --global init.defaultBranch main
git add .
git commit -m
git remote add origin https://github.com/
GIT_TRACE=1 GIT_CURL_VERBOSE=1 git push -u origin main
githubにvercel13を作成。お祈りタイム。
無事公開できた。よかった。
後はアニメーションのお迎え準備。時間がありそうなので掲示板機能も追加してみるか検討。
現在企画中のプロジェクトがあり、スロースタートの部分がNouns DAOに似ていたので色々調べてみた。勉強になった。
トークンの生成からオークション、ガバナンスまで自動的に実行。プログラムだけでNFT生成から販売を完結させている。その際にCCOのライセンスをNFTに付与して、著作権を放棄している。Nounsは24時間ごとに1体ずつ、第三者の介入無しでオークションに出され続ける。オークションの決済が1つ終わる度に次が始まる。生成されたアートワークは直接オンチェーンに保存されるピクセルアート。なのでIPFSではない。
プロジェクトの開始から5年間はプロジェクトの創業メンバーに10体に1体のNounが報酬(最初の5年間は供給量の10%)として渡され、売り上げは100% Nouns DAOの基金に蓄積。
創業メンバーは拒否権を持っていてNounsの少ない初期に悪意のある提案を却下できる。
Nouns DAOは コンパウンドガバナンス のフォークを使用。
1体のNounにつき、1票の投票権。一方で、公式サイトのフォーラムから、誰でもNounsについての提案をおこなったり、議論に参加することが可能。
Nouns DAOの基金は、「子どもたちにメガネを贈る」「オープンソースの支援のために169ETH(75万米ドル)をGitcoinに寄付する」「新種のガラスガエルの種の命名権を購入する」「国際宇宙ステーションにNounを送る 」などにお金を出しているよう。
私のプロジェクトでは、もっと発行スピードを遅くし(週1または2週間に1回)、この基金対象先は絞られることになるか。IPFSとsvgの自動生成のもの2種を提供できるようにする。