p2pix-smart-contracts/docs/callgraph.svg
2022-12-02 15:27:19 -03:00

776 lines
53 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="805pt" height="1835pt" viewBox="0.00 0.00 804.77 1835.00">
<g id="graph0" class="graph" transform="translate(15.089466784527986,1733.566952255226) scale(0.9291606742509133)" data-name="G">
<polygon fill="#2e3e56" stroke="none" points="-4,4 -4,-1831 800.77,-1831 800.77,4 -4,4" style=""/>
<g id="clust1" class="cluster" data-name="clusterP2PIX">
<path fill="#445773" stroke="#445773" d="M20,-425C20,-425 776.77,-425 776.77,-425 782.77,-425 788.77,-431 788.77,-437 788.77,-437 788.77,-1670 788.77,-1670 788.77,-1676 782.77,-1682 776.77,-1682 776.77,-1682 20,-1682 20,-1682 14,-1682 8,-1676 8,-1670 8,-1670 8,-437 8,-437 8,-431 14,-425 20,-425" style=""/>
<text text-anchor="middle" x="398.38" y="-1665.4" font-family="Times,serif" font-size="14.00" fill="#f0f0f0" style="">P2PIX</text>
</g>
<g id="clust2" class="cluster" data-name="clusterDT">
<path fill="#3b4b63" stroke="#e8726d" stroke-dasharray="5,2" d="M270.03,-142C270.03,-142 344.19,-142 344.19,-142 350.19,-142 356.19,-148 356.19,-154 356.19,-154 356.19,-261 356.19,-261 356.19,-267 350.19,-273 344.19,-273 344.19,-273 270.03,-273 270.03,-273 264.03,-273 258.03,-267 258.03,-261 258.03,-261 258.03,-154 258.03,-154 258.03,-148 264.03,-142 270.03,-142" style=""/>
<text text-anchor="middle" x="307.11" y="-256.4" font-family="Times,serif" font-size="14.00" fill="#f0f0f0" style="">DT</text>
</g>
<g id="clust3" class="cluster" data-name="clusterCounters.Counter">
<path fill="#3b4b63" stroke="#e8726d" stroke-dasharray="5,2" d="M491.15,-8C491.15,-8 582.44,-8 582.44,-8 588.44,-8 594.44,-14 594.44,-20 594.44,-20 594.44,-127 594.44,-127 594.44,-133 588.44,-139 582.44,-139 582.44,-139 491.15,-139 491.15,-139 485.15,-139 479.15,-133 479.15,-127 479.15,-127 479.15,-20 479.15,-20 479.15,-14 485.15,-8 491.15,-8" style=""/>
<text text-anchor="middle" x="536.8" y="-122.4" font-family="Times,serif" font-size="14.00" fill="#f0f0f0" style="">Counters.Counter</text>
</g>
<g id="clust4" class="cluster" data-name="clusterSafeTransferLib">
<path fill="#3b4b63" stroke="#e8726d" stroke-dasharray="5,2" d="M460.58,-147C460.58,-147 613.01,-147 613.01,-147 619.01,-147 625.01,-153 625.01,-159 625.01,-159 625.01,-320 625.01,-320 625.01,-326 619.01,-332 613.01,-332 613.01,-332 460.58,-332 460.58,-332 454.58,-332 448.58,-326 448.58,-320 448.58,-320 448.58,-159 448.58,-159 448.58,-153 454.58,-147 460.58,-147" style=""/>
<text text-anchor="middle" x="536.8" y="-315.4" font-family="Times,serif" font-size="14.00" fill="#f0f0f0" style="">SafeTransferLib</text>
</g>
<g id="clust5" class="cluster" data-name="clusterMerkle">
<path fill="#3b4b63" stroke="#e8726d" stroke-dasharray="5,2" d="M506.7,-340C506.7,-340 566.89,-340 566.89,-340 572.89,-340 578.89,-346 578.89,-352 578.89,-352 578.89,-405 578.89,-405 578.89,-411 572.89,-417 566.89,-417 566.89,-417 506.7,-417 506.7,-417 500.7,-417 494.7,-411 494.7,-405 494.7,-405 494.7,-352 494.7,-352 494.7,-346 500.7,-340 506.7,-340" style=""/>
<text text-anchor="middle" x="536.8" y="-400.4" font-family="Times,serif" font-size="14.00" fill="#f0f0f0" style="">Merkle</text>
</g>
<g id="clust6" class="cluster" data-name="cluster_01">
<polygon fill="#2e3e56" stroke="black" points="21.61,-1690 21.61,-1819 342.11,-1819 342.11,-1690 21.61,-1690" style=""/>
<text text-anchor="middle" x="181.86" y="-1802.4" font-family="Times,serif" font-size="14.00" style="">Legend</text>
</g>
<!-- P2PIX.&lt;Constructor&gt; -->
<g id="node1" class="node" pointer-events="visible" data-name="P2PIX.&lt;Constructor&gt;">
<ellipse fill="#ff9797" stroke="brown" stroke-width="3" cx="94.61" cy="-1550" rx="67.55" ry="18" style=""/>
<text text-anchor="middle" x="94.61" y="-1545.8" font-family="Times,serif" font-size="14.00" style="">&lt;Constructor&gt;</text>
</g>
<!-- P2PIX.setReputation -->
<g id="node10" class="node" pointer-events="visible" data-name="P2PIX.setReputation">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-1577" rx="64.28" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-1572.8" font-family="Times,serif" font-size="14.00" style="">setReputation</text>
</g>
<!-- P2PIX.&lt;Constructor&gt;&#45;&gt;P2PIX.setReputation -->
<g id="edge2" class="edge" data-name="P2PIX.&lt;Constructor&gt;-&gt;P2PIX.setReputation">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M157.63,-1557.95C181.59,-1561.03 209.16,-1564.57 234,-1567.75" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="233.34,-1571.19 243.7,-1569 234.23,-1564.25 233.34,-1571.19" style=""/>
</g>
<!-- P2PIX.setDefaultLockBlocks -->
<g id="node11" class="node" pointer-events="visible" data-name="P2PIX.setDefaultLockBlocks">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-1631" rx="97.28" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-1626.8" font-family="Times,serif" font-size="14.00" style="">setDefaultLockBlocks</text>
</g>
<!-- P2PIX.&lt;Constructor&gt;&#45;&gt;P2PIX.setDefaultLockBlocks -->
<g id="edge1" class="edge" data-name="P2PIX.&lt;Constructor&gt;-&gt;P2PIX.setDefaultLockBlocks">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M127.29,-1566.87C149.73,-1578.36 180.78,-1593.37 209.21,-1604 216.87,-1606.86 224.97,-1609.58 233.09,-1612.11" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="231.89,-1615.41 242.48,-1614.93 233.91,-1608.7 231.89,-1615.41" style=""/>
</g>
<!-- P2PIX.setValidSigners -->
<g id="node12" class="node" pointer-events="visible" data-name="P2PIX.setValidSigners">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-1469" rx="72.38" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-1464.8" font-family="Times,serif" font-size="14.00" style="">setValidSigners</text>
</g>
<!-- P2PIX.&lt;Constructor&gt;&#45;&gt;P2PIX.setValidSigners -->
<g id="edge3" class="edge" data-name="P2PIX.&lt;Constructor&gt;-&gt;P2PIX.setValidSigners">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M127.29,-1533.13C149.73,-1521.64 180.78,-1506.63 209.21,-1496 219.21,-1492.26 229.95,-1488.77 240.51,-1485.62" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="241.23,-1489.06 249.87,-1482.93 239.29,-1482.33 241.23,-1489.06" style=""/>
</g>
<!-- P2PIX.tokenSettings -->
<g id="node13" class="node" pointer-events="visible" data-name="P2PIX.tokenSettings">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-1523" rx="63.72" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-1518.8" font-family="Times,serif" font-size="14.00" style="">tokenSettings</text>
</g>
<!-- P2PIX.&lt;Constructor&gt;&#45;&gt;P2PIX.tokenSettings -->
<g id="edge4" class="edge" data-name="P2PIX.&lt;Constructor&gt;-&gt;P2PIX.tokenSettings">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M157.63,-1542.05C181.69,-1538.96 209.4,-1535.4 234.32,-1532.21" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="234.59,-1535.7 244.06,-1530.96 233.7,-1528.76 234.59,-1535.7" style=""/>
</g>
<!-- P2PIX.deposit -->
<g id="node2" class="node" pointer-events="visible" data-name="P2PIX.deposit">
<ellipse fill="#ff9797" stroke="#ff9797" stroke-width="3" cx="94.61" cy="-613" rx="38.86" ry="18" style=""/>
<text text-anchor="middle" x="94.61" y="-608.8" font-family="Times,serif" font-size="14.00" style="">deposit</text>
</g>
<!-- P2PIX.setRoot -->
<g id="node8" class="node" pointer-events="visible" data-name="P2PIX.setRoot">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-869" rx="40.59" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-864.8" font-family="Times,serif" font-size="14.00" style="">setRoot</text>
</g>
<!-- P2PIX.deposit&#45;&gt;P2PIX.setRoot -->
<g id="edge10" class="edge" data-name="P2PIX.deposit-&gt;P2PIX.setRoot">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M101.45,-631.93C114.63,-671.86 150.22,-765.67 209.21,-822 223.54,-835.68 242.6,-846.08 260.02,-853.58" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="258.65,-856.8 269.23,-857.29 261.26,-850.31 258.65,-856.8" style=""/>
</g>
<!-- P2PIX._encodeDepositID -->
<g id="node17" class="node" pointer-events="visible" data-name="P2PIX._encodeDepositID">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-505" rx="83.38" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-500.8" font-family="Times,serif" font-size="14.00" style="">_encodeDepositID</text>
</g>
<!-- P2PIX.deposit&#45;&gt;P2PIX._encodeDepositID -->
<g id="edge7" class="edge" data-name="P2PIX.deposit-&gt;P2PIX._encodeDepositID">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M114.4,-596.43C135.93,-578.24 172.93,-549.33 209.21,-532 216.84,-528.36 225.04,-525.13 233.33,-522.29" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="234.14,-525.7 242.6,-519.32 232.01,-519.04 234.14,-525.7" style=""/>
</g>
<!-- P2PIX.ERC20 -->
<g id="node22" class="node" pointer-events="visible" data-name="P2PIX.ERC20">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-748" rx="39.45" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-743.8" font-family="Times,serif" font-size="14.00" style="">ERC20</text>
</g>
<!-- P2PIX.deposit&#45;&gt;P2PIX.ERC20 -->
<g id="edge5" class="edge" data-name="P2PIX.deposit-&gt;P2PIX.ERC20">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M113.15,-630.04C134.11,-649.24 171.14,-679.64 209.21,-694 291.06,-724.86 318.92,-698.51 405.01,-714 433.52,-719.13 464.95,-727.22 489.86,-734.22" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="488.75,-737.55 499.33,-736.93 490.68,-730.82 488.75,-737.55" style=""/>
</g>
<!-- P2PIX.TokenDenied -->
<g id="node23" class="node" pointer-events="visible" data-name="P2PIX.TokenDenied">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-559" rx="63.69" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-554.8" font-family="Times,serif" font-size="14.00" style="">TokenDenied</text>
</g>
<!-- P2PIX.deposit&#45;&gt;P2PIX.TokenDenied -->
<g id="edge6" class="edge" data-name="P2PIX.deposit-&gt;P2PIX.TokenDenied">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M130.37,-604.08C161.53,-596.09 207.94,-584.18 245.25,-574.61" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="245.77,-578.09 254.58,-572.22 244.03,-571.31 245.77,-578.09" style=""/>
</g>
<!-- P2PIX.setReentrancyGuard -->
<g id="node24" class="node" pointer-events="visible" data-name="P2PIX.setReentrancyGuard">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-667" rx="89.73" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-662.8" font-family="Times,serif" font-size="14.00" style="">setReentrancyGuard</text>
</g>
<!-- P2PIX.deposit&#45;&gt;P2PIX.setReentrancyGuard -->
<g id="edge9" class="edge" data-name="P2PIX.deposit-&gt;P2PIX.setReentrancyGuard">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M130.37,-621.92C158.99,-629.26 200.48,-639.9 235.96,-649.01" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="234.74,-652.31 245.3,-651.4 236.48,-645.53 234.74,-652.31" style=""/>
</g>
<!-- P2PIX.clearReentrancyGuard -->
<g id="node25" class="node" pointer-events="visible" data-name="P2PIX.clearReentrancyGuard">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-741" rx="97.79" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-736.8" font-family="Times,serif" font-size="14.00" style="">clearReentrancyGuard</text>
</g>
<!-- P2PIX.deposit&#45;&gt;P2PIX.clearReentrancyGuard -->
<g id="edge13" class="edge" data-name="P2PIX.deposit-&gt;P2PIX.clearReentrancyGuard">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M111.76,-630.22C132.5,-651.43 170.46,-687.31 209.21,-709 217.29,-713.52 226.11,-717.53 235.03,-721.05" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="233.76,-724.31 244.35,-724.49 236.18,-717.74 233.76,-724.31" style=""/>
</g>
<!-- P2PIX.DepositAdded -->
<g id="node26" class="node" pointer-events="visible" data-name="P2PIX.DepositAdded">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-795" rx="66.65" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-790.8" font-family="Times,serif" font-size="14.00" style="">DepositAdded</text>
</g>
<!-- P2PIX.deposit&#45;&gt;P2PIX.DepositAdded -->
<g id="edge14" class="edge" data-name="P2PIX.deposit-&gt;P2PIX.DepositAdded">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M104.22,-631.92C120.14,-664.74 157.35,-732.13 209.21,-768 217.15,-773.49 226.18,-777.87 235.46,-781.36" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="234.26,-784.65 244.86,-784.5 236.48,-778.01 234.26,-784.65" style=""/>
</g>
<!-- DT.Deposit -->
<g id="node46" class="node" pointer-events="visible" data-name="DT.Deposit">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-168" rx="41.16" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-163.8" font-family="Times,serif" font-size="14.00" style="">Deposit</text>
</g>
<!-- P2PIX.deposit&#45;&gt;DT.Deposit -->
<g id="edge8" class="edge" data-name="P2PIX.deposit-&gt;DT.Deposit">
<path fill="none" stroke="white" stroke-width="2" d="M117.45,-597.05C135.71,-582.37 160.73,-558.84 173.21,-532 204.97,-463.71 160.54,-252.47 209.21,-195 219.9,-182.38 235.94,-175.4 251.91,-171.62" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="252.44,-175.08 261.62,-169.79 251.14,-168.2 252.44,-175.08" style=""/>
</g>
<!-- Counters.Counter.increment -->
<g id="node48" class="node" pointer-events="visible" data-name="Counters.Counter.increment">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-34" rx="49.79" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-29.8" font-family="Times,serif" font-size="14.00" style="">increment</text>
</g>
<!-- P2PIX.deposit&#45;&gt;Counters.Counter.increment -->
<g id="edge11" class="edge" data-name="P2PIX.deposit-&gt;Counters.Counter.increment">
<path fill="none" stroke="white" stroke-width="2" d="M116.91,-596.78C134.83,-581.93 159.65,-558.31 173.21,-532 212.41,-456 153.03,-407.46 209.21,-343 269.55,-273.78 345.47,-346.91 405.01,-277 468.11,-202.9 376.16,-133.57 441.01,-61 449.73,-51.24 461.7,-44.9 474.21,-40.81" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="475.11,-44.19 483.86,-38.21 473.3,-37.43 475.11,-44.19" style=""/>
</g>
<!-- SafeTransferLib.safeTransferFrom -->
<g id="node50" class="node" pointer-events="visible" data-name="SafeTransferLib.safeTransferFrom">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-227" rx="80.43" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-222.8" font-family="Times,serif" font-size="14.00" style="">safeTransferFrom</text>
</g>
<!-- P2PIX.deposit&#45;&gt;SafeTransferLib.safeTransferFrom -->
<g id="edge12" class="edge" data-name="P2PIX.deposit-&gt;SafeTransferLib.safeTransferFrom">
<path fill="none" stroke="white" stroke-width="2" d="M116.16,-596.86C133.85,-581.89 158.75,-558.05 173.21,-532 204.62,-475.46 163.26,-436.51 209.21,-391 272.87,-327.95 337.26,-401.63 405.01,-343 437.27,-315.08 409.27,-282.52 441.01,-254 445.82,-249.68 451.27,-246.05 457.08,-242.99" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="458.15,-246.34 465.83,-239.04 455.28,-239.96 458.15,-246.34" style=""/>
</g>
<!-- P2PIX.cancelDeposit -->
<g id="node3" class="node" pointer-events="visible" data-name="P2PIX.cancelDeposit">
<ellipse fill="#ff9797" stroke="#ff9797" stroke-width="3" cx="307.11" cy="-1017" rx="65.97" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-1012.8" font-family="Times,serif" font-size="14.00" style="">cancelDeposit</text>
</g>
<!-- P2PIX._onlySeller -->
<g id="node15" class="node" pointer-events="visible" data-name="P2PIX._onlySeller">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-963" rx="55.62" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-958.8" font-family="Times,serif" font-size="14.00" style="">_onlySeller</text>
</g>
<!-- P2PIX.cancelDeposit&#45;&gt;P2PIX._onlySeller -->
<g id="edge15" class="edge" data-name="P2PIX.cancelDeposit-&gt;P2PIX._onlySeller">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M359.49,-1004.81C394.46,-996.52 440.8,-985.53 477.2,-976.9" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="477.76,-980.36 486.68,-974.65 476.15,-973.55 477.76,-980.36" style=""/>
</g>
<!-- P2PIX.DepositClosed -->
<g id="node27" class="node" pointer-events="visible" data-name="P2PIX.DepositClosed">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-1017" rx="67.81" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-1012.8" font-family="Times,serif" font-size="14.00" style="">DepositClosed</text>
</g>
<!-- P2PIX.cancelDeposit&#45;&gt;P2PIX.DepositClosed -->
<g id="edge16" class="edge" data-name="P2PIX.cancelDeposit-&gt;P2PIX.DepositClosed">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M374.58,-1017C399.73,-1017 428.64,-1017 454.97,-1017" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="454.64,-1020.5 464.64,-1017 454.64,-1013.5 454.64,-1020.5" style=""/>
</g>
<!-- P2PIX.lock -->
<g id="node4" class="node" pointer-events="visible" data-name="P2PIX.lock">
<ellipse fill="#ff9797" stroke="#ff9797" stroke-width="3" cx="94.61" cy="-1206" rx="27.83" ry="18" style=""/>
<text text-anchor="middle" x="94.61" y="-1201.8" font-family="Times,serif" font-size="14.00" style="">lock</text>
</g>
<!-- P2PIX.unlockExpired -->
<g id="node6" class="node" pointer-events="visible" data-name="P2PIX.unlockExpired">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-1071" rx="67.78" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-1066.8" font-family="Times,serif" font-size="14.00" style="">unlockExpired</text>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX.unlockExpired -->
<g id="edge17" class="edge" data-name="P2PIX.lock-&gt;P2PIX.unlockExpired">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M108.76,-1189.09C128.18,-1165.26 166.84,-1122.03 209.21,-1098 217.92,-1093.06 227.58,-1088.98 237.34,-1085.62" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="238.3,-1088.99 246.79,-1082.65 236.2,-1082.31 238.3,-1088.99" style=""/>
</g>
<!-- P2PIX._encodeLockID -->
<g id="node18" class="node" pointer-events="visible" data-name="P2PIX._encodeLockID">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-1324" rx="73.48" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-1319.8" font-family="Times,serif" font-size="14.00" style="">_encodeLockID</text>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX._encodeLockID -->
<g id="edge20" class="edge" data-name="P2PIX.lock-&gt;P2PIX._encodeLockID">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M98.92,-1225.2C107.71,-1269.39 136.13,-1377.86 209.21,-1422 246.46,-1444.49 363.73,-1435.75 405.01,-1422 446.6,-1408.15 485.62,-1375.32 510.03,-1351.47" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="512.24,-1354.21 516.82,-1344.66 507.28,-1349.27 512.24,-1354.21" style=""/>
</g>
<!-- P2PIX.merkleVerify -->
<g id="node19" class="node" pointer-events="visible" data-name="P2PIX.merkleVerify">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-1125" rx="63.1" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-1120.8" font-family="Times,serif" font-size="14.00" style="">merkleVerify</text>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX.merkleVerify -->
<g id="edge22" class="edge" data-name="P2PIX.lock-&gt;P2PIX.merkleVerify">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M117.75,-1194.08C140.29,-1182.27 176.48,-1164.23 209.21,-1152 220.5,-1147.78 232.75,-1143.87 244.62,-1140.42" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="245.2,-1143.89 253.87,-1137.8 243.3,-1137.15 245.2,-1143.89" style=""/>
</g>
<!-- P2PIX._limiter -->
<g id="node20" class="node" pointer-events="visible" data-name="P2PIX._limiter">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-1179" rx="41.72" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-1174.8" font-family="Times,serif" font-size="14.00" style="">_limiter</text>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX._limiter -->
<g id="edge26" class="edge" data-name="P2PIX.lock-&gt;P2PIX._limiter">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M123.13,-1202.47C155.91,-1198.27 211.42,-1191.14 252.73,-1185.85" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="253.12,-1189.33 262.59,-1184.58 252.23,-1182.38 253.12,-1189.33" style=""/>
</g>
<!-- P2PIX._castAddrToKey -->
<g id="node21" class="node" pointer-events="visible" data-name="P2PIX._castAddrToKey">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-906" rx="77.58" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-901.8" font-family="Times,serif" font-size="14.00" style="">_castAddrToKey</text>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge23" class="edge" data-name="P2PIX.lock-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M98.79,-1186.84C108.09,-1142.39 139.08,-1033.66 209.21,-981 280.24,-927.67 319.8,-966.07 405.01,-941 421.48,-936.15 424.82,-932.7 441.01,-927 446.96,-924.9 453.15,-922.79 459.38,-920.74" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="460.03,-924.21 468.48,-917.82 457.89,-917.54 460.03,-924.21" style=""/>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge25" class="edge" data-name="P2PIX.lock-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M100.98,-1187.26C112.46,-1145.94 143.82,-1048.1 209.21,-999 280.24,-945.67 319.8,-984.07 405.01,-959 421.48,-954.15 424.82,-950.7 441.01,-945 457.32,-939.25 475.39,-933.41 491.34,-927.88" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="492.49,-931.19 500.74,-924.54 490.15,-924.59 492.49,-931.19" style=""/>
</g>
<!-- P2PIX.InvalidDeposit -->
<g id="node28" class="node" pointer-events="visible" data-name="P2PIX.InvalidDeposit">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-1233" rx="68.36" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-1228.8" font-family="Times,serif" font-size="14.00" style="">InvalidDeposit</text>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX.InvalidDeposit -->
<g id="edge18" class="edge" data-name="P2PIX.lock-&gt;P2PIX.InvalidDeposit">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M123.13,-1209.53C150.46,-1213.04 193.6,-1218.57 231.13,-1223.38" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="230.24,-1226.8 240.6,-1224.6 231.13,-1219.85 230.24,-1226.8" style=""/>
</g>
<!-- P2PIX.NotEnoughTokens -->
<g id="node29" class="node" pointer-events="visible" data-name="P2PIX.NotEnoughTokens">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-1287" rx="83.98" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-1282.8" font-family="Times,serif" font-size="14.00" style="">NotEnoughTokens</text>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX.NotEnoughTokens -->
<g id="edge19" class="edge" data-name="P2PIX.lock-&gt;P2PIX.NotEnoughTokens">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M117.75,-1217.92C140.29,-1229.73 176.48,-1247.77 209.21,-1260 217.87,-1263.24 227.09,-1266.29 236.28,-1269.1" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="235.23,-1272.44 245.81,-1271.91 237.21,-1265.72 235.23,-1272.44" style=""/>
</g>
<!-- P2PIX.LockAdded -->
<g id="node30" class="node" pointer-events="visible" data-name="P2PIX.LockAdded">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-1341" rx="56.75" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-1336.8" font-family="Times,serif" font-size="14.00" style="">LockAdded</text>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX.LockAdded -->
<g id="edge24" class="edge" data-name="P2PIX.lock-&gt;P2PIX.LockAdded">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M112.55,-1221.06C132.95,-1242.98 169.45,-1282.45 209.21,-1305 223.36,-1313.02 240.03,-1318.78 255.52,-1323.29" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="254.13,-1326.54 264.71,-1325.85 256.01,-1319.8 254.13,-1326.54" style=""/>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX.LockAdded -->
<g id="edge28" class="edge" data-name="P2PIX.lock-&gt;P2PIX.LockAdded">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M105.4,-1224.07C123.44,-1250.36 164.24,-1297.49 209.21,-1323 217.86,-1327.91 227.46,-1331.97 237.16,-1335.21" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="235.94,-1338.5 246.53,-1338.03 237.95,-1331.8 235.94,-1338.5" style=""/>
</g>
<!-- P2PIX.AmountNotAllowed -->
<g id="node31" class="node" pointer-events="visible" data-name="P2PIX.AmountNotAllowed">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-1395" rx="90.37" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-1390.8" font-family="Times,serif" font-size="14.00" style="">AmountNotAllowed</text>
</g>
<!-- P2PIX.lock&#45;&gt;P2PIX.AmountNotAllowed -->
<g id="edge27" class="edge" data-name="P2PIX.lock-&gt;P2PIX.AmountNotAllowed">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M103.38,-1224.44C118.58,-1258.21 155.5,-1330.02 209.21,-1368 214.25,-1371.56 219.74,-1374.65 225.47,-1377.34" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="224.1,-1380.56 234.68,-1381.15 226.77,-1374.09 224.1,-1380.56" style=""/>
</g>
<!-- DT.Lock -->
<g id="node47" class="node" pointer-events="visible" data-name="DT.Lock">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-222" rx="30.76" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-217.8" font-family="Times,serif" font-size="14.00" style="">Lock</text>
</g>
<!-- P2PIX.lock&#45;&gt;DT.Lock -->
<g id="edge21" class="edge" data-name="P2PIX.lock-&gt;DT.Lock">
<path fill="none" stroke="white" stroke-width="2" d="M103.77,-1187.63C120.24,-1149.59 157.24,-1059.05 173.21,-979 221.84,-735.29 145.62,-661.24 209.21,-421 226.25,-356.64 264.61,-288.25 287.62,-250.76" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="290.59,-252.63 292.91,-242.29 284.65,-248.92 290.59,-252.63" style=""/>
</g>
<!-- P2PIX.release -->
<g id="node5" class="node" pointer-events="visible" data-name="P2PIX.release">
<ellipse fill="#ff9797" stroke="#ff9797" stroke-width="3" cx="307.11" cy="-613" rx="37.68" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-608.8" font-family="Times,serif" font-size="14.00" style="">release</text>
</g>
<!-- P2PIX.release&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge31" class="edge" data-name="P2PIX.release-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M322.82,-595.2C343.98,-586.38 382.91,-590.65 405.01,-613 448.67,-657.15 414.36,-691.91 441.01,-748 463.42,-795.18 503.33,-842.98 523.46,-875.94" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="520.23,-877.34 528.2,-884.32 526.32,-873.89 520.23,-877.34" style=""/>
</g>
<!-- P2PIX.release&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge34" class="edge" data-name="P2PIX.release-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M343.82,-606.63C364.31,-608.15 389.04,-614.86 405.01,-631 448.67,-675.15 414.36,-709.91 441.01,-766 460.79,-807.64 494.19,-849.76 515.6,-876.98" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="512.66,-878.9 521.57,-884.62 518.17,-874.58 512.66,-878.9" style=""/>
</g>
<!-- P2PIX.release&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge35" class="edge" data-name="P2PIX.release-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M341.48,-621.84C362.39,-625.65 388.43,-632.24 405.01,-649 448.67,-693.15 414.36,-727.91 441.01,-784 457.66,-819.06 483.97,-854.45 504.65,-878.18" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="501.81,-880.26 511.1,-885.35 507.02,-875.58 501.81,-880.26" style=""/>
</g>
<!-- P2PIX.release&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge36" class="edge" data-name="P2PIX.release-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M323.17,-630.6C344.41,-640.43 383.03,-644.77 405.01,-667 448.67,-711.15 414.36,-745.91 441.01,-802 454.36,-830.11 473.93,-858.44 491.82,-879.34" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="489.14,-881.59 498.41,-886.71 494.35,-876.92 489.14,-881.59" style=""/>
</g>
<!-- P2PIX.release&#45;&gt;P2PIX.ERC20 -->
<g id="edge33" class="edge" data-name="P2PIX.release-&gt;P2PIX.ERC20">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M345.76,-615.85C365.37,-619.07 388.62,-625.85 405.01,-640 434.83,-665.74 411.26,-695.17 441.01,-721 453.02,-731.43 468.81,-737.85 484.05,-741.79" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="483.15,-745.17 493.67,-743.9 484.65,-738.34 483.15,-745.17" style=""/>
</g>
<!-- P2PIX.AlreadyReleased -->
<g id="node32" class="node" pointer-events="visible" data-name="P2PIX.AlreadyReleased">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-694" rx="76.99" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-689.8" font-family="Times,serif" font-size="14.00" style="">AlreadyReleased</text>
</g>
<!-- P2PIX.release&#45;&gt;P2PIX.AlreadyReleased -->
<g id="edge29" class="edge" data-name="P2PIX.release-&gt;P2PIX.AlreadyReleased">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M343.79,-619.61C362.62,-623.91 385.74,-630.51 405.01,-640 422.95,-648.84 423.09,-658.11 441.01,-667 448.73,-670.83 457.09,-674.2 465.53,-677.14" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="464.42,-680.46 475.01,-680.21 466.58,-673.8 464.42,-680.46" style=""/>
</g>
<!-- P2PIX.TxAlreadyUsed -->
<g id="node33" class="node" pointer-events="visible" data-name="P2PIX.TxAlreadyUsed">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-532" rx="72.93" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-527.8" font-family="Times,serif" font-size="14.00" style="">TxAlreadyUsed</text>
</g>
<!-- P2PIX.release&#45;&gt;P2PIX.TxAlreadyUsed -->
<g id="edge30" class="edge" data-name="P2PIX.release-&gt;P2PIX.TxAlreadyUsed">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M343.79,-606.39C362.62,-602.09 385.74,-595.49 405.01,-586 422.95,-577.16 423.09,-567.89 441.01,-559 449.23,-554.92 458.16,-551.37 467.15,-548.3" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="468.03,-551.69 476.5,-545.32 465.91,-545.02 468.03,-551.69" style=""/>
</g>
<!-- P2PIX.InvalidSigner -->
<g id="node34" class="node" pointer-events="visible" data-name="P2PIX.InvalidSigner">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-586" rx="63.71" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-581.8" font-family="Times,serif" font-size="14.00" style="">InvalidSigner</text>
</g>
<!-- P2PIX.release&#45;&gt;P2PIX.InvalidSigner -->
<g id="edge32" class="edge" data-name="P2PIX.release-&gt;P2PIX.InvalidSigner">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M345.2,-608.6C377.19,-604.81 424.33,-599.22 463.72,-594.55" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="463.96,-598.04 473.47,-593.39 463.13,-591.09 463.96,-598.04" style=""/>
</g>
<!-- P2PIX.LockReleased -->
<g id="node35" class="node" pointer-events="visible" data-name="P2PIX.LockReleased">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-640" rx="65.97" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-635.8" font-family="Times,serif" font-size="14.00" style="">LockReleased</text>
</g>
<!-- P2PIX.release&#45;&gt;P2PIX.LockReleased -->
<g id="edge41" class="edge" data-name="P2PIX.release-&gt;P2PIX.LockReleased">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M345.2,-617.4C376.56,-621.12 422.46,-626.56 461.37,-631.17" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="460.91,-634.64 471.25,-632.35 461.73,-627.69 460.91,-634.64" style=""/>
</g>
<!-- SafeTransferLib.safeTransfer -->
<g id="node51" class="node" pointer-events="visible" data-name="SafeTransferLib.safeTransfer">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-281" rx="59.08" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-276.8" font-family="Times,serif" font-size="14.00" style="">safeTransfer</text>
</g>
<!-- P2PIX.release&#45;&gt;SafeTransferLib.safeTransfer -->
<g id="edge37" class="edge" data-name="P2PIX.release-&gt;SafeTransferLib.safeTransfer">
<path fill="none" stroke="white" stroke-width="2" d="M323.9,-595.59C345.66,-586.28 384.49,-582.35 405.01,-559 479.12,-474.68 378.18,-402.03 441.01,-309 447.51,-299.38 456.29,-291.22 465.91,-284.73" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="467.62,-287.79 474.44,-279.68 464.05,-281.77 467.62,-287.79" style=""/>
</g>
<!-- P2PIX.release&#45;&gt;SafeTransferLib.safeTransfer -->
<g id="edge38" class="edge" data-name="P2PIX.release-&gt;SafeTransferLib.safeTransfer">
<path fill="none" stroke="white" stroke-width="2" d="M342.16,-604.79C363.35,-601.25 389.44,-594.71 405.01,-577 479.12,-492.68 378.18,-420.03 441.01,-327 449.33,-314.68 461.39,-304.76 474.15,-297.18" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="475.63,-300.35 482.79,-292.54 472.32,-294.18 475.63,-300.35" style=""/>
</g>
<!-- P2PIX.release&#45;&gt;SafeTransferLib.safeTransfer -->
<g id="edge39" class="edge" data-name="P2PIX.release-&gt;SafeTransferLib.safeTransfer">
<path fill="none" stroke="white" stroke-width="2" d="M343.58,-620.09C364.5,-618.95 389.79,-612.31 405.01,-595 479.12,-510.68 378.18,-438.03 441.01,-345 453.71,-326.2 475.14,-312.98 494.42,-303.31" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="495.82,-306.52 503.32,-299.04 492.79,-300.21 495.82,-306.52" style=""/>
</g>
<!-- P2PIX.release&#45;&gt;SafeTransferLib.safeTransfer -->
<g id="edge40" class="edge" data-name="P2PIX.release-&gt;SafeTransferLib.safeTransfer">
<path fill="none" stroke="white" stroke-width="2" d="M322.46,-630.82C343.9,-640.45 384.03,-636.87 405.01,-613 479.12,-528.68 378.18,-456.03 441.01,-363 458.24,-337.49 491.55,-322.26 513.74,-307.68" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="515.71,-310.57 521.73,-301.85 511.59,-304.92 515.71,-310.57" style=""/>
</g>
<!-- P2PIX._notExpired -->
<g id="node16" class="node" pointer-events="visible" data-name="P2PIX._notExpired">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-1071" rx="58.55" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-1066.8" font-family="Times,serif" font-size="14.00" style="">_notExpired</text>
</g>
<!-- P2PIX.unlockExpired&#45;&gt;P2PIX._notExpired -->
<g id="edge42" class="edge" data-name="P2PIX.unlockExpired-&gt;P2PIX._notExpired">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M376.12,-1071C403.83,-1071 435.9,-1071 463.99,-1071" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="463.98,-1074.5 473.98,-1071 463.98,-1067.5 463.98,-1074.5" style=""/>
</g>
<!-- P2PIX.unlockExpired&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge43" class="edge" data-name="P2PIX.unlockExpired-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M370.45,-1063.21C383.11,-1059.16 395.45,-1053.09 405.01,-1044 441.67,-1009.13 404.96,-971.5 441.01,-936 446.59,-930.5 453.17,-926.01 460.23,-922.34" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="461.56,-925.58 469.26,-918.31 458.71,-919.19 461.56,-925.58" style=""/>
</g>
<!-- P2PIX.LockReturned -->
<g id="node36" class="node" pointer-events="visible" data-name="P2PIX.LockReturned">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-1125" rx="66.05" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-1120.8" font-family="Times,serif" font-size="14.00" style="">LockReturned</text>
</g>
<!-- P2PIX.unlockExpired&#45;&gt;P2PIX.LockReturned -->
<g id="edge44" class="edge" data-name="P2PIX.unlockExpired-&gt;P2PIX.LockReturned">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M360.35,-1083.39C393.56,-1091.26 436.77,-1101.51 472,-1109.87" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="471.11,-1113.25 481.64,-1112.16 472.72,-1106.44 471.11,-1113.25" style=""/>
</g>
<!-- P2PIX.withdraw -->
<g id="node7" class="node" pointer-events="visible" data-name="P2PIX.withdraw">
<ellipse fill="#ff9797" stroke="#ff9797" stroke-width="3" cx="94.61" cy="-952" rx="47.52" ry="18" style=""/>
<text text-anchor="middle" x="94.61" y="-947.8" font-family="Times,serif" font-size="14.00" style="">withdraw</text>
</g>
<!-- P2PIX.withdraw&#45;&gt;P2PIX.cancelDeposit -->
<g id="edge47" class="edge" data-name="P2PIX.withdraw-&gt;P2PIX.cancelDeposit">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M133.24,-963.62C165.33,-973.53 211.95,-987.93 248.7,-999.27" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="247.27,-1002.49 257.85,-1002.1 249.33,-995.8 247.27,-1002.49" style=""/>
</g>
<!-- P2PIX.withdraw&#45;&gt;P2PIX.unlockExpired -->
<g id="edge46" class="edge" data-name="P2PIX.withdraw-&gt;P2PIX.unlockExpired">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M112.84,-969.84C133.79,-990.54 171.09,-1024.34 209.21,-1044 218.37,-1048.72 228.46,-1052.7 238.55,-1056.03" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="237.33,-1059.32 247.92,-1058.89 239.38,-1052.63 237.33,-1059.32" style=""/>
</g>
<!-- P2PIX.withdraw&#45;&gt;P2PIX._onlySeller -->
<g id="edge45" class="edge" data-name="P2PIX.withdraw-&gt;P2PIX._onlySeller">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M143.13,-953.19C221.21,-955.14 376.95,-959.03 467.06,-961.28" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="466.75,-964.78 476.83,-961.53 466.92,-957.78 466.75,-964.78" style=""/>
</g>
<!-- P2PIX.withdraw&#45;&gt;P2PIX.ERC20 -->
<g id="edge48" class="edge" data-name="P2PIX.withdraw-&gt;P2PIX.ERC20">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M108.48,-933.33C127.29,-907.74 164.91,-862.62 209.21,-842 288.52,-805.1 321.66,-848.55 405.01,-822 440.95,-810.55 478.02,-788.43 503.47,-771.34" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="505.21,-774.39 511.47,-765.85 501.25,-768.62 505.21,-774.39" style=""/>
</g>
<!-- P2PIX.DepositWithdrawn -->
<g id="node37" class="node" pointer-events="visible" data-name="P2PIX.DepositWithdrawn">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-923" rx="84.54" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-918.8" font-family="Times,serif" font-size="14.00" style="">DepositWithdrawn</text>
</g>
<!-- P2PIX.withdraw&#45;&gt;P2PIX.DepositWithdrawn -->
<g id="edge50" class="edge" data-name="P2PIX.withdraw-&gt;P2PIX.DepositWithdrawn">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M141.02,-945.74C164.29,-942.54 193.4,-938.53 220.67,-934.77" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="221.03,-938.25 230.46,-933.42 220.07,-931.32 221.03,-938.25" style=""/>
</g>
<!-- P2PIX.withdraw&#45;&gt;SafeTransferLib.safeTransfer -->
<g id="edge49" class="edge" data-name="P2PIX.withdraw-&gt;SafeTransferLib.safeTransfer">
<path fill="none" stroke="white" stroke-width="2" d="M100.95,-932.77C114.37,-884.06 150.04,-751.77 173.21,-640 183.09,-592.35 175.69,-459.28 209.21,-424 270.58,-359.41 329.34,-428.03 405.01,-381 426.76,-367.48 421.6,-352.71 441.01,-336 455.88,-323.19 474.17,-311.77 490.7,-302.7" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="491.93,-306.01 499.12,-298.23 488.65,-299.83 491.93,-306.01" style=""/>
</g>
<!-- P2PIX.setRoot&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge51" class="edge" data-name="P2PIX.setRoot-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M346.73,-875.28C377.17,-880.22 420.59,-887.28 458.14,-893.38" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="457.21,-896.77 467.64,-894.92 458.33,-889.86 457.21,-896.77" style=""/>
</g>
<!-- P2PIX.OnlySeller -->
<g id="node38" class="node" pointer-events="visible" data-name="P2PIX.OnlySeller">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="724.68" cy="-916" rx="52.75" ry="18" style=""/>
<text text-anchor="middle" x="724.68" y="-911.8" font-family="Times,serif" font-size="14.00" style="">OnlySeller</text>
</g>
<!-- P2PIX.setRoot&#45;&gt;P2PIX.OnlySeller -->
<g id="edge52" class="edge" data-name="P2PIX.setRoot-&gt;P2PIX.OnlySeller">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M348.36,-865.72C410.23,-861.69 532.09,-857.76 632.59,-879 649.06,-882.48 666.36,-888.77 681.41,-895.19" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="679.6,-898.22 690.16,-899.09 682.45,-891.83 679.6,-898.22" style=""/>
</g>
<!-- P2PIX.withdrawBalance -->
<g id="node9" class="node" pointer-events="visible" data-name="P2PIX.withdrawBalance">
<ellipse fill="#ffbdb9" stroke="#ffbdb9" stroke-width="3" cx="94.61" cy="-505" rx="78.71" ry="18" style=""/>
<text text-anchor="middle" x="94.61" y="-500.8" font-family="Times,serif" font-size="14.00" style="">withdrawBalance</text>
</g>
<!-- P2PIX.FundsWithdrawn -->
<g id="node39" class="node" pointer-events="visible" data-name="P2PIX.FundsWithdrawn">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="307.11" cy="-451" rx="78.19" ry="18" style=""/>
<text text-anchor="middle" x="307.11" y="-446.8" font-family="Times,serif" font-size="14.00" style="">FundsWithdrawn</text>
</g>
<!-- P2PIX.withdrawBalance&#45;&gt;P2PIX.FundsWithdrawn -->
<g id="edge54" class="edge" data-name="P2PIX.withdrawBalance-&gt;P2PIX.FundsWithdrawn">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M150.09,-491.02C177.36,-484.03 210.61,-475.5 239.4,-468.11" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="240.11,-471.55 248.92,-465.67 238.37,-464.76 240.11,-471.55" style=""/>
</g>
<!-- SafeTransferLib.safeTransferETH -->
<g id="node52" class="node" pointer-events="visible" data-name="SafeTransferLib.safeTransferETH">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-173" rx="78.12" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-168.8" font-family="Times,serif" font-size="14.00" style="">safeTransferETH</text>
</g>
<!-- P2PIX.withdrawBalance&#45;&gt;SafeTransferLib.safeTransferETH -->
<g id="edge53" class="edge" data-name="P2PIX.withdrawBalance-&gt;SafeTransferLib.safeTransferETH">
<path fill="none" stroke="white" stroke-width="2" d="M153.64,-491.93C160.92,-488.36 167.72,-483.8 173.21,-478 212.97,-436.02 170.21,-395.68 209.21,-353 272.19,-284.1 336.83,-340.75 405.01,-277 432.6,-251.2 412.25,-224.49 441.01,-200 446.3,-195.49 452.3,-191.74 458.65,-188.61" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="459.76,-191.94 467.59,-184.8 457.02,-185.49 459.76,-191.94" style=""/>
</g>
<!-- P2PIX.ReputationUpdated -->
<g id="node40" class="node" pointer-events="visible" data-name="P2PIX.ReputationUpdated">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-1577" rx="86.26" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-1572.8" font-family="Times,serif" font-size="14.00" style="">ReputationUpdated</text>
</g>
<!-- P2PIX.setReputation&#45;&gt;P2PIX.ReputationUpdated -->
<g id="edge55" class="edge" data-name="P2PIX.setReputation-&gt;P2PIX.ReputationUpdated">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M372.75,-1577C392.55,-1577 414.81,-1577 436.36,-1577" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="436.28,-1580.5 446.28,-1577 436.28,-1573.5 436.28,-1580.5" style=""/>
</g>
<!-- P2PIX.LockBlocksUpdated -->
<g id="node41" class="node" pointer-events="visible" data-name="P2PIX.LockBlocksUpdated">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-1631" rx="90.34" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-1626.8" font-family="Times,serif" font-size="14.00" style="">LockBlocksUpdated</text>
</g>
<!-- P2PIX.setDefaultLockBlocks&#45;&gt;P2PIX.LockBlocksUpdated -->
<g id="edge56" class="edge" data-name="P2PIX.setDefaultLockBlocks-&gt;P2PIX.LockBlocksUpdated">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M405.66,-1631C414.5,-1631 423.47,-1631 432.36,-1631" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="432.27,-1634.5 442.27,-1631 432.27,-1627.5 432.27,-1634.5" style=""/>
</g>
<!-- P2PIX.setValidSigners&#45;&gt;P2PIX._castAddrToKey -->
<g id="edge57" class="edge" data-name="P2PIX.setValidSigners-&gt;P2PIX._castAddrToKey">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M359.74,-1455.46C376.91,-1448.34 394.35,-1437.7 405.01,-1422 465.85,-1332.41 373.83,-1020.94 441.01,-936 445.67,-930.1 451.49,-925.34 457.94,-921.51" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="459.18,-924.8 466.59,-917.22 456.07,-918.53 459.18,-924.8" style=""/>
</g>
<!-- P2PIX.ValidSignersUpdated -->
<g id="node42" class="node" pointer-events="visible" data-name="P2PIX.ValidSignersUpdated">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-1469" rx="94.35" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-1464.8" font-family="Times,serif" font-size="14.00" style="">ValidSignersUpdated</text>
</g>
<!-- P2PIX.setValidSigners&#45;&gt;P2PIX.ValidSignersUpdated -->
<g id="edge58" class="edge" data-name="P2PIX.setValidSigners-&gt;P2PIX.ValidSignersUpdated">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M380.78,-1469C395.87,-1469 412.09,-1469 428.13,-1469" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="427.92,-1472.5 437.92,-1469 427.92,-1465.5 427.92,-1472.5" style=""/>
</g>
<!-- P2PIX.&lt;Receive Ether&gt; -->
<g id="node14" class="node" pointer-events="visible" data-name="P2PIX.&lt;Receive Ether&gt;">
<ellipse fill="#ffbdb9" stroke="brown" stroke-width="3" cx="94.61" cy="-451" rx="76.21" ry="18" style=""/>
<text text-anchor="middle" x="94.61" y="-446.8" font-family="Times,serif" font-size="14.00" style="">&lt;Receive Ether&gt;</text>
</g>
<!-- P2PIX._onlySeller&#45;&gt;P2PIX.OnlySeller -->
<g id="edge59" class="edge" data-name="P2PIX._onlySeller-&gt;P2PIX.OnlySeller">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M582.79,-951.62C608.3,-945.17 640.44,-937.05 667.58,-930.18" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="668.29,-933.62 677.12,-927.77 666.57,-926.83 668.29,-933.62" style=""/>
</g>
<!-- P2PIX.NotExpired -->
<g id="node43" class="node" pointer-events="visible" data-name="P2PIX.NotExpired">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="724.68" cy="-1197" rx="56.18" ry="18" style=""/>
<text text-anchor="middle" x="724.68" y="-1192.8" font-family="Times,serif" font-size="14.00" style="">NotExpired</text>
</g>
<!-- P2PIX._notExpired&#45;&gt;P2PIX.NotExpired -->
<g id="edge60" class="edge" data-name="P2PIX._notExpired-&gt;P2PIX.NotExpired">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M589.14,-1080.14C603.87,-1084.19 619.48,-1089.92 632.59,-1098 661.5,-1115.82 686.96,-1145.34 703.56,-1167.52" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="700.71,-1169.55 709.41,-1175.59 706.38,-1165.44 700.71,-1169.55" style=""/>
</g>
<!-- P2PIX.DepositAlreadyExists -->
<g id="node44" class="node" pointer-events="visible" data-name="P2PIX.DepositAlreadyExists">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-478" rx="95.58" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-473.8" font-family="Times,serif" font-size="14.00" style="">DepositAlreadyExists</text>
</g>
<!-- P2PIX._encodeDepositID&#45;&gt;P2PIX.DepositAlreadyExists -->
<g id="edge62" class="edge" data-name="P2PIX._encodeDepositID-&gt;P2PIX.DepositAlreadyExists">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M382.66,-496.16C401.09,-493.97 421.08,-491.6 440.34,-489.32" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="440.68,-492.8 450.2,-488.15 439.86,-485.85 440.68,-492.8" style=""/>
</g>
<!-- Counters.Counter.current -->
<g id="node49" class="node" pointer-events="visible" data-name="Counters.Counter.current">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-88" rx="38.26" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-83.8" font-family="Times,serif" font-size="14.00" style="">current</text>
</g>
<!-- P2PIX._encodeDepositID&#45;&gt;Counters.Counter.current -->
<g id="edge61" class="edge" data-name="P2PIX._encodeDepositID-&gt;Counters.Counter.current">
<path fill="none" stroke="white" stroke-width="2" d="M380.59,-495.4C389.9,-491.34 398.46,-485.73 405.01,-478 501.83,-363.76 359.44,-268.58 441.01,-143 452.74,-124.94 472.63,-112.09 491.17,-103.39" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="492.49,-106.63 500.28,-99.45 489.71,-100.2 492.49,-106.63" style=""/>
</g>
<!-- P2PIX._encodeLockID&#45;&gt;P2PIX.NotExpired -->
<g id="edge63" class="edge" data-name="P2PIX._encodeLockID-&gt;P2PIX.NotExpired">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M564.04,-1306.07C596.41,-1283.95 651.62,-1246.24 687.87,-1221.47" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="689.68,-1224.46 695.97,-1215.93 685.74,-1218.68 689.68,-1224.46" style=""/>
</g>
<!-- P2PIX.AddressDenied -->
<g id="node45" class="node" pointer-events="visible" data-name="P2PIX.AddressDenied">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-1179" rx="70.64" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-1174.8" font-family="Times,serif" font-size="14.00" style="">AddressDenied</text>
</g>
<!-- P2PIX.merkleVerify&#45;&gt;P2PIX.AddressDenied -->
<g id="edge65" class="edge" data-name="P2PIX.merkleVerify-&gt;P2PIX.AddressDenied">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M358.08,-1136.85C390.98,-1144.65 434.41,-1154.95 470.1,-1163.42" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="468.89,-1166.73 479.43,-1165.63 470.51,-1159.92 468.89,-1166.73" style=""/>
</g>
<!-- Merkle.verify -->
<g id="node53" class="node" pointer-events="visible" data-name="Merkle.verify">
<ellipse fill="#edad56" stroke="#edad56" stroke-width="3" cx="536.8" cy="-366" rx="34.19" ry="18" style=""/>
<text text-anchor="middle" x="536.8" y="-361.8" font-family="Times,serif" font-size="14.00" style="">verify</text>
</g>
<!-- P2PIX.merkleVerify&#45;&gt;Merkle.verify -->
<g id="edge64" class="edge" data-name="P2PIX.merkleVerify-&gt;Merkle.verify">
<path fill="none" stroke="white" stroke-width="2" d="M369.38,-1119.94C383.05,-1115.87 396.1,-1109.1 405.01,-1098 499.28,-980.48 362.38,-549.51 441.01,-421 452.79,-401.74 474.03,-388.51 493.41,-379.87" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="494.72,-383.12 502.65,-376.1 492.07,-376.64 494.72,-383.12" style=""/>
</g>
<!-- key -->
<g id="node54" class="node" pointer-events="visible" data-name="key">
<polygon fill="#edad56" stroke="none" stroke-width="3" points="159.61,-1786 29.61,-1786 29.61,-1698 159.61,-1698 159.61,-1786" style=""/>
<text text-anchor="start" x="79.24" y="-1767.4" font-family="Times,serif" font-size="14.00" style="">Internal Call</text>
<text text-anchor="start" x="75.35" y="-1747.4" font-family="Times,serif" font-size="14.00" style="">External Call</text>
<text text-anchor="start" x="52.81" y="-1727.4" font-family="Times,serif" font-size="14.00" style="">Defined Contract</text>
<text text-anchor="start" x="39.21" y="-1707.4" font-family="Times,serif" font-size="14.00" style="">Undefined Contract</text>
</g>
<!-- key2 -->
<g id="node55" class="node" pointer-events="visible" data-name="key2">
<polygon fill="#edad56" stroke="none" stroke-width="3" points="334.11,-1786 280.11,-1786 280.11,-1698 334.11,-1698 334.11,-1786" style=""/>
<text text-anchor="start" x="297.11" y="-1767.4" font-family="Times,serif" font-size="14.00" style="">   </text>
<text text-anchor="start" x="297.11" y="-1747.4" font-family="Times,serif" font-size="14.00" style="">   </text>
<polygon fill="#445773" stroke="none" points="295.11,-1722 295.11,-1742 320.11,-1742 320.11,-1722 295.11,-1722" style=""/>
<text text-anchor="start" x="297.11" y="-1727.4" font-family="Times,serif" font-size="14.00" style="">   </text>
<polygon fill="none" stroke="#e8726d" points="297.11,-1704 297.11,-1720 318.11,-1720 318.11,-1704 297.11,-1704" style=""/>
</g>
<!-- key&#45;&gt;key2 -->
<g id="edge66" class="edge" data-name="key-&gt;key2">
<path fill="none" stroke="#1bc6a6" stroke-width="2" d="M152.61,-1772C210.95,-1772 228.7,-1772 281.18,-1772" style=""/>
<polygon fill="#1bc6a6" stroke="#1bc6a6" stroke-width="2" points="281.08,-1775.5 291.08,-1772 281.08,-1768.5 281.08,-1775.5" style=""/>
</g>
<!-- key&#45;&gt;key2 -->
<g id="edge67" class="edge" data-name="key-&gt;key2">
<path fill="none" stroke="white" stroke-width="2" d="M152.61,-1752C210.95,-1752 228.7,-1752 281.18,-1752" style=""/>
<polygon fill="white" stroke="white" stroke-width="2" points="281.08,-1755.5 291.08,-1752 281.08,-1748.5 281.08,-1755.5" style=""/>
</g>
</g>
</svg>