Solidity Linked List – 坚固性链表区块链毕设代写

区块链毕设代写本文提供国外最新区块链项目源码下载,包括solidity,eth,fabric等blockchain区块链,Solidity Linked List – 坚固性链表区块链毕设代写 是一篇很好的国外资料

Solidity Linked List

Solidity Linked List - 坚固性链表 Solidity Linked List - 坚固性链表 Solidity Linked List - 坚固性链表 Solidity Linked List - 坚固性链表

An utility library for using sorted linked list data structures in your Solidity project.

Install

npm install solidity-linked-list

Usage

pragma solidity ^0.6.0;  import "solidity-linked-list/contracts/StructuredLinkedList.sol";  contract MyContract {     using StructuredLinkedList for StructuredLinkedList.List;      StructuredLinkedList.List list;      // your stuff }

Code

This repo contains:

  • StructuredLinkedList.sol

listExists

/**  * @dev Checks if the list exists  * @param self stored linked list from contract  * @return bool true if list exists, false otherwise  */ function listExists(List storage self) internal view returns (bool);

nodeExists

/**  * @dev Checks if the node exists  * @param self stored linked list from contract  * @param _node a node to search for  * @return bool true if node exists, false otherwise  */ function nodeExists(List storage self, uint256 _node) internal view returns (bool);

sizeOf

/**  * @dev Returns the number of elements in the list  * @param self stored linked list from contract  * @return uint256  */ function sizeOf(List storage self) internal view returns (uint256);

getNode

/**  * @dev Returns the links of a node as a tuple  * @param self stored linked list from contract  * @param _node id of the node to get  * @return bool, uint256, uint256 true if node exists or false otherwise, previous node, next node  */ function getNode(List storage self, uint256 _node) internal view returns (bool, uint256, uint256);

getAdjacent

/**  * @dev Returns the link of a node `_node` in direction `_direction`.  * @param self stored linked list from contract  * @param _node id of the node to step from  * @param _direction direction to step in  * @return bool, uint256 true if node exists or false otherwise, node in _direction  */ function getAdjacent(List storage self, uint256 _node, bool _direction) internal view returns (bool, uint256);

getNextNode

/**  * @dev Returns the link of a node `_node` in direction `NEXT`.  * @param self stored linked list from contract  * @param _node id of the node to step from  * @return bool, uint256 true if node exists or false otherwise, next node  */ function getNextNode(List storage self, uint256 _node) internal view returns (bool, uint256);

getPreviousNode

/**  * @dev Returns the link of a node `_node` in direction `PREV`.  * @param self stored linked list from contract  * @param _node id of the node to step from  * @return bool, uint256 true if node exists or false otherwise, previous node  */ function getPreviousNode(List storage self, uint256 _node) internal view returns (bool, uint256);

getSortedSpot

/**  * @dev Can be used before `insert` to build an ordered list.  * @dev Get the node and then `insertBefore` or `insertAfter` basing on your list order.  * @dev If you want to order basing on other than `structure.getValue()` override this function  * @param self stored linked list from contract  * @param _structure the structure instance  * @param _value value to seek  * @return uint256 next node with a value less than _value  */ function getSortedSpot(List storage self, address _structure, uint256 _value) internal view returns (uint256);

createLink

/**  * @dev Creates a bidirectional link between two nodes on direction `_direction`  * @param self stored linked list from contract  * @param _node first node for linking  * @param _link  node to link to in the _direction  */ function createLink(List storage self, uint256 _node, uint256 _link, bool _direction) internal;

insert

/**  * @dev Insert node `_new` beside existing node `_node` in direction `_direction`.  * @param self stored linked list from contract  * @param _node existing node  * @param _new  new node to insert  * @param _direction direction to insert node in  * @return bool true if success, false otherwise  */ function insert(List storage self, uint256 _node, uint256 _new, bool _direction) internal returns (bool);

insertAfter

/**  * @dev Insert node `_new` beside existing node `_node` in direction `NEXT`.  * @param self stored linked list from contract  * @param _node existing node  * @param _new  new node to insert  * @return bool true if success, false otherwise  */ function insertAfter(List storage self, uint256 _node, uint256 _new) internal returns (bool);

insertBefore

/**  * @dev Insert node `_new` beside existing node `_node` in direction `PREV`.  * @param self stored linked list from contract  * @param _node existing node  * @param _new  new node to insert  * @return bool true if success, false otherwise  */ function insertBefore(List storage self, uint256 _node, uint256 _new) internal returns (bool);

remove

/**  * @dev Removes an entry from the linked list  * @param self stored linked list from contract  * @param _node node to remove from the list  * @return uint256 the removed node  */ function remove(List storage self, uint256 _node) internal returns (uint256);

push

/**  * @dev Pushes an entry to the head of the linked list  * @param self stored linked list from contract  * @param _node new entry to push to the head  * @param _direction push to the head (NEXT) or tail (PREV)  * @return bool true if success, false otherwise  */ function push(List storage self, uint256 _node, bool _direction) internal returns (bool);

pop

/**  * @dev Pops the first entry from the linked list  * @param self stored linked list from contract  * @param _direction pop from the head (NEXT) or the tail (PREV)  * @return uint256 the removed node  */ function pop(List storage self, bool _direction) internal returns (uint256);

Development

Install dependencies

npm install

Usage (using Truffle)

Open the Truffle console

npm run console

Compile

npm run compile

Test

npm run test

Usage (using Buidler)

Open the Buidler console

npm run buidler:console

Compile

npm run buidler:compile

Test

npm run buidler:test

Code Coverage

npm run coverage

Linter

Use Solhint

npm run lint:sol

Use ESLint

npm run lint:js

Use ESLint and fix

npm run lint:fix

License

Code released under the MIT License.


坚固链表

<Solidity Linked List><Solidity Linked List><Solidity Linked List><Solidity Linked List><Solidity Linked List><Solidity Linked List><Solidity Linked List>

一个实用程序库,用于在Solidity项目中使用已排序的链接列表数据结构。

此回购包含:

打开Truffle控制台

打开Buildler控制台

使用Solhint

使用ESLint

使用ESLint并修复根据MIT许可证发布的代码。

坚固链表

安装安装

使用情况

使用情况

编码

编码

getNextNode

getPreviousNode

GetSortdsPot

<3>createLink

3>插入

之后插入

移除

推压

波普

波普

开发

安装依赖关系安装依赖关系

使用(使用Truffle)

编译

测试

使用(使用Buidler)

编译

测试

测试

代码覆盖范围

代码覆盖范围

<2>林特林特林/h2>

  • 结构链接列表.sol在
  • An utility library for using sorted linked list data structures in your Solidity project.

    安装安装

    npm install solidity-linked-list

    使用情况

    pragma solidity ^0.6.0;  import "solidity-linked-list/contracts/StructuredLinkedList.sol";  contract MyContract {     using StructuredLinkedList for StructuredLinkedList.List;      StructuredLinkedList.List list;      // your stuff }

    编码

    一个实用程序库,用于在Solidity项目中使用已排序的链接列表数据结构。

    • 结构链接列表.sol在

    编码

    /**  * @dev Checks if the list exists  * @param self stored linked list from contract  * @return bool true if list exists, false otherwise  */ function listExists(List storage self) internal view returns (bool);

    getNextNode

    getPreviousNode

    GetSortdsPot

    <3>createLink

    3>插入

    之后插入

    移除

    推压

    波普

    波普

    开发

    安装依赖关系安装依赖关系

    使用(使用Truffle)

    编译

    测试

    使用(使用Buidler)

    编译

    测试

    测试

    代码覆盖范围

    代码覆盖范围

    <2>林特林特林/h2>

  • 结构链接列表.sol在
  • /**  * @dev Checks if the node exists  * @param self stored linked list from contract  * @param _node a node to search for  * @return bool true if node exists, false otherwise  */ function nodeExists(List storage self, uint256 _node) internal view returns (bool);

    getNextNode

    getPreviousNode

    GetSortdsPot

    <3>createLink

    3>插入

    之后插入

    移除

    推压

    波普

    波普

    开发

    安装依赖关系安装依赖关系

    使用(使用Truffle)

    编译

    测试

    使用(使用Buidler)

    编译

    测试

    测试

    代码覆盖范围

    代码覆盖范围

    <2>林特林特林/h2>

  • 结构链接列表.sol在
  • /**  * @dev Returns the number of elements in the list  * @param self stored linked list from contract  * @return uint256  */ function sizeOf(List storage self) internal view returns (uint256);

    getNextNode

    getPreviousNode

    GetSortdsPot

    <3>createLink

    3>插入

    之后插入

    移除

    推压

    波普

    波普

    开发

    安装依赖关系安装依赖关系

    使用(使用Truffle)

    编译

    测试

    使用(使用Buidler)

    编译

    测试

    测试

    代码覆盖范围

    代码覆盖范围

    <2>林特林特林/h2>

  • 结构链接列表.sol在
  • /**  * @dev Returns the links of a node as a tuple  * @param self stored linked list from contract  * @param _node id of the node to get  * @return bool, uint256, uint256 true if node exists or false otherwise, previous node, next node  */ function getNode(List storage self, uint256 _node) internal view returns (bool, uint256, uint256);

    getNextNode

    getPreviousNode

    GetSortdsPot

    <3>createLink

    3>插入

    之后插入

    移除

    推压

    波普

    波普

    开发

    安装依赖关系安装依赖关系

    使用(使用Truffle)

    编译

    测试

    使用(使用Buidler)

    编译

    测试

    测试

    代码覆盖范围

    代码覆盖范围

    <2>林特林特林/h2>

  • 结构链接列表.sol在
  • /**  * @dev Returns the link of a node `_node` in direction `_direction`.  * @param self stored linked list from contract  * @param _node id of the node to step from  * @param _direction direction to step in  * @return bool, uint256 true if node exists or false otherwise, node in _direction  */ function getAdjacent(List storage self, uint256 _node, bool _direction) internal view returns (bool, uint256);

    getNextNode

    getPreviousNode

    GetSortdsPot

    <3>createLink

    3>插入

    之后插入

    移除

    推压

    波普

    波普

    开发

    安装依赖关系安装依赖关系

    使用(使用Truffle)

    编译

    测试

    使用(使用Buidler)

    编译

    测试

    测试

    代码覆盖范围

    代码覆盖范围

    <2>林特林特林/h2>

  • 结构链接列表.sol在
  • /**  * @dev Returns the link of a node `_node` in direction `NEXT`.  * @param self stored linked list from contract  * @param _node id of the node to step from  * @return bool, uint256 true if node exists or false otherwise, next node  */ function getNextNode(List storage self, uint256 _node) internal view returns (bool, uint256);

    getNextNode

    getPreviousNode

    GetSortdsPot

    <3>createLink

    3>插入

    之后插入

    移除

    推压

    波普

    波普

    开发

    安装依赖关系安装依赖关系

    使用(使用Truffle)

    编译

    测试

    使用(使用Buidler)

    编译

    测试

    测试

    代码覆盖范围

    代码覆盖范围

    <2>林特林特林/h2>

  • 结构链接列表.sol在
  • /**  * @dev Returns the link of a node `_node` in direction `PREV`.  * @param self stored linked list from contract  * @param _node id of the node to step from  * @return bool, uint256 true if node exists or false otherwise, previous node  */ function getPreviousNode(List storage self, uint256 _node) internal view returns (bool, uint256);

    getNextNode

    getPreviousNode

    GetSortdsPot

    <3>createLink

    3>插入

    之后插入

    移除

    推压

    波普

    波普

    开发

    安装依赖关系安装依赖关系

    使用(使用Truffle)

    编译

    测试

    使用(使用Buidler)

    编译

    测试

    测试

    代码覆盖范围

    代码覆盖范围

    <2>林特林特林/h2>

  • 结构链接列表.sol在
  • /**  * @dev Can be used before `insert` to build an ordered list.  * @dev Get the node and then `insertBefore` or `insertAfter` basing on your list order.  * @dev If you want to order basing on other than `structure.getValue()` override this function  * @param self stored linked list from contract  * @param _structure the structure instance  * @param _value value to seek  * @return uint256 next node with a value less than _value  */ function getSortedSpot(List storage self, address _structure, uint256 _value) internal view returns (uint256);

    getNextNode

    getPreviousNode

    GetSortdsPot

    <3>createLink

    3>插入

    之后插入

    移除

    推压

    波普

    波普

    开发

    安装依赖关系安装依赖关系

    使用(使用Truffle)

    编译

    测试

    使用(使用Buidler)

    编译

    测试

    测试

    代码覆盖范围

    代码覆盖范围

    <2>林特林特林/h2>

  • 结构链接列表.sol在
  • /**  * @dev Creates a bidirectional link between two nodes on direction `_direction`  * @param self stored linked list from contract  * @param _node first node for linking  * @param _link  node to link to in the _direction  */ function createLink(List storage self, uint256 _node, uint256 _link, bool _direction) internal;

    getNextNode

    getPreviousNode

    GetSortdsPot

    <3>createLink

    3>插入

    之后插入

    移除

    推压

    波普

    波普

    开发

    安装依赖关系安装依赖关系

    使用(使用Truffle)

    编译

    测试

    使用(使用Buidler)

    编译

    测试

    测试

    代码覆盖范围

    代码覆盖范围

    <2>林特林特林/h2>

  • 结构链接列表.sol在
  • /**  * @dev Insert node `_new` beside existing node `_node` in direction `_direction`.  * @param self stored linked list from contract  * @param _node existing node  * @param _new  new node to insert  * @param _direction direction to insert node in  * @return bool true if success, false otherwise  */ function insert(List storage self, uint256 _node, uint256 _new, bool _direction) internal returns (bool);

    getNextNode

    getPreviousNode

    GetSortdsPot

    <3>createLink

    3>插入

    之后插入

    移除

    推压

    波普

    波普

    开发

    安装依赖关系安装依赖关系

    使用(使用Truffle)

    编译

    测试

    使用(使用Buidler)

    编译

    测试

    测试

    代码覆盖范围

    代码覆盖范围

    <2>林特林特林/h2>

  • 结构链接列表.sol在
  • /**  * @dev Insert node `_new` beside existing node `_node` in direction `NEXT`.  * @param self stored linked list from contract  * @param _node existing node  * @param _new  new node to insert  * @return bool true if success, false otherwise  */ function insertAfter(List storage self, uint256 _node, uint256 _new) internal returns (bool);

    getNextNode

    getPreviousNode

    GetSortdsPot

    <3>createLink

    3>插入

    之后插入

    移除

    推压

    波普

    波普

    开发

    安装依赖关系安装依赖关系

    使用(使用Truffle)

    编译

    测试

    使用(使用Buidler)

    编译

    测试

    测试

    代码覆盖范围

    代码覆盖范围

    <2>林特林特林/h2>

  • 结构链接列表.sol在
  • /**  * @dev Insert node `_new` beside existing node `_node` in direction `PREV`.  * @param self stored linked list from contract  * @param _node existing node  * @param _new  new node to insert  * @return bool true if success, false otherwise  */ function insertBefore(List storage self, uint256 _node, uint256 _new) internal returns (bool);

    getNextNode

    getPreviousNode

    GetSortdsPot

    <3>createLink

    3>插入

    之后插入

    移除

    推压

    波普

    波普

    开发

    安装依赖关系安装依赖关系

    使用(使用Truffle)

    编译

    测试

    使用(使用Buidler)

    编译

    测试

    测试

    代码覆盖范围

    代码覆盖范围

    <2>林特林特林/h2>

  • 结构链接列表.sol在
  • /**  * @dev Removes an entry from the linked list  * @param self stored linked list from contract  * @param _node node to remove from the list  * @return uint256 the removed node  */ function remove(List storage self, uint256 _node) internal returns (uint256);

    getNextNode

    getPreviousNode

    GetSortdsPot

    <3>createLink

    3>插入

    之后插入

    移除

    推压

    波普

    波普

    开发

    安装依赖关系安装依赖关系

    使用(使用Truffle)

    编译

    测试

    使用(使用Buidler)

    编译

    测试

    测试

    代码覆盖范围

    代码覆盖范围

    <2>林特林特林/h2>

  • 结构链接列表.sol在
  • /**  * @dev Pushes an entry to the head of the linked list  * @param self stored linked list from contract  * @param _node new entry to push to the head  * @param _direction push to the head (NEXT) or tail (PREV)  * @return bool true if success, false otherwise  */ function push(List storage self, uint256 _node, bool _direction) internal returns (bool);

    getNextNode

    getPreviousNode

    GetSortdsPot

    <3>createLink

    3>插入

    之后插入

    移除

    推压

    波普

    波普

    开发

    安装依赖关系安装依赖关系

    使用(使用Truffle)

    编译

    测试

    使用(使用Buidler)

    编译

    测试

    测试

    代码覆盖范围

    代码覆盖范围

    <2>林特林特林/h2>

  • 结构链接列表.sol在
  • /**  * @dev Pops the first entry from the linked list  * @param self stored linked list from contract  * @param _direction pop from the head (NEXT) or the tail (PREV)  * @return uint256 the removed node  */ function pop(List storage self, bool _direction) internal returns (uint256);

    getNextNode

    getPreviousNode

    GetSortdsPot

    <3>createLink

    3>插入

    之后插入

    移除

    推压

    波普

    波普

    开发

    安装依赖关系安装依赖关系

    使用(使用Truffle)

    编译

    测试

    使用(使用Buidler)

    编译

    测试

    测试

    代码覆盖范围

    代码覆盖范围

    <2>林特林特林/h2>

  • 结构链接列表.sol在
  • getNextNode

    getPreviousNode

    GetSortdsPot

    <3>createLink

    3>插入

    之后插入

    移除

    推压

    波普

    波普

    开发

    安装依赖关系安装依赖关系

    使用(使用Truffle)

    编译

    测试

    使用(使用Buidler)

    编译

    测试

    测试

    代码覆盖范围

    代码覆盖范围

    <2>林特林特林/h2>

  • 结构链接列表.sol在
  • npm install

    getNextNode

    此回购包含:

    npm run console

    getPreviousNode

    npm run compile

    GetSortdsPot

    npm run test

    <3>createLink

    3>插入

    之后插入

    移除

    推压

    波普

    波普

    开发

    安装依赖关系安装依赖关系

    使用(使用Truffle)

    编译

    测试

    使用(使用Buidler)

    编译

    测试

    测试

    打开Truffle控制台

    npm run buidler:console

    <3>createLink

    npm run buidler:compile

    3>插入

    npm run buidler:test

    之后插入

    npm run coverage

    打开Buildler控制台

    npm run lint:sol

    使用Solhint

    npm run lint:js

    使用ESLint

    npm run lint:fix

    移除

    推压

    波普

    波普

    开发

    安装依赖关系安装依赖关系

    使用ESLint并修复根据MIT许可证发布的代码。

    坚固链表

    安装安装

    使用情况

    使用情况

    编码

    编码

    getNextNode

    getPreviousNode

    GetSortdsPot

    <3>createLink

    3>插入

    之后插入

    移除

    推压

    波普

    波普

    开发

    安装依赖关系安装依赖关系

    使用(使用Truffle)

    编译

    测试

    使用(使用Buidler)

    编译

    测试

    测试

    代码覆盖范围

    代码覆盖范围

    <2>林特林特林/h2>

  • 结构链接列表.sol在
  • 部分转自网络,侵权联系删除区块链源码网

    www.interchains.cc

    https://www.interchains.cc/17114.html

    区块链毕设网(www.interchains.cc)全网最靠谱的原创区块链毕设代做网站 部分资料来自网络,侵权联系删除! 最全最大的区块链源码站 !
    区块链知识分享网, 以太坊dapp资源网, 区块链教程, fabric教程下载, 区块链书籍下载, 区块链资料下载, 区块链视频教程下载, 区块链基础教程, 区块链入门教程, 区块链资源 » Solidity Linked List – 坚固性链表区块链毕设代写

    提供最优质的资源集合

    立即查看 了解详情