github.com/turingchain2020/turingchain@v1.1.21/wallet/common/bizpolicy.go (about) 1 // Copyright Turing Corp. 2018 All Rights Reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package common 6 7 import ( 8 "github.com/turingchain2020/turingchain/common/crypto" 9 "github.com/turingchain2020/turingchain/common/db" 10 "github.com/turingchain2020/turingchain/types" 11 ) 12 13 // WalletBizPolicy 细分钱包业务逻辑的街口 14 type WalletBizPolicy interface { 15 // Init 初始化钱包业务策略,在使用前调用 16 Init(walletBiz WalletOperate, sub []byte) 17 // OnAddBlockTx 当区块被增加确认时调用本函数 18 // block: 被增加的区块详细信息 19 // tx: 区块增加的交易信息 20 // index: 交易信息在区块上的索引为止,从0开始计数 21 // dbbatch: 数据库批量操作接口 22 // 返回值为提供给外部快速检索的钱包详细信息,如果内部已经处理,不需要外部处理的情况下,可以返回nil 23 OnAddBlockTx(block *types.BlockDetail, tx *types.Transaction, index int32, dbbatch db.Batch) *types.WalletTxDetail 24 // OnDeleteBlockTx 当区块被回退删除时调用本函数 25 // block: 被回退的区块详细信息 26 // tx: 区块回退的交易信息 27 // index: 交易信息在区块上的索引为止,从0开始计数 28 // dbbatch: 数据库批量操作接口 29 // 返回值为提供给外部快速检索的钱包详细信息,如果内部已经处理,不需要外部处理的情况下,可以返回nil 30 OnDeleteBlockTx(block *types.BlockDetail, tx *types.Transaction, index int32, dbbatch db.Batch) *types.WalletTxDetail 31 // SignTransaction 针对特殊的交易,按照新的签名方式签名 32 // key 签名的私钥信息 33 // req 需要签名交易流信息 34 // needSysSign 表示是否需要继续走系统流程的签名,true表示继续,false表示已经完成签名,不需要系统处理 35 // signtx 签名成功后,保存签名成功的交易字符串 36 // err 错误信息 37 SignTransaction(key crypto.PrivKey, req *types.ReqSignRawTx) (needSysSign bool, signtx string, err error) 38 // OnCreateNewAccount 当用户在钱包中新建账户时,将调用本接口函数 39 OnCreateNewAccount(acc *types.Account) 40 // OnImportPrivateKey 当用户导入私钥时,将调用本函数 41 OnImportPrivateKey(acc *types.Account) 42 OnWalletLocked() 43 OnWalletUnlocked(WalletUnLock *types.WalletUnLock) 44 OnAddBlockFinish(block *types.BlockDetail) 45 OnDeleteBlockFinish(block *types.BlockDetail) 46 OnClose() 47 OnSetQueueClient() 48 Call(funName string, in types.Message) (ret types.Message, err error) 49 }