所有文章
指南

Solana 多對多轉賬:錢包一對一配對

配對錢包轉賬喺 Solana 上點行:一行一筆交易,每筆 0.001 SOL,仲有寧願跳過成行都唔削減金額嘅 rent 規則。

閱讀時間 14 分鐘 J Tools Editorial
近乎全黑嘅底上排住兩列紅點,左邊每個點都由一條幼直線連到右邊啱啱一個點

喺 Solana 上一次過搬一大批付款有三種做法,而呢三種一直俾人溝埋一齊講。多發工具由一個錢包付俾一份名單。歸集工具將好多個錢包嘅餘額匯集到一個地址。剩低嗰種情況,前面兩種都表達唔到。

一筆多對多轉賬,令每個發送錢包配住自己嗰個收款地址。發送錢包 7 付俾地址 7,發送錢包 8 付俾地址 8,兩行之間完全冇關連。

聽落好似係枝節。實際上,呢個係資金只得一個來源,同四十個各自獨立嘅來源之間嘅分別。

  • 一行就係一筆交易。嗰行嘅發送錢包,承擔嗰行全部開支。
  • 平台費每筆轉賬 0.001 SOL,網絡費 0.000005 SOL。
  • 代幣模式下,如果收款方從來未持有過該代幣,發送方仲要為佢開代幣帳戶,墊付 0.00149 SOL 嘅 rent 按金。
  • 過唔到檢查嘅行會成行跳過,唔會將金額削落去。

批量轉賬嘅三種形態

多發工具係一對多。一個錢包,一份收款名單,一個付款方。空投要嘅就係呢種形態。

批量歸集工具係多對一。四十個錢包,一個目的地,運行完之後所有餘額落喺同一處。

多對多工具係第三種形態,亦係唯一識得配對關係嗰種。第一行有第一行嘅出資錢包,第二行係另一個出資錢包。冇公用資金池,行同行之間亦唔會互相補位。

左邊一個光點好似扇噉散向十個點組成嘅一列,右邊筆直嘅線將兩列點一對一連埋

一行要使幾多

喺多對多轉賬入面,一行上面最多擺住三項開支,全部由嗰行嘅發送錢包承擔。冇公用嘅出資帳戶,所以一個連自己嗰行都蓋唔住嘅錢包,亦唔會向上一行借。網絡嗰項係每個簽名 5000 lamport 嘅基礎費,Solana 自己嘅手續費文件有列明呢個數字。

項目SOL 模式代幣模式
平台費0.001 SOL0.001 SOL
網絡費0.000005 SOL0.000005 SOL
收款方嘅代幣帳戶唔涉及0.00149 SOL,而且淨係喺嗰個收款方從未持有過呢種代幣嘅時候

第三行值得睇兩次,因為絆住人嘅正正係佢。將一個 SPL 代幣發去一個從未掂過佢嘅地址,等於新開一個帳戶去裝佢,而 Solana 要為呢個帳戶收一筆 rent 按金。呢筆按金遠遠高過網絡費。

一百個新收款方,呢項就佔咗成張單裡面大約 0.149 SOL,而同樣條件下平台費停喺 0.1 SOL。按金唔會銷毀:佢留喺收款方嘅代幣帳戶裡面,日後邊個關咗呢個帳戶就退返俾邊個。

被跳過嘅行

多對多喺簽名之前會行兩道檢查,兩道都係將行攔低,而唔係改動佢。

第一道係簡單算術。如果發送錢包蓋唔住自己嘅金額加手續費,再加上可能要開嘅代幣帳戶,嗰行就會打上標記,原樣留住。唔會有半截發咗出去嘅情況。

第二道古怪啲,亦值得搞清楚,因為第一次見佢好似係 bug。Solana 唔准留低一個餘額大過零、但又低過免 rent 門檻嘅帳戶。普通錢包呢個門檻係 0.00065 SOL,出自 Solana 嘅帳戶文件裡面嗰條公式。

將帳戶徹底清空係准許嘅。喺裡面留低 0.00005 SOL 就唔准。將錢包推入呢道罅嘅行會標成 rent dust,就咁留住唔發。

一條橫軸:零度有一個光點,跟住係兩條豎條夾住嘅紅色區間,入面有一個暗點,區間之外仲有兩個光點

點解唔索性削少啲金額

另一條路係將金額一路削到裝得落,噉樣仲差。個數字係人自己填入去嘅。一個唔出聲就發另一個數字嘅工具,係之後再對唔到任何一張表嘅工具。

要就將餘額成筆發走,要就將金額降到剩返嗰啲越過門檻。預覽會預先講清邊幾行受影響,工具亦會喺簽任何嘢之前,一次過將所有目標帳戶查晒。

一行一筆交易,點解呢點緊要

多對多將每一行都做成自己獨立嘅交易,所以冧咗嗰行淨係冧自己。換成將所有嘢堆入一筆交易嘅批次,第 30 行嘅錯誤會將前面 29 行一齊帶走。

