国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

(三) 用 JavaScript 寫 DApp:FO 轉(zhuǎn)帳

sherlock221 / 1463人閱讀

摘要:官網(wǎng)上的說法感覺容易產(chǎn)生誤解。上述三個(gè)鏈或者網(wǎng)完全隔離。目前我申請了兩個(gè)賬戶,并且空投了一些測試鏈的。初始化客戶端一切準(zhǔn)備就緒,我們要實(shí)現(xiàn)轉(zhuǎn)賬,我們需要獲取一個(gè)客戶端。后記轉(zhuǎn)賬操作相關(guān)的內(nèi)容就介紹完了。

FO 是官方在 FibOS 發(fā)行的數(shù)字貨幣,也在多個(gè)交易所上交易,作者在寫文章的時(shí)候,大概報(bào)價(jià)是 0.05 元。官方也推出了一個(gè)簡潔易用的錢包 APP 供大家管理自己的 FO 資產(chǎn),有興趣的同學(xué)也可以下載使用(https://wallet.fo/zh-cn)。有 FO 賬戶還沒有 FO 的小伙伴不妨留下 FO 賬戶,說不定我會(huì)抽幾個(gè)給大家打 FO 呢。

但是怎么打 FO 呢,很簡單,大家可以 FO 錢包 APP 中點(diǎn)擊轉(zhuǎn)帳,輸入收款賬戶和轉(zhuǎn)賬數(shù)量后點(diǎn)確定一氣呵成。

但是例如我們在一些需要大批量轉(zhuǎn)賬或自動(dòng)化轉(zhuǎn)賬的情況下,我們?nèi)绾瓮ㄟ^代碼實(shí)現(xiàn)呢?接下來我?guī)ьI(lǐng)大家一起來體驗(yàn)一下:

1. 創(chuàng)建項(xiàng)目

我們創(chuàng)建一個(gè)文件夾叫 transfer,并且進(jìn)入該文件夾:

mkdir transfer
cd transfer

初始化項(xiàng)目。我們可以執(zhí)行 fibos 命令是因?yàn)槲覀円呀?jīng)安裝了 fibos 命令行工具。如果不清楚如何安裝的可以閱讀我本專欄的前一篇文章。

fibos --init

安裝 fibos 依賴包。這里可以 使用 fibos 安裝也可以選擇 npm 命令安裝。當(dāng)然如果您安裝特別慢,可以使用 cnpm 或者淘寶 npm 鏡像。

fibos --install fibos.js

到此為止,準(zhǔn)備工作就做完了。此時(shí)你的 transfer 文件夾的目錄結(jié)構(gòu)是這樣的:

.
├── node_modules
└── package.json
2. 主網(wǎng)和測試網(wǎng)介紹

這里需要解釋一下的是,我們在開發(fā)過程中經(jīng)常碰到的鏈主要有三類:

主鏈/主網(wǎng)(Main Chain / Main Net),是由 21 個(gè)投票當(dāng)選的節(jié)點(diǎn)負(fù)責(zé)出塊。我們上述說到的價(jià)值 0.05 的 FO 就記錄在主鏈上。

測試鏈/測試網(wǎng) (Test Chain / Test Chain),測試鏈運(yùn)行著跟主鏈一模一樣的機(jī)制,就是大家都知道這是一條開發(fā)用來測試的鏈,上面的 FO 并沒有價(jià)值。

本地鏈/本地網(wǎng)。這個(gè)是我生造的一個(gè)詞。根據(jù)官網(wǎng):https://dev.fo/zh-cn/guide/tu... 的介紹應(yīng)該是在本地生成一個(gè)鏈或者網(wǎng),只是只有你一個(gè)節(jié)點(diǎn)。官網(wǎng)上的說法感覺容易產(chǎn)生誤解。

上述三個(gè)鏈或者網(wǎng)完全隔離。大家不要搞混了。

主鏈:

