# 十六進制在白名單市場搶購方式

By [kylekkkk.eth](https://paragraph.com/@kylekkkk) · 2022-05-06

---

### 背景：

目前越來越多項目推出自己的白名單市場，像是著名的Godjira、Habibiz等，都有相當不錯的優質白單，然而相信家人們也有遇過，每當稀有白單發售開始時，前端網頁總是塞車，不塞時卻被科學家們購買完的狀況，因此上網查了關於十六進制直接調用合約的方式，希望能夠幫助到想在白單市場搶購到心儀白單的家人們。

### 手動VS機器人：

不知道有沒有手上有Clay的家人，明天白單市場開放，可以利用$mud購買BF\_Party、NFTKEYS等優質白單。透過官方連結（[https://market.martian.tech/index.html](https://market.martian.tech/index.html)）可以發現此市場是許多著名白單市場的聚合器（或總模板網頁，我不知道怎麼稱呼它），Project Godjira、Chain Scouts都是使用他的前端，這加速了此篇教學的研究速度。此外之後需要使用的家人也可以在這裡直接做市場選擇，不用一個個網頁翻。

想當然明天的白單販售必定又是科學家的世界，雖然最快最強的還是用機器人調用合約，但是我還不會，所以寫不出教程，只能先使用這個方法增加自己的成功機率，至少減免了網頁前端lag的大問題，能在同一區塊送出，就有機會搶到。

### 示例教程：

以上以Martian白單市場做舉例，

### 1，找到白單市場合約與調用案例

透過在網頁前端按F12，然後一個個檔案用Ctrl+F尋找0x開頭的關鍵字，找到了Martian白單市場的合約地址：

“ **0xFD8f4aC172457FD30Df92395BC69d4eF6d92eDd4”**

![](https://storage.googleapis.com/papyrus_images/93747aedef96f391e278a6bf008748999841ea1882c78e7e21303c48c4fc939e.png)

利用Etherscan查看合約後，尋找購買白單的紀錄，這裡用最上方一筆的交易做示範，點入Txn Hash進入查看詳情

![](https://storage.googleapis.com/papyrus_images/173e3a8063f4236b04d4e91f292d6c0c3066855a6d7845f64e72d4c3aa0e0806.png)

在Tokens Transfer可以看到，此購買數據是利用$Jira購買白單的，

接著拉到詳情最下面，點開Click to see More在View Input As中選取Original，可以看到input Data部分，有一串編碼後的16進制數據:

**“0x063d11de00000000000000000000000000000000000000000000001043561a8829300000”**

實際上這部分內容就是調用合約所需要的所有內容，它包含了合約的方法和參數。

![](https://storage.googleapis.com/papyrus_images/a0805c6ed65535d65c9986539dc8f8239a5cf9626d52ebc1651a32d302faa758.png)

### 2\. 分析調用合約方法的來源

每個人調用合約方法的參數可能會有差異，下面我們接著分析，怎麼生成自己的inputdata，點擊下拉框，在View Input As中選擇Default View，可以看到三部分內容：Function為調用合約的目標函數名稱，MethodID為使用keccak256算出來的purchaseWLVendingItem(uint256) 目標函數的哈希值的十六進制（此部分我不會算，僅知道而已）

![](https://storage.googleapis.com/papyrus_images/bf3bf279bc38ee487eb8d034016190bda78723440e8c6452604d79dfd9021ecc.png)

接著我們查看\[0\]這部分後方的數據，可以看到：

**“517ab044bda9629e785657dbbcae95c40c8f452c”**

這一串數字正好是$Jira代幣地址的0x後的數字，此函數方法中的參數是uint256類型的，在輸入參數的時候需要佔用對應位數，uint256類型的參數如果換成16進制的話總共需要64位，所以將「517ab044bda9629e785657dbbcae95c40c8f452c」補0到64位即為

**”000000000000000000000000517ab044bda9629e785657dbbcae95c40c8f452c”**

![](https://storage.googleapis.com/papyrus_images/e31d5152d7b37e6fba6220e94059abdcdcfd0d64e832239c01f59802d4de1f59.png)

我們獲得了前面\[0\]那一行的來源，那麼\[1\]又是怎麼來的呢？

我們將\[1\]的內容利用工具從16進制轉換到10進制可以看到數字為62，

![](https://storage.googleapis.com/papyrus_images/b28aa4cea1f3569b7463111ac6e55e1a97b11b9a747af2c58d90a951c5645d47.png)

回到白單市場，對Project Godjira市場最上方的物件圖片點inspect，在展開的部分我們發現，project後方的數字正好是剛才得到的62，又翻了幾條交易紀錄，確定了\[1\]所寫入的，是關於購買物件的選擇，

我們接著可以看出，前面Original Input Data的

**”0xba17a3b4000000000000000000000000517ab044bda9629e785657dbbcae95c40c8f452c000000000000000000000000000000000000000000000000000000000000003e”**

就是**MethodID+\[0\]+\[1\]的總和，**

到這步，該有的都有了，因此下一步就是製作我們要使用的十六進位數據。

![](https://storage.googleapis.com/papyrus_images/b09e0bf4c59bf05f661b11fe73a9a0fd56eec48a7887ef98a7082bcf60719322.png)

### 3\. 製作欲購買物件的十六進制數據

我們用上方的方法來實做一次，用Clay的代幣$mud做示範，可以得到\[0\]內的數據應為：

**“000000000000000000000000ee0240888291bb5d2b41b778971a7730a26dcf24”**

![](https://storage.googleapis.com/papyrus_images/ba2e794a234d5ee3a955531bb79eb11a36d540111b132bf3c014cde3da1f9443.png)

接著看到Clay官方的公告，有四項商品，我在這邊猜測官方會用這個方式排序商品，因此要購買到我要的BF\_Party，就必須選擇第三個商品（從後面數），因為程式碼是從零開始計數，因此編號應為2，我們可以得到\[1\]為：

**“0000000000000000000000000000000000000000000000000000000000000002”**

![](https://storage.googleapis.com/papyrus_images/8031778a49bc93516aa7b9682f355292817347b93d690a38cb88087626c2e0f4.png)

最後將**MethodID+\[0\]+\[1\]拼起來，得到**

**“0xba17a3b4000000000000000000000000ee0240888291bb5d2b41b778971a7730a26dcf240000000000000000000000000000000000000000000000000000000000000002”**

扣掉前方的0x前綴，就是我們要在Metamask上輸入的十六進制Input Data，我們打開小狐狸進行測試，對Martian合約地址0xFD8f4aC172457FD30Df92395BC69d4eF6d92eDd4進行轉帳，金額填0，貼上Input Data點選下一頁：

![](https://storage.googleapis.com/papyrus_images/b2563ffacf8a3b19120c0ff3590a593bd9037e6d4bb0bdba8dd610386dd2b535.png)

可以看到我們成功調用了purchaseWLVendingItem(uint256)函數，並且交易使用$mud合約地址，交易物件index:2（第三個物件），只要在物品上架時準時送出，過了科學家這關，就能成功購買了！

學會此方式的大家，在遇到不同的白單商店時，也能效仿以上教學找出該商店的調用合約數據（像是TOS白單），只要找到對的交易哈希，基本上八九不離十，都是類似的辦法。

### 後記

大家好，我是Kyle，這篇文大概花了三個小時研究+兩個小時寫出來XD，這是我人生的第一篇Mirror教學文，也是偏關於科學家的。從小到大玩過很多遊戲，不時都能聽聞有人靠開外掛賺錢，我對這種人抱著一種莫名的憧憬，而加入幣圈之後也才知道在幣圈也有一群開外掛的人的存在，就是科學家們，雖然科學家對於一般玩家來說，是很可惡的存在，甚至破壞市場環境，但我覺得這種用資訊、甚至智商差製造出的成功，也無非是一件很厲害的事，近期開始緩慢的摸Solidity教程，希望在未來的某一天，我也能幫助群內的大家在nft方面製造更多的成公（前提是我的學業跟下學期的營隊撐得住🥵）。

BTW雖然教程寫完了，但依舊不確定等等早上的戰果會如何，還請大家幫我加油🙏

* * *

如果你覺得對你有用

可以關注我的推特：[https://twitter.com/kylekkkkwu61](https://twitter.com/kylekkkkwu61)

和我的Mirror：[https://mirror.xyz/0xB946795A5CeBb3f252f7Ae7d38fF83B9ad3031D0](https://mirror.xyz/0xB946795A5CeBb3f252f7Ae7d38fF83B9ad3031D0)

Debank: \[互關\]([https://Debank](https://Debank): [https://debank.com/profile/0xb946795a5cebb3f252f7ae7d38ff83b9ad3031d0](https://debank.com/profile/0xb946795a5cebb3f252f7ae7d38ff83b9ad3031d0))

---

*Originally published on [kylekkkk.eth](https://paragraph.com/@kylekkkk/C37TR4j5Gr3yLv58uON5)*
