OSDN Git Service

docs(release note): update bytom version 1.1.0 release note
[bytom/bytom.git] / asset / asset.go
index ede0ac2..7d87c0b 100644 (file)
@@ -7,19 +7,19 @@ import (
        "sync"
 
        "github.com/golang/groupcache/lru"
-       dbm "github.com/tendermint/tmlibs/db"
        "golang.org/x/crypto/sha3"
 
-       "github.com/bytom/blockchain/signers"
-       "github.com/bytom/common"
-       "github.com/bytom/consensus"
-       "github.com/bytom/crypto/ed25519"
-       "github.com/bytom/crypto/ed25519/chainkd"
-       chainjson "github.com/bytom/encoding/json"
-       "github.com/bytom/errors"
-       "github.com/bytom/protocol"
-       "github.com/bytom/protocol/bc"
-       "github.com/bytom/protocol/vm/vmutil"
+       "github.com/bytom/bytom/blockchain/signers"
+       "github.com/bytom/bytom/common"
+       "github.com/bytom/bytom/consensus"
+       "github.com/bytom/bytom/crypto/ed25519"
+       "github.com/bytom/bytom/crypto/ed25519/chainkd"
+       dbm "github.com/bytom/bytom/database/leveldb"
+       chainjson "github.com/bytom/bytom/encoding/json"
+       "github.com/bytom/bytom/errors"
+       "github.com/bytom/bytom/protocol"
+       "github.com/bytom/bytom/protocol/bc"
+       "github.com/bytom/bytom/protocol/vm/vmutil"
 )
 
 // DefaultNativeAsset native BTM asset
@@ -126,7 +126,7 @@ func (reg *Registry) getNextAssetIndex() uint64 {
 }
 
 // Define defines a new Asset.
-func (reg *Registry) Define(xpubs []chainkd.XPub, quorum int, definition map[string]interface{}, alias string, issuanceProgram chainjson.HexBytes) (*Asset, error) {
+func (reg *Registry) Define(xpubs []chainkd.XPub, quorum int, definition map[string]interface{}, limitHeight int64, alias string, issuanceProgram chainjson.HexBytes) (*Asset, error) {
        var err error
        var assetSigner *signers.Signer
 
@@ -159,7 +159,7 @@ func (reg *Registry) Define(xpubs []chainkd.XPub, quorum int, definition map[str
                path := signers.GetBip0032Path(assetSigner, signers.AssetKeySpace)
                derivedXPubs := chainkd.DeriveXPubs(assetSigner.XPubs, path)
                derivedPKs := chainkd.XPubKeys(derivedXPubs)
-               issuanceProgram, vmver, err = multisigIssuanceProgram(derivedPKs, assetSigner.Quorum)
+               issuanceProgram, vmver, err = multisigIssuanceProgram(derivedPKs, assetSigner.Quorum, limitHeight)
                if err != nil {
                        return nil, err
                }
@@ -300,6 +300,8 @@ func (reg *Registry) GetAsset(id string) (*Asset, error) {
                if err := json.Unmarshal(extAsset, &definitionMap); err != nil {
                        return nil, err
                }
+               alias := assetID.String()
+               asset.Alias = &alias
                asset.AssetID = assetID
                asset.DefinitionMap = definitionMap
                return asset, nil
@@ -361,8 +363,8 @@ func serializeAssetDef(def map[string]interface{}) ([]byte, error) {
        return json.MarshalIndent(def, "", "  ")
 }
 
-func multisigIssuanceProgram(pubkeys []ed25519.PublicKey, nrequired int) (program []byte, vmversion uint64, err error) {
-       issuanceProg, err := vmutil.P2SPMultiSigProgram(pubkeys, nrequired)
+func multisigIssuanceProgram(pubkeys []ed25519.PublicKey, nrequired int, blockHeight int64) (program []byte, vmversion uint64, err error) {
+       issuanceProg, err := vmutil.P2SPMultiSigProgramWithHeight(pubkeys, nrequired, blockHeight)
        if err != nil {
                return nil, 0, err
        }