ID:6aa7bd33b6b45192465afa3553dedb531acaaff8928cf64b70bd4c5e49b7ec6a
EndPoint: http://api.fibos.me  
# 當(dāng)然還有其他,可以在官方文檔中查詢:節(jié)點(diǎn)介紹 — Dev.fo

測試鏈:

ID:68cee14f598d88d340b50940b6ddfba28c444b46cd5f33201ace82c78896793a
EndPoint:http://api.testnet.fo
這里我們?yōu)榱丝焖匍_始,建議使用測試網(wǎng)絡(luò),減少工作量和不必要的坑打擊積極性。

我們可以在測試網(wǎng)的網(wǎng)站上創(chuàng)建幾個(gè)測試賬戶并給幾個(gè)賬戶空投幾個(gè) FO,創(chuàng)建方法:

進(jìn)入http://api.testnet.fo/account,點(diǎn)擊隨機(jī)賬戶隨機(jī)密鑰,記錄你的賬戶、私鑰和公鑰匙,點(diǎn)擊創(chuàng)建

進(jìn)入 http://api.testnet.fo/reward,輸入你剛才創(chuàng)建的賬戶名稱,點(diǎn)擊獲取獎(jiǎng)勵(lì)。

目前我申請了兩個(gè)賬戶,并且空投了一些測試鏈的 FO。分別是:

賬戶: gtcmpcrcm2h5
私鑰: 5JVtt2nHcr52xfULsRCAKGAFDuCazWs5Z1RcvZmerE8W3Fr66UL
公鑰: FO7zZJJdfTvGKpdudAcYQp1y97wP9cC9vG2McmeWzvgLWVnkVy9m

賬戶: cmvdkvfgedjg
私鑰: 5JBoQimR9kDB4922S7BaDjQnm8zaD5D2qNXRbbVKZryRCdUxhfc
公鑰: FO7wwaYC7r1z1sP7xyBBa9prEt7dFNoMXY9ZMREEyRUYxKgx4KD4

?? 注意:此處是測試鏈,且為了方便大家才列在這里。千萬千萬不要在任何地方泄露你的私鑰,泄露代表資產(chǎn)丟失。

3. 初始化客戶端

一切準(zhǔn)備就緒,我們要實(shí)現(xiàn)轉(zhuǎn)賬,我們需要獲取一個(gè)客戶端。我們在目錄下創(chuàng)建一個(gè) initClien.js 文件,編寫以下代碼:

var FIBOS = require("fibos.js");

function initClient(_keyProvider) {
    return FIBOS({
        chainId: "68cee14f598d88d340b50940b6ddfba28c444b46cd5f33201ace82c78896793a",
        keyProvider: _keyProvider,
        httpEndpoint: "http://api.testnet.fo",
        logger: {
            log: null,
            error: null
        }
    });
}

module.exports = initClient;

其中 chainId 即鏈的 ID,這里我們接入測試鏈,所以輸入的是測試鏈的 ID。httpEndpoint 即為接入點(diǎn),也是測試鏈的接入點(diǎn)。_keyProvider 為要?jiǎng)?chuàng)建 Client 的那個(gè)賬戶的私鑰,我們后續(xù)會(huì)以參數(shù)的形式傳入。

此時(shí)目錄結(jié)構(gòu)為:

.
├── initClient.js
├── node_modules
└── package.json
4. 轉(zhuǎn)帳

我們在目錄中新建一個(gè) transfer.js 文件,在文件中編碼:

  var FIBOS = require("./initClient.js")
    var config = {
        "public-key": "FO7zZJJdfTvGKpdudAcYQp1y97wP9cC9vG2McmeWzvgLWVnkVy9m", // FO 轉(zhuǎn)出方私鑰
        "private-key": "5JVtt2nHcr52xfULsRCAKGAFDuCazWs5Z1RcvZmerE8W3Fr66UL" // FO 轉(zhuǎn)入方私鑰
    };

console.log(config["private-key"])
var fibos = FIBOS(config["private-key"]);

