ton函式函式hash的兩種形式

若-飞發表於2024-10-13
// Send Msg
        let msg =  beginCell()
        .storeBuffer(Buffer.from("c5341626", "hex")) // 傳送結構體
        .storeStringRefTail("2") // storeStringTail 會報錯不支援?
        .endCell()

        // let msg =  beginCell()
        // .storeUint(3308525094, 32) // c5341626的10進位制數 3308525094
        // .storeStringRefTail("1")
        // .endCell()

        let seqno: number = await wallet_contract.getSeqno()
        console.log("wallet_contract seqno is ",seqno);
        let result =await wallet_contract.sendTransfer({
                seqno: seqno,
                secretKey: keyPair.secretKey,
                messages: [
                    internal({
                        to: deployContract,
                        value: toNano("0.1"), // 給個0.2Ton作為gas費
                        init: null,
                        bounce: false,
                        body: msg ,
                    }),
                ],
        });

      let msg =  beginCell()
        .storeBuffer(Buffer.from("c5341626", "hex")) // 傳送結構體
        .storeStringRefTail("2") 
        .endCell()

和這個區塊是一樣的:

      let msg =  beginCell()
        .storeUint(3308525094, 32) // c5341626的10進位制數 3308525094
        .storeStringRefTail("1")
        .endCell()

根據上面的轉換,c53416263308525094 實際上是相同的數值,只不過一個是十六進位制表示,另一個是十進位制表示。因此,這兩個字串代表的數值是相同的,只是表達方式不同。

在 TON 區塊鏈中,這兩個數值作為頭部識別符號可能用於區分不同的訊息或資料型別。因此,在合約中可能會根據這些頭部識別符號來識別不同型別的訊息或資料。請根據具體的合約邏輯和 ABI 定義來確認這些頭部識別符號的具體含義和用途。

相關文章