//tips
//smart contract
メインのmetamaskに戻る。
ニューモニックキーにより復元するとテストネット設定が再度やり直しになるも復元すると元のようにtest ethなどはきちんと入っているので安心。
下記のMumbai Testnetなどは事前に別のテキストフォイルに記載しておくとコピペで済むのでおすすめ。
Mumbai Testnet
https://rpc-mumbai.maticvigil.com/
80001
MATIC
https://mumbai.polygonscan.com/
Opensea testネットに入り、tokenid:6のものをsellする。
Floor priceより低い価格ですと警告が出たが0.0001で無事にsell登録完了。
こちらのmetamaskでremixに接続し直す。
コントラクトアドレスを入れて、インスタンスの生成。
Tokenid:6の部分をgetApprovedにて確認したが下記は特に変更はない。ここにはopenseaへの許可は反映されなかったよう。
0:
address: 0x0000000000000000000000000000000000000000
Openseaに対しては全て許可という形になっているのだろうか。
nakiCollectible
https://testnets.opensea.io/assets/rinkeby/0xd01fd6c7d061ed797e9269e9f31889e65ca25da5/6
さて、再び元のテスト用のアカウントに戻る。
同じリスティングページに入り買付実行。無事に購入できた。
その後購入側のテスト用metamaskからremixを起動。
Tokenid:6のOwnerofを実行するときちんとtest用のメタマスクアドレスが表示された。
ちなみにgetapprovedを実行してみると下記のように表された。直接approveを出さない、opensea経由で売買すればこちらは関係なさそう。
0:
address: 0x0000000000000000000000000000000000000000
Approveを解除するrevokeのやり方を確認していく。
1.etherscan
まずはetherscanを利用したrevokeから。これはテストネットのetherscanにはない機能。
右上のバーにあるmoreをクリックし、tokenapprovalsをクリック。
その後に検索欄に自身のアドレスを入れて検出されたものをrevoke。revokeには費用がかかるのでそこは理解しておく。
処理は数秒で終わり、View your transactionが出たら処理が通ったということ。何度もクリックしないこと。
2.revoke.cash
revoke.cashというrevoke専用のサイトもあるとのこと。TokensプラットフォームとNFTsプラットフォームへの許可を確認できる。
https://revoke.cash/
Revokeを行う習慣をしっかりつけるのが大事。
contract.sendTransaction({data:pwnFuncSig})についての深堀を行う。
まず、sendを行うことの意味は、トランザクションを生成し、ブロックチェーン上のデータを変更することになる。viewまたはpureではない関数には、sendを使う。
一方でcallは呼び出すだけ。
おまけに、remixでのインスタンス生成では、下記のcodeを実行していることになる。
const contract = web3.eth.contract(abi).at(address);
他にも下記のような表現もある。
//トランザクションの実行(コントラクトのset関数を実行)
let response = contract.set.sendTransaction("naki”,{from:coinbase,gas:3000000});
console.log("response:",response); //responseにはトランザクションのハッシュ値が返ってくる
下記のようなさまざまなタイプが出てくる。違いはなんなのかを理解する必要がありそう。
web3.eth.sendTransaction()
contract.methods.myMethod(…).send(…)
contract.set.sendTransaction
https://web3js.readthedocs.io/en/v1.2.11/web3-eth.html#id84
コードベースの参考情報はこちら。
https://scrapbox.io/sushiether/web3.js_web3.eth.sendTransaction