let ctx = fibos.contractSync("eosio.token");
var r = ctx.transferSync(
    "gtcmpcrcm2h5",  // FO 轉(zhuǎn)出方
    "cmvdkvfgedjg",   // FO 轉(zhuǎn)入方
    "0.1000 FO",  // FO數(shù)量
    "Hello Fibos",  // 附言
    {
  authorization: "gtcmpcrcm2h5" // FO 轉(zhuǎn)出方賬戶
});
console.log(r);

此時(shí)目錄結(jié)構(gòu)為:

.
├── initClient.js
├── node_modules
├── package.json
└── transfer.js

執(zhí)行以下命令進(jìn)行轉(zhuǎn)賬:

fibos transfer.js

成功后會(huì)輸出這次轉(zhuǎn)賬的詳情:

{
  "broadcast": true,
  "transaction": {
    "compression": "none",
    "transaction": {
      "expiration": "2019-07-03T11:49:58",
      "ref_block_num": 52798,
      "ref_block_prefix": 459488456,
      "max_net_usage_words": 0,
      "max_cpu_usage_ms": 0,
      "delay_sec": 0,
      "context_free_actions": [],
      "actions": [
        {
          "account": "eosio.token",
          "name": "transfer",
          "authorization": [
            {
              "actor": "gtcmpcrcm2h5",
              "permission": "active"
            }
          ],
          "data": "509a90e8a22a5166c05e526c6d98b644e80300000000000004464f00000000000b48656c6c6f204669626f73"
        }
      ],
      "transaction_extensions": []
    },
    "signatures": [
      "SIG_K1_K46edAAzozP1bThRBGnkNX5M11z4kVBzAAt4qrLZfFVcqaUBhsww3rBdiYgxvhdy3K39bZso1uZGMTp6PEMiQQiDWZATnx"
    ]
  },
  "transaction_id": "5dc6a856f8821a395993a083945e919eb19c0dc277c2a88e60ea31655cc07fba",
  "processed": { ... }
5. 常見錯(cuò)誤

Provided keys, permissions, and delays do not satisfy declared authorizations
{

"code":500,
"message":"Internal Service Error",
"error":{
    "code":3090003,
    "name":"unsatisfied_authorization",
    "what":"Provided keys, permissions, and delays do not satisfy declared authorizations",
    "details":[
        {
            "message":"transaction declares authority "{"actor":"cmvdkvfgedjg","permission":"active"}", but does not have signatures for it under a provided delay of 0 ms, provided permissions [], provided keys ["FO7zZJJdfTvGKpdudAcYQp1y97wP9cC9vG2McmeWzvgLWVnkVy9m"], and a delay max limit of 3888000000 ms",
            "file":"authorization_manager.cpp",
            "line_number":520,
            "method":"check_authorization"
        }
    ]
}

}
檢查 transfer.js 文件中的公鑰、私鑰和 authorization 是否正確,而且都是 FO 轉(zhuǎn)出方的。這里官網(wǎng)的示例代碼注釋寫錯(cuò)了:https://dev.fo/zh-cn/guide/to...

symbol precision mismatch

{
    "code":500,
    "message":"Internal Service Error",
    "error":{
        "code":3050003,
        "name":"eosio_assert_message_exception",
        "what":"eosio_assert_message assertion failure",
        "details":[
            {
                "message":"assertion failure with message: symbol precision mismatch",
                "file":"wasm_interface.cpp",
                "line_number":924,
                "method":"eosio_assert"
            },
            {
                "message":"pending console output: ",
                "file":"apply_context.cpp",
                "line_number":72,
                "method":"exec_one"
            }
        ]
    }
}

FO 的精度錯(cuò)誤,F(xiàn)O 數(shù)量一定要寫四位小數(shù)。多了少了都會(huì)報(bào)這個(gè)錯(cuò)誤。

missing contract
/Users/charlie/Code/fibos/transfer/node_modules/_eosjs@16.0.2@eosjs/lib/structs.js:546:7
      assert(contract != null, "missing contract");
      ^
Error: missing contract extransfer.quantity action.data transaction.actions
    at Object.fromObject (/Users/charlie/Code/fibos/transfer/node_modules/_eosjs@16.0.2@eosjs/lib/structs.js:546:7)
    at Object.fromObject (/Users/charlie/Code/fibos/transfer/node_modules/_fcbuffer@2.2.0@fcbuffer/lib/struct.js:151:34)
    at actionDataFromObject (/Users/charlie/Code/fibos/transfer/node_modules/_eosjs@16.0.2@eosjs/lib/structs.js:753:29)
    at Object.fromObject (/Users/charlie/Code/fibos/transfer/node_modules/_fcbuffer@2.2.0@fcbuffer/lib/struct.js:148:15)
    at Object.fromObject (/Users/charlie/Code/fibos/transfer/node_modules/_fcbuffer@2.2.0@fcbuffer/lib/types.js:384:28)
    at Object.fromObject (/Users/charlie/Code/fibos/transfer/node_modules/_fcbuffer@2.2.0@fcbuffer/lib/struct.js:151:34)
    at _callee2$ (/Users/charlie/Code/fibos/transfer/node_modules/_eosjs@16.0.2@eosjs/lib/write-api.js:657:38)
    at tryCatch (/Users/charlie/Code/fibos/transfer/node_modules/_regenerator-runtime@0.11.1@regenerator-runtime/runtime.js:62:40)
    at Generator.invoke [as _invoke] (/Users/charlie/Code/fibos/transfer/node_modules/_regenerator-runtime@0.11.1@regenerator-runtime/runtime.js:296:22)
    at Generator.forEach.prototype.(anonymous function) [as next] (/Users/charlie/Code/fibos/transfer/node_modules/_regenerator-runtime@0.11.1@regenerator-runtime/runtime.js:114:21)

這個(gè)使用錯(cuò)了 transfer 和 extransfer 函數(shù)。其中 transfer 函數(shù)表示的是與 EOS 主網(wǎng)兼容的轉(zhuǎn)賬方法,函數(shù)原型為:

其中 transfer 函數(shù)表示的是與 EOS 主網(wǎng)兼容的轉(zhuǎn)賬方法,函數(shù)原型為:

void transfer(account_name from, account_name to, asset quantity, string memo)

示例:

transfer("accountfrom", "accountto", "1.0000 FO", "memo field")

其中 extransfer 函數(shù)表示的是與 FIBOS 主網(wǎng)擴(kuò)展的轉(zhuǎn)賬方法,該方法支持在 FIBOS 上發(fā)行的所有通證的轉(zhuǎn)賬,函數(shù)原型為:

void extransfer(account_name from, account_name to, extended_asset quantity, string memo)

示例:

extransfer("accountfrom", "accountto", "1.0000 FO@eosio", "memo field")

其中,@ 字符后表示的是該通證的發(fā)行方,系統(tǒng)通證 FO 為 FO@eosio,eosio 表示的是該通證是系統(tǒng)原生發(fā)行的通證。

6. 后記

轉(zhuǎn)賬操作相關(guān)的內(nèi)容就介紹完了。有什么問題留言。也可以在知乎上關(guān)注我:https://zhuanlan.zhihu.com/p/...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/105302.html

相關(guān)文章

  • 使智能合約實(shí)現(xiàn)自動(dòng)分賬

    摘要:編寫合約的智能合約分為文件和合約兩部分。相當(dāng)于合約接口,合約則是功能實(shí)現(xiàn)。用戶賬戶金額內(nèi)容提供者賬戶金額平臺(tái)合約賬戶金額結(jié)果顯示,分賬賬戶和平臺(tái)合約賬戶如預(yù)期那樣獲得和。綜上,我們成功使用了智能合約實(shí)現(xiàn)了自動(dòng)分賬。 自動(dòng)分賬是很多平臺(tái)都會(huì)用到的支付功能。很多互聯(lián)網(wǎng)內(nèi)容售賣平臺(tái)都會(huì)跟內(nèi)容提供者分賬。比如:Apple 的 App Store 跟 App 開發(fā)者三七分成。很多平臺(tái)都使用了支付...

    VishKozus 評論0 收藏0
  • 使智能合約實(shí)現(xiàn)自動(dòng)分賬

    摘要:編寫合約的智能合約分為文件和合約兩部分。相當(dāng)于合約接口,合約則是功能實(shí)現(xiàn)。用戶賬戶金額內(nèi)容提供者賬戶金額平臺(tái)合約賬戶金額結(jié)果顯示,分賬賬戶和平臺(tái)合約賬戶如預(yù)期那樣獲得和。綜上,我們成功使用了智能合約實(shí)現(xiàn)了自動(dòng)分賬。 自動(dòng)分賬是很多平臺(tái)都會(huì)用到的支付功能。很多互聯(lián)網(wǎng)內(nèi)容售賣平臺(tái)都會(huì)跟內(nèi)容提供者分賬。比如:Apple 的 App Store 跟 App 開發(fā)者三七分成。很多平臺(tái)都使用了支付...

    xavier 評論0 收藏0
  • 做好 FIBOS 生態(tài)門戶 —— FO 錢包 v2.0.0 新版上線

    摘要:上周的錢包上線最新版本,快來看看有哪些變化吧。未來的錢包不僅可以用來兌換或者進(jìn)行的轉(zhuǎn)賬交易,而且可以通過實(shí)現(xiàn)更多的應(yīng)用。如果把這個(gè)確認(rèn)的時(shí)間砍掉的話,可能會(huì)存在資產(chǎn)分叉的風(fēng)險(xiǎn)。 上周 FIBOS 的 FO 錢包上線最新版本,快來看看有哪些變化吧。 一.視覺上的優(yōu)化升以及首頁快捷操作的刪減和添加 最初 FO 錢包上線的時(shí)候,因?yàn)橐?FIBOS 同步,有些設(shè)計(jì)細(xì)節(jié)沒有打磨好,而這次的新版...

    dreamtecher 評論0 收藏0
  • 做好 FIBOS 生態(tài)門戶 —— FO 錢包 v2.0.0 新版上線

    摘要:上周的錢包上線最新版本,快來看看有哪些變化吧。未來的錢包不僅可以用來兌換或者進(jìn)行的轉(zhuǎn)賬交易,而且可以通過實(shí)現(xiàn)更多的應(yīng)用。如果把這個(gè)確認(rèn)的時(shí)間砍掉的話,可能會(huì)存在資產(chǎn)分叉的風(fēng)險(xiǎn)。 上周 FIBOS 的 FO 錢包上線最新版本,快來看看有哪些變化吧。 一.視覺上的優(yōu)化升以及首頁快捷操作的刪減和添加 最初 FO 錢包上線的時(shí)候,因?yàn)橐?FIBOS 同步,有些設(shè)計(jì)細(xì)節(jié)沒有打磨好,而這次的新版...

    468122151 評論0 收藏0
  • FIBOS DAPP 應(yīng)場景詳解

    摘要:據(jù)中國防偽材料市場分析報(bào)告統(tǒng)計(jì),全世界受假冒偽劣產(chǎn)品影響的市場金額達(dá)到了億美元。區(qū)塊鏈在食品領(lǐng)域的應(yīng)用還有家樂福,年月日,家樂福正式對外宣布,家樂福中國首個(gè)區(qū)塊鏈應(yīng)用落地,上鏈的首個(gè)家優(yōu)鮮產(chǎn)品琯溪蜜柚今天正式上市。 在去年的 10 月, FIBOS 舉辦的第一季「一念巨浪」DAPP 大賽圓滿結(jié)束。大賽共收到 80 多個(gè)項(xiàng)目咨詢,其中 62 個(gè)項(xiàng)目報(bào)名成功,最終 29 個(gè)項(xiàng)目入圍進(jìn)行最后...

    jone5679 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<