所有文章
指南

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

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

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

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

一筆多對多轉賬,令每個發送方留住自己嘅收款方。錢包 7 付俾錢包 7,第八個付俾第八個,兩者互相唔知對方存在。

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

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

批量轉賬嘅三種形態

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

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

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

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

一行要使幾多

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

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

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

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

被跳過嘅行

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

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

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

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

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

點解唔索性削少啲金額

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

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

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

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

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

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

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

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

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

名單要點準備

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

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

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

關於餘額最後講一句:每個發送錢包裡面留嘅錢,要比佢嗰行嘅金額多少少。掐住小數尾位配嘅話,rent 檢查會將嗰行搬開,你要重新俾錢佢,比一開頭就留返鬆動位仲慢。

名單大咗之後會變嘅嘢

十行嘅時候,上面呢啲都仲係舒服嘅道理。多對多行到兩千行,有兩件事變成真正嘅工作,而且都發生喺工具以外。

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

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

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

常見問題

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

多發工具每行一次,出處啱啱只得一個。四十個出處就係四十次運行,加埋四十次人手切換錢包。喺呢度係行一次,四十行。

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

唔會。過唔到預檢嘅行根本唔會簽名,所以網絡費同平台費都唔會出現。

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

可以。同一個錢包可以喺某一行發出、喺另一行收到。每一行各自查各自。

點解我嗰行被標成 rent dust?

因為發送錢包剩返嘅餘額會落喺零同 0.00089088 SOL 之間。將餘額成筆發走,或者將金額降低。

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

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

配對嘅數量有冇上限?

實際攔住你嘅係準備工夫,唔係工具本身:每個發送錢包都要事先備好錢。

一句話點決定

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

J
作者
J Tools Editorial

J Tools 團隊的文章。

查看 J Tools Editorial 的全部文章 →

相關文章