呢樣係有代價嘅:四十對就係四十個簽名同四十筆網絡費,每筆只係 0.000005 SOL。換返嚟嘅係一份可以逐行讀嘅結果。想知呢啲交易入得幾快,數字擺咗喺 Solana 優先費要俾幾多嗰篇。

幾時多對多先至係啱嘅形態

輪換錢包對大多數人嚟講係最實在嘅答案。手上一批錢包帶住唔想再帶落去嘅歷史,用錢包批量生成器整一批新嘅,然後想舊錢包 7 淨係轉錢俾新錢包 7,其他一律唔郁。

第二種係付款名單,付款方逐行變。幾個項目,幾個金庫,一張表。多發工具根本表達唔到,因為佢嘅出資錢包啱啱只得一個。

第三種係快照之後嘅再分配,每個持有者由一個事先指派俾佢嘅錢包付款。分之前點讀嗰份分佈,寫咗喺代幣持倉分佈點分析裡面。

名單要點準備

多對多嘅第一趟先用兩行行一次。結果表會話返俾你聽,一行實際使咗幾多,連代幣帳戶按金一齊計埋,然後先至去發成份名單。

順手亦查一查收款方係咪已經持有呢種代幣。如果名單有一半係舊持有者,按金嗰項會直接砍一半,而喺一百行嘅規模上,佢喺成張單裡面都算幾大嘅一項。

開始之前將邊個錢包付邊一行記低。運行完之後再去還原呢份對應關係,會比你而家想像中煩好多,尤其係當發送錢包啱啱先生成、仲未有可以辨認嘅歷史嘅時候。

關於餘額最後講一句:每個發送錢包裡面留嘅錢,要比佢嗰行嘅金額多少少。如果將金額計到啱啱好、一個小數位都唔留,rent 檢查就會將嗰行剔出嚟,你要重新俾錢佢,仲慢過一開頭就留返啲鬆動位。

名單大咗之後會變嘅嘢

十行嘅時候,上面呢啲都仲好易應付。去到兩千行,有兩件事變成真正嘅工作,而且都發生喺工具以外。

第一件係俾錢。每個發送錢包喺開始之前都要備好自己嘅金額加手續費,冇邊一行可以幫另一行墊住。即係話要先做一輪分發,通常由一個金庫出,而且寧願留啲鬆動位,都好過計到啱啱好。

第二件係事後對數。四十行睇吓張表就得。兩千行就會想將結果匯出,同原本嗰張表逐行核對,因為被跳過嘅行喺區塊瀏覽器裡面根本唔會出現:佢哋作為交易從未存在過。

仲有一個冇咁明顯嘅效果。如果名單裡面新收款方同舊收款方溝埋,每行成本就唔係恆定,攞頭十行計出嚟嘅平均值,同最終總數會有出入。數吓有幾多個收款方要新開帳戶,再將呢個數乘以 0.00149 SOL,就係按金嗰項嘅總數。

常見問題

呢個同將多發工具行好多次有咩分別?

多發工具每次運行都只得一個出資錢包,所以四十個出資錢包就要運行四十次,加埋四十次人手切換錢包。多對多就只係運行一次,四十行。

失敗嘅行會唔會產生費用?

視乎喺邊個階段失敗。過唔到預檢嘅行根本唔會簽名,交易亦未去到網絡,所以唔使俾錢。已經簽名、廣播,之後先喺鏈上失敗嘅行,同其他失敗嘅 Solana 交易一樣要俾網絡費。平台費係同一筆交易入面嘅一個指令,轉賬冇成功就唔會結算。

發送方同收款方可唔可以重疊?

可以。同一個錢包可以喺某一行發出、喺另一行收到。每一行都係獨立交易,所以行同行之間嘅先後次序冇保證。如果第 2 行要用第 1 行收到嘅錢,就分成兩次運行。

點解我嗰行被標成 rent dust?

因為發送錢包剩返嘅餘額會落喺零同 0.00065 SOL 之間,而 Solana 唔接受處於呢個狀態嘅帳戶。將餘額成筆發走,等錢包最後剩零,或者將金額降低,等剩返嘅餘額越過門檻。

淨係發代幣嘅錢包又使唔使有 SOL?

要。就算搬嘅係代幣,網絡費同平台費一樣係用 SOL 俾。

配對嘅數量有冇上限?

多對多冇固定上限,貼幾千對入去都得。工具以每批一百筆簽名同發送,再以最多二百五十六筆為一批確認,每次等待確認最長九十秒,所以一次長嘅運行要幾分鐘,唔係幾秒。睇得住嘅運行先至執得返,好長嘅名單不如拆開幾次細啲嘅運行,會易搞啲。實際攔住你嘅仲係準備工夫:每個發送錢包都要事先備好錢。

一句話點決定

如果張表有一欄寫住付款方,要嘅就係多對多呢種形態。如果所有行都由同一個錢包出,噉就用多發工具,一次搞掂,唔使運行四十次。若果少咗一行,先睇 rent 門檻,再去估係咪出咗 bug。關於呢個門檻,租金餘額不足點算嗰篇寫得仔細啲。

J
作者
J Tools Editorial

J Tools 團隊的文章。

查看 J Tools Editorial 的全部文章 →

相關文章