{"_id":"@ddn/ddn-asset-base","_rev":"12-342c7cfbca29062abffa549acbc893e0","name":"@ddn/ddn-asset-base","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@ddn/ddn-asset-base","version":"1.0.0","author":{"name":"wangxm"},"license":"ISC","_id":"@ddn/ddn-asset-base@1.0.0","maintainers":[{"name":"softwaiter","email":"softwaiter@126.com"},{"name":"evanlai","email":"Evanlai1989@hotmail.com"},{"name":"imfly","email":"kubying@qq.com"},{"name":"ebookchain","email":"service@ebookchain.org"}],"dist":{"shasum":"7f08cc0df59fa58b3d7f431351b469d7989dad6c","tarball":"https://registry.npmjs.org/@ddn/ddn-asset-base/-/ddn-asset-base-1.0.0.tgz","fileCount":6,"integrity":"sha512-I9ukh3bi14f7UYkQqlXtY+3Kob6vSXHnOx86DkTYWpM+8XBuAH5063Td3d9Isso1QkhkSllhQCfodNoqqxmE8A==","signatures":[{"sig":"MEUCIBSOflDb4D0T/FVKw5i0MkkvUZoe163piHlSq2HYCubrAiEAuvEutuY4FaWwohJTlLSf8xYwaqMWe295LqRVzFpQQFY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":47172,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdVhdXCRA9TVsSAnZWagAAFQAP/iQGOknMkA5UBfmn1BVq\nCXFiLOQZsdVODVU9YL2rCoUd/pRFV4GZBePdtaCCWrv4XlMPoDP68ALZSsgD\nRF0DK8qEZjVeJ7cl2B1CCt5ifExSI4Ozos4v2r48kGuFJHrh9/dbwuhSvNI6\ncHB2a/0BWJogML14YzehjC3zv9l5Revjfl6e0fTu7biKzIRMYZcV0xKEwVAm\n2f7kVKOFBAd85V7Dyw7ktjo7g2ochRof/v7f1bxk0d2VKAL0ZYyKNE1v5Xcy\ngrk/dNqlKgRGh8rr34gycJuP+asVOfDsg3yl+35N/qobzYKGWEdljuFOtyLW\nWZrf5a+Pia5LNdC+lpJtfplsK/FYS+oEbbH5QlqAGYzndpizZn+0g2QodU9S\nJWcXzfNQV5dht/X/AEkP7UjExQYRjvLVTI5zJhVZEaU+NWTfZEuUNKUCpRnE\nxR8w2dOh7437hGJHZo7QMMlFNBA1owUzBfX7s93cBFuWtnaMNSf2/SRtKGrp\n7NNeDPeEI9cgpBBfCLA2jjaDlZkztDroeHrNdqf+35CO2Y9WGeNsoQ3+AoJ2\nv/nK5Qu5aitOvLib8BgzypeDBYF996B8GTa+1z1MqEDYPcsoBTSCc7Mk3OF0\nqdHwL7k7r4833Rh9e4hsCYa8cTY5O9v+FrxOmpQokBUfz42fF8/LBxXv//7v\nU2XE\r\n=jN6A\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"f171cb71b24448952194e030231a9d874c26137f","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"softwaiter","email":"softwaiter@126.com"},"repository":{"url":"git@git.ebookchain.net:ddn/ddn-asset-base.git","type":"git"},"_npmVersion":"5.3.0","description":"DDN资产基类相关信息","directories":{},"_nodeVersion":"8.4.0","dependencies":{"bytebuffer":"^5.0.1","underscore":"^1.9.1","@ddn/bignum-utils":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ddn-asset-base_1.0.0_1565923158445_0.13454163865409985","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@ddn/ddn-asset-base","version":"1.0.1","author":{"name":"wangxm"},"license":"ISC","_id":"@ddn/ddn-asset-base@1.0.1","maintainers":[{"name":"ebookchain","email":"service@ebookchain.org"},{"name":"evanlai","email":"Evanlai1989@hotmail.com"},{"name":"imfly","email":"kubying@qq.com"},{"name":"softwaiter","email":"softwaiter@126.com"}],"dist":{"shasum":"9d3c264f519080c0d12b0d750cffd6c772e0aeed","tarball":"https://registry.npmjs.org/@ddn/ddn-asset-base/-/ddn-asset-base-1.0.1.tgz","fileCount":6,"integrity":"sha512-b+U1a9jI+oN7isGUs6jdqjgVkPLyOjdSmBOivQBfrCCqa9Y15fXuxHC6gkOADweLk4dt/ZLgRbjbJV7h36wZ0Q==","signatures":[{"sig":"MEUCICl0id9R4qGl+PL1vQHOh4RZqwkh1sNqFkfQk2SQCg0eAiEA3Dy6Hb555+12EvPKPzvoEi8J8h3vJCrWZuzb3K5CFZI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":47177,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdViiiCRA9TVsSAnZWagAArdoP/jDg7cRkG+Lv0maDyE1E\ne7aFtq2zzP01TR13U7zr9l7sKAqusfot1czr/9M4RLX72PIfAQEah4mAO7vs\nZz+s8mVCFlwOe4JaIW3Ym0aZ+8+ToL41gqvtPeYT2ajXsIxqadkdNIGaY9Fn\njEVPy43fLILLx5w+KhxKA2rPvIU4PRtxmRB0l39u6I5b2aawkJy6d71wptjQ\nGJkaBdUacy6THO3kCKodxkCRF3CD40udHfKdFB21HqN5tTBMTQYHl/fKyRik\nuWcXJkznjUAMnvfIEtWQ/59JTxI8uLfBY+0P8zLEE+bQql2wuNIZdNfsS7ck\neghGEPvWm5NtTpDsw884/CHizOMFzaofRuVm6KRuJ9UtjepbJozyiPwR7OGb\nDNuBRV6rEzIzTW9PPMeDqlPU5OEuIsoBBgqcIObv0hoqX0KEIcR/f4CYEB2N\nfAY5yTHzLA0VvOGVGirmw5N2RZM2Hwhu3yypIf23owB6NES2KoUEe20m3NLn\nStHIEkRQy1IBhJmkgnI3X4BPFp2AAlJeD/7H5VgZi43i2AcJtSmi6VgZSKR3\np0oYdC2ZODFmzDYnE2ZImtlvIHPgHFWwaJ3Ra3HeIPzTPF1cX2QhINRlgrDo\n+qUuqVwmFtjb4v1r6r5u/fPFzGSuQIJxf7oYCjdsVZ57DE3diiM0SEWlMO/u\nkCDW\r\n=Jzwt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"f171cb71b24448952194e030231a9d874c26137f","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"softwaiter","email":"softwaiter@126.com"},"repository":{"url":"git@git.ebookchain.net:ddn/ddn-asset-base.git","type":"git"},"_npmVersion":"5.3.0","description":"DDN资产基类相关信息","directories":{},"_nodeVersion":"8.4.0","dependencies":{"bytebuffer":"^5.0.1","underscore":"^1.9.1","@ddn/bignum-utils":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ddn-asset-base_1.0.1_1565927585747_0.5107989109310833","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@ddn/ddn-asset-base","version":"1.0.2","author":{"name":"wangxm"},"license":"ISC","_id":"@ddn/ddn-asset-base@1.0.2","maintainers":[{"name":"ebookchain","email":"service@ebookchain.org"},{"name":"evanlai","email":"Evanlai1989@hotmail.com"},{"name":"imfly","email":"kubying@qq.com"},{"name":"softwaiter","email":"softwaiter@126.com"}],"dist":{"shasum":"4bb50b52f174994bf7a747fb4d289dc0e33d2fec","tarball":"https://registry.npmjs.org/@ddn/ddn-asset-base/-/ddn-asset-base-1.0.2.tgz","fileCount":7,"integrity":"sha512-2n8RMNdn1ndwCIizWlinKOt31l6S5HO+3GgJWtOMAHN0DEdL7zJavKBK4FeaMr2L8zAMNYyGQr4qgle/xQGTcA==","signatures":[{"sig":"MEUCIQCCa0muzTutcF2MZ3W1aZ+bddtmKbY6fOwfeCBD1f1QKgIgenA39+NUNr9w7As9butbQK6ov44QTgiFPjjB+mdOdMA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":53152,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdW8+yCRA9TVsSAnZWagAA1woQAIyCMJEEv8SvdfdS9aQP\nIlJQYczmRf00cnzsqd7H0jbYa9AGm75lUXKhaQPFqwMr0NNjmyXvsfmviGMk\nVUpEiD5RTkREWCzKutGkG9puwSs8mm0b/WIqenr9JcMJCGLdYepyYv4t9XqJ\n7/NZ21rocoMi0jcMCaYNr8nMazaH0XJAZzisPdhSsakkAFlCkSIlflKZPQX+\nrhsNzvjZwrNkDVUk0NsemvaMDnWVceFPtFzfY1dwGRL1zP+4rO9W13YavD5e\n6Rf56k5g6yQTJ9nSi7pmpLFodv8mipgO9FbwZQiCC4wUehrhxDDO3Dt1n/PN\n2V93nvPiLtSOo0c6GUN/oBLMUU+bHBv7e426xIjnhIrSN36TEL2QMxvuRBOC\n8cGnjjHBgFPh7jmmLYSJZRaoU+MW1QIMjh8o+cGDyPmaOm9b/OQjY+ZECG5t\n01GtLEQvfOQaf5njmUmP2zG1Tkuem4zU5cIMDvtx+8myeOd2gF4hmYfMwvAu\nH5b+/hqAzpDX/DP0YyPPOQGu0mCt1VYANhZf7W3mphPsk2TDOz1NIw1TobUq\nFbca3c2Rz+AGGVXjNI0vOAZnP5MhGmcpvUnE9qjA1/W//d0QZBgirIfFjRdk\nk3cPJqr+zHJL9+ESk3QI4DIAWOTKq8VkV4N/ZFFS2ASxIbl6BaK3FVgHvtiu\nrN7j\r\n=HNvk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"6644e757443381200b39ba326820aa79354e2442","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"softwaiter","email":"softwaiter@126.com"},"repository":{"url":"git@git.ebookchain.net:ddn/ddn-asset-base.git","type":"git"},"_npmVersion":"5.3.0","description":"DDN资产基类相关信息","directories":{},"_nodeVersion":"8.4.0","dependencies":{"bytebuffer":"^5.0.1","underscore":"^1.9.1","@ddn/bignum-utils":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ddn-asset-base_1.0.2_1566298033724_0.6564335567476127","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@ddn/ddn-asset-base","version":"1.0.3","author":{"name":"wangxm"},"license":"ISC","_id":"@ddn/ddn-asset-base@1.0.3","maintainers":[{"name":"ebookchain","email":"service@ebookchain.org"},{"name":"evanlai","email":"Evanlai1989@hotmail.com"},{"name":"imfly","email":"kubying@qq.com"},{"name":"softwaiter","email":"softwaiter@126.com"}],"dist":{"shasum":"e5f44f6f65e6c4d4f6cfb33019f0bb883bfdb306","tarball":"https://registry.npmjs.org/@ddn/ddn-asset-base/-/ddn-asset-base-1.0.3.tgz","fileCount":7,"integrity":"sha512-t5Sikcw110edJ9eMivvN6GJcZI7jdkjLAcOQyeTLXu4027Q0/QGiBsaiupKD+US4uPmK6U+Tw1+UQgGbJBXi6w==","signatures":[{"sig":"MEQCIDBtoi6PbxAvgXeIQjJb8PT5maOn3hWYqolDnn7zbsJzAiB3pQFOXhGV2qoyjQBBHdfFFMCQEt52Y3U/He0m/i0Hwg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":53227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdW9RCCRA9TVsSAnZWagAA8p4P/0OlIX4bKMALrTfTLDJS\n8XdFCu+hmlNS6hGg4xZN4mgPUajvVNhC1BUNm52BmpnMlRH7yAVcWC9gu8if\nPBtslutmOLeUoWdk29p+viupWgrtQBGs5Qp1aPl3OM5PFF+ZIm9pz12Sf0Dr\nslSH6aA97mPFkgKV9nwLiQnABh17Ql6M9VD9/8X5SWc2mivYd4KB5bDR2xf/\nYlUlKuXA0z4Qv7c6KTMxigNYZNkaPUcUT3/HzHyxiHZpTJI0lKI+MwY4IVb6\ndap8HY8Bo6Dtq5RtITre0T4ZqnTDa6mbmbDuUl0IQJq5Cc9JnV/InjqiOci9\ndfIaopiRfI2EG0xn9rTNbUbr390+vP8ZSdgvj1yrL+UTt2R4ukRZ0xo/gIDh\nvnX7LRm3fhBNJF7gWqavKHWdYVB8+XaPwpl8AKb7MKD4osVsLlQarBlZi3z4\nyg7c9L5q/o+6IiAyEBOcM87YLoxsejqdmxIjnoR/9xlYsqxlBBkYPH0khv46\ne1fH4QZYN0PTi0o6H6fVkfVbOYODtpQ2W7/Ogb180e5rHilxuSEnU8tRMNAc\nN53uhZM+tq93CEQWzzDabE/jpW0lPj2SK2kVGiVxCSnnACkH7r1gZgM7LazT\nSWBkh8Is4IDI+vmz1S4vb9wK2EWYwSsmID4PpeoxAtaBWyaesYOmBHUygIbE\nlveD\r\n=rng1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"7213cf0ca628a819259efbf41dffef683d04b93f","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"softwaiter","email":"softwaiter@126.com"},"repository":{"url":"git@git.ebookchain.net:ddn/ddn-asset-base.git","type":"git"},"_npmVersion":"5.3.0","description":"DDN资产基类相关信息","directories":{},"_nodeVersion":"8.4.0","dependencies":{"bytebuffer":"^5.0.1","underscore":"^1.9.1","@ddn/bignum-utils":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ddn-asset-base_1.0.3_1566299201542_0.747988431484947","host":"s3://npm-registry-packages"}}},"time":{"created":"2019-08-16T02:39:18.235Z","modified":"2025-03-30T02:35:51.953Z","1.0.0":"2019-08-16T02:39:18.562Z","1.0.1":"2019-08-16T03:53:05.971Z","1.0.2":"2019-08-20T10:47:13.849Z","1.0.3":"2019-08-20T11:06:41.691Z"},"author":{"name":"wangxm"},"license":"ISC","repository":{"url":"git@git.ebookchain.net:ddn/ddn-asset-base.git","type":"git"},"description":"DDN资产基类相关信息","maintainers":[{"email":"kubying@qq.com","name":"imfly"},{"email":"Evanlai1989@hotmail.com","name":"evanlai"},{"email":"zhuzhuowu@126.com","name":"bjtailor"}],"readme":"# DDN扩展资产基类\r\n\r\n&emsp;&emsp;资产基类AssetBase定义了一种资产接入区块链需要实现的方法和遵循的规范，所有自定义的扩展资产都必须继承自基类，但不必事先所有的方法，除了propsMapping方法必须实现以外，其他方法都可以直接使用基类的方法。基类具体包括的方法如下：<br/>\r\n```\r\n/**\r\n * transaction创建时调用，用来对输入参数根据资产进行个性化处理\r\n * @param {*} data 资产数据\r\n * @param {*} trs 交易对象\r\n */\r\nasync create(data, trs)\r\n\r\n/**\r\n * 计算该类型资产交易的手续费（方法内不允许使用context对象内容）\r\n * @param {*} trs 交易对象\r\n * @param {*} sender 交易发起者\r\n */\r\nasync calculateFee(trs, sender)\r\n\r\n/**\r\n * 定义资产属性和字段的对应关系\r\n * 基本属性最多支持定义15个属性\r\n * 字符串类型10个，名称分别是str1,str2,str3...str10，长度分别是32,64,64,128,128,256,256,512,512,1024，前4个有索引\r\n * 整数类型3个，名称分别是int1,int2,int3，类型为INT，前2个有索引\r\n * 时间戳类型2个，分别是timestamp1,timestamp2\r\n * 扩展属性理论上无上限，名称使用str_ext, int_ext, timestamp_ext，分别定义不同类型\r\n * \r\n * 以下属于系统属性，不可使用\r\n * amount：转账金额，默认为0，字符串类型\r\n * recipient_id：收款地址，默认为null\r\n * message：备注信息\r\n */\r\nasync propsMapping()\r\n\r\n/**\r\n * 基于业务逻辑的输入数据校验\r\n * @param {*} trs 交易对象\r\n * @param {*} sender 交易发起者\r\n */\r\nasync verify(trs, sender)\r\n\r\n/**\r\n * 交易加入未确认列表前的预处理方法\r\n * @param {*} trs 交易对象\r\n * @param {*} sender 交易发起者\r\n */\r\nasync process(trs, sender)\r\n\r\n/**\r\n * 获取资产的字节格式数据，用于签名计算\r\n * @param {*} trs 交易对象\r\n */\r\nasync getBytes(trs)\r\n\r\n/**\r\n * 应用未确认交易，锁定转账金额\r\n * @param {*} trs 交易对象\r\n * @param {*} sender 交易发起者\r\n * @param {*} dbTrans 数据库事务对象\r\n */\r\nasync applyUnconfirmed(trs, sender, dbTrans)\r\n\r\n/**\r\n * 回滚未确认交易，解锁转账金额\r\n * @param {*} trs 交易对象\r\n * @param {*} sender 交易发起者\r\n * @param {*} dbTrans 数据库事务对象\r\n */\r\nasync undoUnconfirmed(trs, sender, dbTrans)\r\n\r\n/**\r\n * 应用交易业务金额，进行转账操作\r\n * @param {*} trs 交易对象\r\n * @param {*} block 区块对象\r\n * @param {*} sender 交易发起者\r\n * @param {*} dbTrans 数据库事务对象\r\n */\r\nasync apply(trs, block, sender, dbTrans)\r\n\r\n/**\r\n * 回滚交易业务金额，进行退回操作\r\n * @param {*} trs 交易对象\r\n * @param {*} block 区块对象\r\n * @param {*} sender 交易发起者\r\n * @param {*} dbTrans 数据库事务对象\r\n */\r\nasync undo(trs, block, sender, dbTrans)\r\n\r\n/**\r\n * 校验交易传入数据是否符合规范，从数据格式、数据长度、是否必须角度进行\r\n * @param {*} trs 交易对象\r\n */\r\nasync objectNormalize(trs)\r\n\r\n/**\r\n * 读取数据库数据并反序列成交易对象体\r\n * @param {*} raw 数据库查询返回对象\r\n */\r\nasync dbRead(raw)\r\n    \r\n/**\r\n * 将交易存储到数据库中\r\n * @param {*} trs 交易对象\r\n * @param {*} dbTrans 数据库事务对象\r\n */\r\nasync dbSave(trs, dbTrans)\r\n\r\n/**\r\n * 确认交易当前状态是否可以打包进当前区块\r\n * @param {*} trs 交易对象\r\n * @param {*} sender 交易发起者\r\n */\r\nasync ready(trs, sender)\r\n\r\n/**\r\n * 区块链启动成功后执行\r\n */\r\nasync onBlockchainReady()\r\n\r\n/**\r\n * 自定义资产Api\r\n * @param {*} router Express路由对象\r\n */\r\nasync attachApi(router)\r\n```\r\n\r\n### &emsp;c. 数据交互\r\n&emsp;&emsp;由于扩展资产独立于区块链系统，为了和区块链系统进行交互，基类中提供了一些对象和方法，供用户使用。\r\n```\r\n/**\r\n * 上下文属性，其中包含区块链中所有可操作对象，如区块对象、交易对象等等\r\n * context详细内容请查看相关文档\r\n */\r\nthis._context\r\n\r\n/**\r\n * 获取资产所属包名\r\n */\r\nasync getPackageName()\r\n\r\n/**\r\n * 获取资产配置名称\r\n */\r\nasync getTransactionName()\r\n\r\n/**\r\n * 获取资产配置类型值\r\n */\r\nasync getTransactionType()\r\n\r\n/**\r\n * 查询规定条件的资产数据\r\n * @param {*} where 查询条件，遵循sequelize规则，使用prop的名称定义\r\n * @param {*} orders 排序条件，遵循sequelize规则，使用prop的名称定义\r\n * @param {*} returnTotal 是否返回总条数，true/false\r\n * @param {*} pageIndex 查询的页码，从1开始\r\n * @param {*} pageSize 分页的大小，每页的返回的最大记录条数\r\n */\r\nasync queryAsset(where, orders, returnTotal, pageIndex, pageSize)\r\n\r\n/**\r\n * 查询规定条件的资产数据的个数\r\n * @param {*} where 查询条件，遵循sequelize规则，使用prop的名称定义\r\n */\r\nasync queryAssetCount(where)\r\n\r\n/**\r\n * 获取资产在交易对象中的名称\r\n * @param {*} type 资产在配置文件中的类型值\r\n */\r\nasync getAssetJsonName(type)\r\n\r\n/**\r\n * 获得交易信息中的当前资产对象\r\n * @param {*} trs 交易对象\r\n */\r\nasync getAssetObject(trs)\r\n\r\n/**\r\n * 根据资产配置名称获取资产对应实例\r\n * @param {*} assetName 资产类名，也即配置文件中的名称\r\n */\r\nasync getAssetInstanceByName(assetName)\r\n```\r\n\r\n更多有关扩展资产的信息，请查看ddn-docs中的Extend Assets部分\r\n","readmeFilename":"README.md"}