diff --git a/ui/assets/animation/empty.json b/ui/assets/animation/empty.json new file mode 100644 index 0000000..5bcbecb --- /dev/null +++ b/ui/assets/animation/empty.json @@ -0,0 +1 @@ +{"v":"5.4.2","fr":60,"ip":0,"op":90,"w":620,"h":690,"nm":"Pre-comp 2","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"bottom_right 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"t":15}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[211.343,208.143,0],"e":[211.343,428.143,0],"to":[0,36.6666679382324,0],"ti":[0,-30,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[211.343,428.143,0],"e":[211.343,388.143,0],"to":[0,30,0],"ti":[0,6.66666650772095,0]},{"t":19}],"ix":2},"a":{"a":0,"k":[97.496,-65.355,0],"ix":1},"s":{"a":0,"k":[117.486,89.612,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[{"i":[[0.25,0.643],[9.638,27.694],[-0.545,1.799],[-2.253,0.087],[-49.028,-1.083],[-2.41,-2.312],[-1.521,-3.891],[-8.485,-26.666],[1.229,0.008],[53.092,-0.118]],"o":[[-10.659,-27.407],[-0.62,-1.781],[0.577,-1.904],[48.997,-1.881],[3.579,0.079],[3.17,3.04],[10.237,26.193],[0.329,1.034],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-14.216,-147.833],[-15.21,-153.348],[-11.12,-158.055],[136.006,-159.153],[145.395,-154.598],[152.084,-143.734],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.424,0.569],[15.558,22.754],[-0.549,0.524],[-1.831,0.039],[-48.815,-0.529],[-2.518,-1.52],[-1.695,-2.278],[-14.928,-21.952],[1.229,0.008],[53.092,-0.118]],"o":[[-16.558,-22.209],[-0.417,-0.61],[1.236,-1.18],[48.804,-1.038],[3.061,0.033],[2.559,1.544],[15.934,21.406],[0.628,0.923],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-32.223,-132.662],[-32.193,-134.793],[-27.451,-137.218],[119.002,-138.009],[127.738,-135.536],[133.603,-129.197],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[{"i":[[0.424,0.569],[15.558,22.754],[-0.549,0.524],[-1.831,0.039],[-48.815,-0.529],[-2.518,-1.52],[-1.695,-2.278],[-14.928,-21.952],[1.229,0.008],[53.092,-0.118]],"o":[[-16.558,-22.209],[-0.417,-0.61],[1.236,-1.18],[48.804,-1.038],[3.061,0.033],[2.559,1.544],[15.934,21.406],[0.628,0.923],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-32.223,-132.662],[-32.193,-134.793],[-27.451,-137.218],[119.002,-138.009],[127.738,-135.536],[133.603,-129.197],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.755,0.163],[22.491,4.893],[-0.583,-0.1],[-1.798,0.007],[-48.594,0.029],[-2.65,-0.445],[-1.767,-0.37],[-22.306,-4.387],[1.229,0.008],[53.092,-0.118]],"o":[[-22.5,-4.861],[-0.577,-0.125],[1.764,0.304],[48.593,-0.202],[2.699,-0.002],[1.785,0.3],[22.233,4.66],[1.199,0.236],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-51.645,-80.621],[-50.591,-79.366],[-45.198,-79.511],[100.583,-79.994],[108.666,-79.602],[113.707,-77.789],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":19,"s":[{"i":[[0.755,0.163],[22.491,4.893],[-0.583,-0.1],[-1.798,0.007],[-48.594,0.029],[-2.65,-0.445],[-1.767,-0.37],[-22.306,-4.387],[1.229,0.008],[53.092,-0.118]],"o":[[-22.5,-4.861],[-0.577,-0.125],[1.764,0.304],[48.593,-0.202],[2.699,-0.002],[1.785,0.3],[22.233,4.66],[1.199,0.236],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-51.645,-80.621],[-50.591,-79.366],[-45.198,-79.511],[100.583,-79.994],[108.666,-79.602],[113.707,-77.789],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.247,-0.644],[6.169,-21.714],[-1.621,-1.738],[-2.463,-0.053],[-48.247,0.874],[-2.012,1.421],[-0.72,1.893],[-6.492,22.149],[1.229,0.008],[53.092,-0.118]],"o":[[-8.129,21.216],[-0.618,2.176],[1.556,1.668],[48.242,1.039],[2.587,-0.047],[1.776,-1.254],[8.252,-21.697],[0.305,-1.04],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-7.072,-0.833],[-4.48,5.499],[1.889,8.776],[146.661,8.755],[153.766,6.024],[157.571,1.048],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":24,"s":[{"i":[[0.247,-0.644],[6.169,-21.714],[-1.621,-1.738],[-2.463,-0.053],[-48.247,0.874],[-2.012,1.421],[-0.72,1.893],[-6.492,22.149],[1.229,0.008],[53.092,-0.118]],"o":[[-8.129,21.216],[-0.618,2.176],[1.556,1.668],[48.242,1.039],[2.587,-0.047],[1.776,-1.254],[8.252,-21.697],[0.305,-1.04],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-7.072,-0.833],[-4.48,5.499],[1.889,8.776],[146.661,8.755],[153.766,6.024],[157.571,1.048],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.209,-0.654],[5.451,-24.026],[-1.771,-2.15],[-2.692,-0.074],[-48.163,1.073],[-1.776,1.712],[-0.734,2.328],[-5.933,24.38],[1.229,0.008],[53.092,-0.118]],"o":[[-7.558,23.588],[-0.59,2.598],[1.573,1.909],[48.155,1.326],[2.644,-0.059],[1.856,-1.789],[7.579,-24.03],[0.256,-1.05],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-5.266,6.219],[-2.315,13.736],[4.282,17.811],[148.818,17.898],[155.694,14.438],[159.211,7.879],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":26,"s":[{"i":[[0.209,-0.654],[5.451,-24.026],[-1.771,-2.15],[-2.692,-0.074],[-48.163,1.073],[-1.776,1.712],[-0.734,2.328],[-5.933,24.38],[1.229,0.008],[53.092,-0.118]],"o":[[-7.558,23.588],[-0.59,2.598],[1.573,1.909],[48.155,1.326],[2.644,-0.059],[1.856,-1.789],[7.579,-24.03],[0.256,-1.05],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-5.266,6.219],[-2.315,13.736],[4.282,17.811],[148.818,17.898],[155.694,14.438],[159.211,7.879],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[-0.148,-0.667],[-8.331,-32.489],[-1.771,-2.15],[-2.692,-0.074],[-48.163,1.073],[-1.776,1.712],[0.45,2.382],[8.874,32.748],[1.229,0.008],[53.092,-0.118]],"o":[[7.251,32.686],[0.663,2.585],[1.573,1.909],[48.155,1.326],[2.644,-0.059],[1.856,-1.789],[-6.275,-33.203],[-0.283,-1.045],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[39.561,32.675],[42.512,40.192],[49.109,44.267],[193.645,44.354],[200.521,40.894],[204.038,34.335],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"t":29}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.97565870098,0.623621323529,0.104366167854,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.186,-121.197],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[91.803,91.525],"ix":3},"r":{"a":0,"k":36.852,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"bottom_right 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"t":15}],"ix":11},"r":{"a":0,"k":149.892,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[239.343,81.393,0],"e":[239.343,301.393,0],"to":[0,36.6666679382324,0],"ti":[0,-30,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[239.343,301.393,0],"e":[239.343,261.393,0],"to":[0,30,0],"ti":[0,6.66666650772095,0]},{"t":19}],"ix":2},"a":{"a":0,"k":[97.496,-65.355,0],"ix":1},"s":{"a":0,"k":[98.474,89.612,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[{"i":[[0.669,0.345],[13.132,7.662],[2.349,2.068],[-2.927,0.191],[-50.571,-0.547],[-6.093,-2.696],[-4.316,-2.999],[-10.975,-8.181],[1.229,0.008],[53.092,-0.118]],"o":[[-13.598,-7.014],[-2.773,-1.618],[-2.067,-1.82],[50.434,-3.288],[6.83,0.074],[4.92,2.177],[11.291,7.846],[0.935,0.697],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-24.326,-87.334],[-32.133,-92.799],[-37.475,-98.911],[114.198,-102.339],[133.777,-97.06],[146.651,-87.982],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.747,0.188],[12.353,3.718],[3.201,1.325],[-2.289,0.161],[-51.584,1.049],[-5.74,-1.85],[-5.003,-2.301],[-10.051,-5.077],[1.229,0.008],[53.092,-0.118]],"o":[[-12.557,-3.155],[-3.35,-1.008],[-2.075,-0.859],[51.43,-3.628],[6.117,-0.124],[5.305,1.71],[10.274,4.724],[1.064,0.537],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-21.74,-75.551],[-31.537,-79.151],[-37.545,-82.094],[117.008,-89.63],[134.773,-85.599],[149.964,-79.007],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":16,"s":[{"i":[[0.747,0.188],[12.353,3.718],[3.201,1.325],[-2.289,0.161],[-51.584,1.049],[-5.74,-1.85],[-5.003,-2.301],[-10.051,-5.077],[1.229,0.008],[53.092,-0.118]],"o":[[-12.557,-3.155],[-3.35,-1.008],[-2.075,-0.859],[51.43,-3.628],[6.117,-0.124],[5.305,1.71],[10.274,4.724],[1.064,0.537],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-21.74,-75.551],[-31.537,-79.151],[-37.545,-82.094],[117.008,-89.63],[134.773,-85.599],[149.964,-79.007],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.707,-0.283],[9.564,-3.731],[1.953,-1.212],[-3.397,-0.096],[-49.861,1.406],[-5.083,1.281],[-6.291,2.258],[-7.299,3.525],[1.229,0.008],[53.092,-0.118]],"o":[[-9.521,3.814],[-2.188,0.853],[-2.77,1.719],[49.86,1.408],[5.288,-0.149],[6.535,-1.647],[7.715,-2.769],[1.076,-0.519],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-12.916,-53.343],[-19.686,-51.237],[-26.711,-44.785],[122.922,-47.209],[138.586,-49.446],[157.584,-55.946],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[{"i":[[0.707,-0.283],[9.564,-3.731],[1.953,-1.212],[-3.397,-0.096],[-49.861,1.406],[-5.083,1.281],[-6.291,2.258],[-7.299,3.525],[1.229,0.008],[53.092,-0.118]],"o":[[-9.521,3.814],[-2.188,0.853],[-2.77,1.719],[49.86,1.408],[5.288,-0.149],[6.535,-1.647],[7.715,-2.769],[1.076,-0.519],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-12.916,-53.343],[-19.686,-51.237],[-26.711,-44.785],[122.922,-47.209],[138.586,-49.446],[157.584,-55.946],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.289,-0.63],[10.587,-24.925],[0.029,-1.947],[-2.074,-0.06],[-50.642,0.949],[-2.605,1.76],[-1.445,3.288],[-8.597,24.745],[1.229,0.008],[53.092,-0.118]],"o":[[-11.328,24.675],[-0.776,1.826],[-0.027,1.812],[50.625,1.473],[3.293,-0.062],[3.19,-2.155],[10.612,-24.141],[0.357,-1.027],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-16.787,9.609],[-18.533,15.249],[-16.949,20.506],[135.009,19.717],[144.552,17.48],[151.303,8.711],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":18,"s":[{"i":[[0.289,-0.63],[10.587,-24.925],[0.029,-1.947],[-2.074,-0.06],[-50.642,0.949],[-2.605,1.76],[-1.445,3.288],[-8.597,24.745],[1.229,0.008],[53.092,-0.118]],"o":[[-11.328,24.675],[-0.776,1.826],[-0.027,1.812],[50.625,1.473],[3.293,-0.062],[3.19,-2.155],[10.612,-24.141],[0.357,-1.027],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-16.787,9.609],[-18.533,15.249],[-16.949,20.506],[135.009,19.717],[144.552,17.48],[151.303,8.711],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.015,-0.679],[-0.933,-32.194],[-1.771,-2.15],[-2.692,-0.074],[-48.163,1.073],[-1.776,1.712],[-0.093,2.413],[1.011,32.595],[1.229,0.008],[53.092,-0.118]],"o":[[-0.71,32.199],[0.077,2.648],[1.573,1.909],[48.155,1.326],[2.644,-0.059],[1.856,-1.789],[1.258,-32.589],[-0.033,-1.073],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[15.61,31.635],[18.561,39.152],[25.158,43.227],[169.694,43.314],[176.57,39.854],[180.087,33.295],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[{"i":[[0.015,-0.679],[-0.933,-32.194],[-1.771,-2.15],[-2.692,-0.074],[-48.163,1.073],[-1.776,1.712],[-0.093,2.413],[1.011,32.595],[1.229,0.008],[53.092,-0.118]],"o":[[-0.71,32.199],[0.077,2.648],[1.573,1.909],[48.155,1.326],[2.644,-0.059],[1.856,-1.789],[1.258,-32.589],[-0.033,-1.073],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[15.61,31.635],[18.561,39.152],[25.158,43.227],[169.694,43.314],[176.57,39.854],[180.087,33.295],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[-0.367,-0.599],[-12.262,-18.403],[-2.375,-2.331],[-2.692,-0.074],[-48.163,1.073],[-1.429,1.944],[1.167,2.11],[12.725,18.474],[1.229,0.008],[53.092,-0.118]],"o":[[11.502,18.773],[1.797,2.697],[1.79,1.757],[48.155,1.326],[2.644,-0.059],[1.45,-1.972],[-10.733,-19.414],[-0.634,-0.92],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[52.062,-9.636],[57.718,-1.684],[64.315,2.39],[208.851,2.477],[215.727,-0.983],[216.538,-7.976],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":27,"s":[{"i":[[-0.367,-0.599],[-12.262,-18.403],[-2.375,-2.331],[-2.692,-0.074],[-48.163,1.073],[-1.429,1.944],[1.167,2.11],[12.725,18.474],[1.229,0.008],[53.092,-0.118]],"o":[[11.502,18.773],[1.797,2.697],[1.79,1.757],[48.155,1.326],[2.644,-0.059],[1.45,-1.972],[-10.733,-19.414],[-0.634,-0.92],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[52.062,-9.636],[57.718,-1.684],[64.315,2.39],[208.851,2.477],[215.727,-0.983],[216.538,-7.976],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[-0.773,-0.069],[-19.217,-1.218],[-4.041,-0.075],[-3.068,0.066],[-48.612,1.57],[-0.169,0.371],[0.533,-0.005],[20.288,-0.298],[1.229,0.008],[53.092,-0.118]],"o":[[19.169,1.705],[4.031,0.255],[3.068,0.057],[48.631,-1.041],[0.457,-0.015],[0.197,-0.433],[-20.29,0.171],[-1.229,0.018],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[73.139,-60.703],[85.264,-60.561],[94.465,-60.309],[240.345,-63.881],[240.721,-65.033],[241.436,-66.283],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":29,"s":[{"i":[[-0.773,-0.069],[-19.217,-1.218],[-4.041,-0.075],[-3.068,0.066],[-48.612,1.57],[-0.169,0.371],[0.533,-0.005],[20.288,-0.298],[1.229,0.008],[53.092,-0.118]],"o":[[19.169,1.705],[4.031,0.255],[3.068,0.057],[48.631,-1.041],[0.457,-0.015],[0.197,-0.433],[-20.29,0.171],[-1.229,0.018],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[73.139,-60.703],[85.264,-60.561],[94.465,-60.309],[240.345,-63.881],[240.721,-65.033],[241.436,-66.283],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[-0.777,-0.032],[-19.66,-0.5],[-4.041,-0.075],[-3.069,0.014],[-48.162,0.703],[-0.169,0.371],[0.533,-0.005],[20.288,-0.298],[1.229,0.008],[53.092,-0.118]],"o":[[19.646,0.801],[4.04,0.103],[3.068,0.057],[48.168,-0.223],[0.457,-0.007],[0.197,-0.433],[-20.29,0.171],[-1.229,0.018],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[74.516,-63.312],[86.641,-63.171],[95.842,-62.919],[240.345,-63.881],[240.721,-65.033],[241.436,-66.283],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"t":30}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.903937006932,0.576676013423,0.093966001623,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"bottom_right","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"t":15}],"ix":11},"r":{"a":0,"k":-210.358,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[380.355,161.774,0],"e":[380.355,381.774,0],"to":[0,36.6666679382324,0],"ti":[0,-30,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[380.355,381.774,0],"e":[380.355,341.774,0],"to":[0,30,0],"ti":[0,6.66666650772095,0]},{"t":19}],"ix":2},"a":{"a":0,"k":[97.496,-65.355,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":15,"s":[98.088,89.612,100],"e":[98.088,-94.196,100]},{"t":29}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[{"i":[[-0.109,-0.76],[-5.613,-30.321],[-1.711,-2.078],[-2.584,-0.071],[-48.167,1.073],[-1.847,1.781],[0.28,2.465],[6.015,30.617],[1.22,0.008],[53.092,-0.118]],"o":[[4.359,30.527],[0.49,2.647],[1.643,1.995],[48.16,1.326],[2.565,-0.057],[1.786,-1.722],[-3.518,-31.003],[-0.235,-1.197],[-53.09,-0.359],[-0.768,0.002]],"v":[[15.543,-64.979],[30.873,26.25],[33.824,33.768],[40.421,37.842],[184.957,37.929],[191.833,34.469],[195.35,27.91],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.518,-0.567],[23.77,-30.027],[-1.711,-2.078],[-2.584,-0.071],[-48.167,1.073],[-1.847,1.781],[-1.623,1.876],[-24.922,29.639],[1.22,0.008],[53.092,-0.118]],"o":[[-25.845,28.261],[-1.671,2.111],[1.643,1.995],[48.16,1.326],[2.565,-0.057],[1.786,-1.722],[25.334,-29.288],[0.785,-0.934],[-53.09,-0.359],[-0.768,0.002]],"v":[[15.543,-64.979],[-61.106,20.603],[-58.155,28.121],[-51.559,32.196],[92.977,32.283],[99.854,28.823],[103.37,22.263],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":19,"s":[{"i":[[0.518,-0.567],[23.77,-30.027],[-1.711,-2.078],[-2.584,-0.071],[-48.167,1.073],[-1.847,1.781],[-1.623,1.876],[-24.922,29.639],[1.22,0.008],[53.092,-0.118]],"o":[[-25.845,28.261],[-1.671,2.111],[1.643,1.995],[48.16,1.326],[2.565,-0.057],[1.786,-1.722],[25.334,-29.288],[0.785,-0.934],[-53.09,-0.359],[-0.768,0.002]],"v":[[15.543,-64.979],[-61.106,20.603],[-58.155,28.121],[-51.559,32.196],[92.977,32.283],[99.854,28.823],[103.37,22.263],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.277,-0.716],[14.523,-44.035],[-1.711,-2.078],[-2.584,-0.071],[-48.167,1.073],[-1.847,1.781],[-0.882,2.319],[-15.196,44.277],[1.22,0.008],[53.092,-0.118]],"o":[[-16.715,43.25],[-0.843,2.556],[1.643,1.995],[48.16,1.326],[2.565,-0.057],[1.786,-1.722],[16.636,-43.756],[0.396,-1.154],[-53.09,-0.359],[-0.768,0.002]],"v":[[15.543,-64.979],[-32.893,65.419],[-29.942,72.936],[-23.345,77.011],[121.191,77.098],[128.067,73.638],[131.584,67.079],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":25,"s":[{"i":[[0.277,-0.716],[14.523,-44.035],[-1.711,-2.078],[-2.584,-0.071],[-48.167,1.073],[-1.847,1.781],[-0.882,2.319],[-15.196,44.277],[1.22,0.008],[53.092,-0.118]],"o":[[-16.715,43.25],[-0.843,2.556],[1.643,1.995],[48.16,1.326],[2.565,-0.057],[1.786,-1.722],[16.636,-43.756],[0.396,-1.154],[-53.09,-0.359],[-0.768,0.002]],"v":[[15.543,-64.979],[-32.893,65.419],[-29.942,72.936],[-23.345,77.011],[121.191,77.098],[128.067,73.638],[131.584,67.079],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.037,-0.767],[-0.173,-31.248],[-1.711,-2.078],[-2.584,-0.071],[-48.167,1.073],[-1.847,1.781],[-0.158,2.476],[0.199,31.655],[1.22,0.008],[53.092,-0.118]],"o":[[-1.522,31.211],[0.015,2.692],[1.643,1.995],[48.16,1.326],[2.565,-0.057],[1.786,-1.722],[2.019,-31.591],[-0.008,-1.22],[-53.09,-0.359],[-0.768,0.002]],"v":[[15.543,-64.979],[13.154,28.735],[16.104,36.252],[22.701,40.327],[167.237,40.414],[174.113,36.954],[177.63,30.395],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"t":29}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.90588241278,0.576470588235,0.094117654539,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-0.107],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"box","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"t":15}],"ix":11},"r":{"a":0,"k":-0.138,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[310,220,0],"e":[310,440,0],"to":[0,36.6666679382324,0],"ti":[0,-30,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[310,440,0],"e":[310,400,0],"to":[0,30,0],"ti":[0,6.66666650772095,0]},{"t":19}],"ix":2},"a":{"a":0,"k":[114.5,111.5,0],"ix":1},"s":{"a":0,"k":[210,210,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.676,1.529],[0,0],[0,1.437],[0,0],[-2.676,-1.53],[0,0],[0,-1.436],[0,0]],"o":[[0,0],[-1.249,-0.714],[0,0],[0,-3.077],[0,0],[1.249,0.714],[0,0],[0,3.078]],"v":[[7.814,14.89],[-11.803,3.682],[-13.822,0.205],[-13.822,-11.413],[-7.814,-14.889],[11.802,-3.68],[13.822,-0.204],[13.822,11.413]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.995999983245,0.995999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[67.059,135.614],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.16,1.318],[0,0],[-0.504,0.292],[-4.258,2.805],[0.212,0.123],[12.284,6.925]],"o":[[0,0],[0.456,-0.01],[17.4,-10.058],[-0.172,-0.191],[-6.276,-3.627],[-2.13,-1.2]],"v":[[-33.579,-39.177],[-33.4,37.332],[-32.002,36.86],[33.4,-1.005],[32.879,-1.57],[-26.565,-35.369]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.769000004787,0.681999954523,0.607999973671,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[147.882,65.668],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.213,0.123],[6.288,3.607],[12.284,6.924],[0.894,0.379],[2.252,-1.314],[1.819,-1.791],[-17.273,-10.007],[-0.95,0.549],[-17.4,10.06],[-4.258,2.805]],"o":[[-6.275,-3.627],[-5.131,-2.943],[-2.494,-1.405],[-1.22,0.528],[-14.667,8.562],[4.538,2.653],[1.046,0.606],[17.401,-10.059],[4.408,-2.549],[-0.171,-0.191]],"v":[[66.278,-1.562],[47.435,-12.418],[6.835,-35.361],[-0.379,-39.182],[-8.488,-35.245],[-66.799,-0.937],[-1.311,36.948],[1.397,36.868],[53.62,6.732],[66.799,-0.997]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.917999985639,0.851000019148,0.764999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[114.462,65.66],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.005,-24.322],[1.903,1.096],[2.616,1.472],[-0.03,5.005],[0.01,9.844]],"o":[[0,0],[-2.239,0.118],[-15.611,-8.992],[-4.347,-2.446],[0.059,-9.842],[4.384,2.492]],"v":[[33.613,-38.028],[33.609,37.91],[27.456,36.222],[-27.186,4.76],[-33.583,-6.359],[-33.594,-76.364]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.8,0.313999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[80.871,141.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":4,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.147,2.385],[-0.029,-4.102],[4.338,-2.47],[10.47,-6.046],[2.548,0.242]],"o":[[0,0],[0.031,5.777],[0.036,4.968],[-7.538,4.292],[-2.117,1.223],[-0.005,-24.322]],"v":[[-33.625,-38.09],[33.024,-76.375],[33.598,-6.383],[27.179,4.728],[-26.801,35.827],[-33.629,37.848]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.736999990426,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[148.109,141.092],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":4,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[114.5,111.5],"ix":2},"a":{"a":0,"k":[114.5,111.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"box","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"bottom_right 4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"t":15}],"ix":11},"r":{"a":0,"k":-150.704,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[379.843,80.643,0],"e":[379.843,300.643,0],"to":[0,36.6666679382324,0],"ti":[0,-30,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[379.843,300.643,0],"e":[379.843,260.643,0],"to":[0,30,0],"ti":[0,6.66666650772095,0]},{"t":19}],"ix":2},"a":{"a":0,"k":[97.496,-65.355,0],"ix":1},"s":{"a":0,"k":[97.228,95.215,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[{"i":[[-0.643,-0.382],[-18.864,-10.591],[-1.644,-0.89],[-2.802,-0.07],[-48.163,1.073],[-0.716,2.224],[2.199,1.39],[17.518,9.202],[1.065,0.003],[53.092,-0.118]],"o":[[18.548,11.008],[1.627,0.914],[2.383,1.289],[48.159,1.198],[2.644,-0.059],[0.735,-2.282],[-16.56,-10.467],[-0.912,-0.479],[-53.092,-0.136],[-0.777,0.002]],"v":[[15.543,-64.979],[72.21,-33.309],[77.014,-30.466],[84.284,-26.777],[228.82,-26.69],[235.696,-30.15],[231.972,-36.474],[180.221,-65.213],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.015,-0.679],[-0.933,-32.194],[-1.771,-2.15],[-2.692,-0.074],[-48.163,1.073],[-1.776,1.712],[-0.093,2.413],[1.011,32.595],[1.229,0.008],[53.092,-0.118]],"o":[[-0.71,32.199],[0.077,2.648],[1.573,1.909],[48.155,1.326],[2.644,-0.059],[1.856,-1.789],[1.258,-32.589],[-0.033,-1.073],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[15.61,31.635],[18.561,39.152],[25.158,43.227],[169.694,43.314],[176.57,39.854],[180.087,33.295],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":21,"s":[{"i":[[0.015,-0.679],[-0.933,-32.194],[-1.771,-2.15],[-2.692,-0.074],[-48.163,1.073],[-1.776,1.712],[-0.093,2.413],[1.011,32.595],[1.229,0.008],[53.092,-0.118]],"o":[[-0.71,32.199],[0.077,2.648],[1.573,1.909],[48.155,1.326],[2.644,-0.059],[1.856,-1.789],[1.258,-32.589],[-0.033,-1.073],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[15.61,31.635],[18.561,39.152],[25.158,43.227],[169.694,43.314],[176.57,39.854],[180.087,33.295],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.355,-0.604],[9.063,-18.116],[-0.993,-3.498],[-2.692,-0.088],[-49.222,0.786],[-1.832,1.666],[-1.275,2.313],[-9.417,19.905],[1.229,0.008],[53.092,-0.118]],"o":[[-10.346,17.584],[-1.652,3.302],[0.648,2.283],[49.196,1.615],[2.645,-0.042],[2.036,-1.851],[10.697,-19.406],[0.469,-0.992],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-14.038,-11.592],[-16.469,-0.991],[-9.872,3.084],[137.815,4.075],[144.691,0.615],[149.006,-6.101],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":26,"s":[{"i":[[0.355,-0.604],[9.063,-18.116],[-0.993,-3.498],[-2.692,-0.088],[-49.222,0.786],[-1.832,1.666],[-1.275,2.313],[-9.417,19.905],[1.229,0.008],[53.092,-0.118]],"o":[[-10.346,17.584],[-1.652,3.302],[0.648,2.283],[49.196,1.615],[2.645,-0.042],[2.036,-1.851],[10.697,-19.406],[0.469,-0.992],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-14.038,-11.592],[-16.469,-0.991],[-9.872,3.084],[137.815,4.075],[144.691,0.615],[149.006,-6.101],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.761,0.139],[18.699,4.066],[1.768,2.165],[-1.916,-0.085],[-46.459,-2.274],[-2.914,0.176],[-3.445,-0.368],[-21.965,-2.982],[1.229,0.008],[53.092,-0.118]],"o":[[-18.859,-3.457],[-2.954,-0.642],[-1.114,-1.364],[46.471,2.069],[2.917,0.143],[3.463,-0.21],[22.064,2.356],[1.215,0.165],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-40.778,-76.356],[-49.358,-79.092],[-43.68,-79.91],[95.666,-72.634],[104.429,-72.66],[114.762,-73.791],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"t":29}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.976470648074,0.623529411765,0.105882360421,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[99.101,-65.381],"ix":2},"a":{"a":0,"k":[99.101,-65.381],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"shadow","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":15,"s":[100],"e":[63]},{"t":21}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[287,509,0],"e":[287,449,0],"to":[0,-10,0],"ti":[0,4.66666650772095,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[287,449,0],"e":[287,481,0],"to":[0,-4.66666650772095,0],"ti":[0,-5.33333349227905,0]},{"t":21}],"ix":2},"a":{"a":0,"k":[119.5,119.5,0],"ix":1},"s":{"a":0,"k":[397.854,250.518,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[81.29,81.29],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"g":{"p":3,"k":{"a":0,"k":[0,0,0,0,0.95,0,0,0,1,0,0,0,0.001,0.39,0.524,0.195,0.999,0],"ix":9}},"s":{"a":0,"k":[0.074,0.267],"ix":5},"e":{"a":0,"k":[-25.662,26.134],"ix":6},"t":2,"h":{"a":0,"k":0,"ix":7},"a":{"a":0,"k":0,"ix":8},"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[125.672,140.06],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[124.899,112.74],"ix":3},"r":{"a":0,"k":-47.351,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":123,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/ui/assets/animation/loading.json b/ui/assets/animation/loading.json new file mode 100644 index 0000000..fa9617a --- /dev/null +++ b/ui/assets/animation/loading.json @@ -0,0 +1 @@ +{"v":"4.8.0","meta":{"g":"LottieFiles AE 1.0.0","a":"","k":"","d":"","tc":""},"fr":29.9700012207031,"ip":0,"op":31.0000012626559,"w":500,"h":500,"nm":"Loading ","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":5,"ty":4,"nm":"Rectangle_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":45,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[250,157.375,0],"to":[15.448,15.438,0],"ti":[0.031,-0.052,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[342.688,250,0],"to":[-0.059,0.098,0],"ti":[15.448,-15.427,0]},{"t":30.0000012219251,"s":[250,342.563,0]}],"ix":2},"a":{"a":0,"k":[-125,-107,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[57,-57],[57,57],[-57,57],[-57,-57]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.38823529411764707,0.6941176470588235,0.9372549019607843,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-125,-107],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90.0000036657751,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Rectangle_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":45,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[342.688,250,0],"to":[0.052,-0.073,0],"ti":[-0.01,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[250,342.563,0],"to":[0.104,0,0],"ti":[0.198,-0.073,0]},{"t":30.0000012219251,"s":[157.313,250,0]}],"ix":2},"a":{"a":0,"k":[-125,-107,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[57,-57],[57,57],[-57,57],[-57,-57]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.3843137254901961,0.47843137254901963,0.8784313725490196,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-125,-107],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90.0000036657751,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Rectangle_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":45,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[250,342.563,0],"to":[0.052,0.198,0],"ti":[0.04,-0.012,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[157.313,250,0],"to":[-0.492,0.145,0],"ti":[0.052,-0.563,0]},{"t":30.0000012219251,"s":[250,157.375,0]}],"ix":2},"a":{"a":0,"k":[-125,-107,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[57,-57],[57,57],[-57,57],[-57,-57]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.38823529411764707,0.6941176470588235,0.9372549019607843,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-125,-107],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90.0000036657751,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Rectangle_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":45,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[157.313,250,0],"to":[15.448,-15.438,0],"ti":[-0.079,0.525,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[250,157.375,0],"to":[0.019,-0.125,0],"ti":[-15.448,-15.438,0]},{"t":30.0000012219251,"s":[342.688,250,0]}],"ix":2},"a":{"a":0,"k":[-125,-107,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[57,-57],[57,57],[-57,57],[-57,-57]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.3843137254901961,0.47843137254901963,0.8784313725490196,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-125,-107],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90.0000036657751,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/ui/components/Layout.tsx b/ui/components/Layout.tsx index cbd26ce..31fea77 100644 --- a/ui/components/Layout.tsx +++ b/ui/components/Layout.tsx @@ -14,6 +14,8 @@ import { useRouter } from "next/router"; import Link from "next/link"; import { AuthContext } from "@/context/AuthContext"; import AuthButton from "./AuthButton"; +import LottieAnimation from "./Lottie"; +import loadingAnimation from "../assets/animation/loading.json"; // import { useSigner } from "wagmi"; const { Title } = Typography; @@ -24,7 +26,8 @@ interface IProp { } const CustomLayout = ({ children }: IProp) => { - const { authState, signIn, signOut, db } = useContext(AuthContext); + const { authState, signIn, signOut, db, isSignedInMetamask } = + useContext(AuthContext); const [currLevel, setCurrLevel] = React.useState(undefined); const [loading, setLoading] = React.useState(false); @@ -148,7 +151,7 @@ const CustomLayout = ({ children }: IProp) => { // return data?.level; console.log("Data: ", data); setCurrLevel(data.level); - setLoading(false); + setTimeout(() => setLoading(false), 1000); }; getNFTFromID(); @@ -168,7 +171,7 @@ const CustomLayout = ({ children }: IProp) => { }} > - + <Title style={{ color: "white", marginTop: 30 }} level={2}> DTender @@ -176,31 +179,41 @@ const CustomLayout = ({ children }: IProp) => { style={{ display: "flex", alignItems: "center", - width: "30%", + width: "20%", justifyContent: "space-evenly", }} > -
- -
-
-

- {currLevel! + 1} -

-
+ {isSignedInMetamask && ( + <> +
+ +
+
+

+ Level: {currLevel! + 1} +

+
+ + )} @@ -235,7 +248,7 @@ const CustomLayout = ({ children }: IProp) => { ) : ( -

LOADING.....

+ ); }; diff --git a/ui/context/AuthContext.tsx b/ui/context/AuthContext.tsx index 9a4d8e6..86656dd 100644 --- a/ui/context/AuthContext.tsx +++ b/ui/context/AuthContext.tsx @@ -3,9 +3,8 @@ import { Polybase } from "@polybase/client"; import { ethPersonalSign } from "@polybase/eth"; import { Auth, AuthState } from "@polybase/auth"; import { IAuthContextProps, AuthProviderProps } from "@/types/auth.types"; -import { configureChains, useAccount, useConnect } from "wagmi"; +import { configureChains } from "wagmi"; import { polygonMumbai } from "wagmi/chains"; -import { MetaMaskConnector } from "wagmi/connectors/metaMask"; import { publicProvider } from "wagmi/providers/public"; import DTenderContract from "@/contracts/DTender.json"; import { Contract, ethers } from "ethers"; @@ -34,7 +33,7 @@ export const AuthContext = React.createContext({ setOptionToTrue: () => {}, signer: undefined, contract: undefined, - db: undefined + db: undefined, }); const { chains, provider } = configureChains( @@ -56,21 +55,23 @@ export const AuthProvider = ({ children }: AuthProviderProps) => { if (typeof window !== "undefined") { localStorage.setItem("walletAddress", JSON.stringify(authState?.userId)); } - setIsSignedInMetamask(true); // @ts-ignore const provider = new ethers.providers.Web3Provider(window?.ethereum, "any"); setProvider(provider); - await provider.send("eth_requestAccounts", []); - const signer = provider.getSigner(); - console.log("signer: ", signer); - setSigner(signer); - setContract( - new ethers.Contract( - "0x5c876A33570B1202Caf2892ce3D6F53c6c40bEC0", - DTenderContract.abi, - signer - ) - ); + if (authState?.userId) { + setIsSignedInMetamask(true); + await provider.send("eth_requestAccounts", []); + const signer = provider.getSigner(); + console.log("signer: ", signer); + setSigner(signer); + setContract( + new ethers.Contract( + "0x5c876A33570B1202Caf2892ce3D6F53c6c40bEC0", + DTenderContract.abi, + signer + ) + ); + } }; const signOut = async () => { @@ -92,9 +93,9 @@ export const AuthProvider = ({ children }: AuthProviderProps) => { }; useEffect(() => { + signIn(); const isCompany = localStorage.getItem("isCompany"); if (isCompany) setIsCompany(JSON.parse(isCompany)); - signIn(); }, []); useMemo(() => { @@ -118,7 +119,7 @@ export const AuthProvider = ({ children }: AuthProviderProps) => { isSignedInMetamask, signer, contract, - db + db, }} > {children} diff --git a/ui/pages/[tenderId]/create-bid.tsx b/ui/pages/[tenderId]/create-bid.tsx deleted file mode 100644 index 76dd3f4..0000000 --- a/ui/pages/[tenderId]/create-bid.tsx +++ /dev/null @@ -1,92 +0,0 @@ -import React, { useContext, useEffect } from "react"; -import { - Button, - DatePicker, - Form, - Input, - InputNumber, - Modal, - Select, - Typography, - Upload, -} from "antd"; -import LottieAnimation from "@/components/Lottie"; -import TenderLottie from "@/assets/animation/main__tender.json"; -import { QRCode } from "react-qr-svg"; -import QRJson from "../../qrcodes/qrcode.json"; -import { AuthContext } from "@/context/AuthContext"; -import { useSigner } from "wagmi"; -import { Signer } from "@wagmi/core"; -import { Contract, ethers } from "ethers"; -import DTenderContract from "@/contracts/DTender.json"; -import { PlusOutlined } from "@ant-design/icons"; - -const { Title } = Typography; - -export default function CreateBid() { - const { data: signer } = useSigner(); - const [contract, setContract] = React.useState(); - const [form] = Form.useForm(); - const [selectedTender, setSelectedTender] = React.useState(); - - const onFinish = (values: any) => { - console.log("VALUES: ", values); - }; - - useEffect(() => { - console.log("SIGNER: ", signer); - if (signer) { - const contract = new ethers.Contract( - "0x5FbDB2315678afecb367f032d93F642f64180aa3", - DTenderContract.abi, - signer - ); - setContract(contract); - const idk = async () => { - contract.getTenders().then((res: any) => { - console.log("RES: ", res); - }); - }; - idk(); - } - }, [signer]); - - return ( -
- - - Create Bid for {selectedTender?.name} - - -
- { - if (value < 0) - return Promise.reject("Please input a positive number!"); - return Promise.resolve(); - }, - }, - ]} - > - - -
-
-
- ); -} diff --git a/ui/pages/_app.tsx b/ui/pages/_app.tsx index dd5c2c4..d808e23 100644 --- a/ui/pages/_app.tsx +++ b/ui/pages/_app.tsx @@ -1,23 +1,15 @@ "use client"; import "antd/dist/reset.css"; import "@/styles/globals.css"; -import React, { useContext, useEffect, useState } from "react"; +import React, { useEffect } from "react"; import type { AppProps } from "next/app"; -import { AuthContext, AuthProvider } from "@/context/AuthContext"; +import { AuthProvider } from "@/context/AuthContext"; import dynamic from "next/dynamic"; import { WagmiConfig, configureChains, createClient } from "wagmi"; import { polygonMumbai } from "wagmi/chains"; import { publicProvider } from "wagmi/providers/public"; -import { useContractEvent } from "wagmi"; import { MetaMaskConnector } from "wagmi/connectors/metaMask"; -import DTenderJSON from "@/contracts/DTender.json"; import Moralis from "moralis"; -import { Modal } from "antd"; -// import { Polybase } from "@polybase/client" - -// const db = new Polybase({ -// defaultNamespace: "pk/0x08965f78c6a549905b66896f5a44b3a3ac27cdd9759057d534a0b9a5bcdf7cb9aa852288826e01a7034716a2f98252500a8e480a40a2be9b6a7cc1df2f4fd9f1/DTender", -// }); // DISABLED THE SSR FOR THE LAYOUT TO REMOVE THE HYDRATION ERROR const CustomLayout = dynamic( @@ -25,8 +17,6 @@ const CustomLayout = dynamic( { ssr: false } ); export default function App({ Component, pageProps }: AppProps) { - const [verificationEvent, setVerificationEvent] = useState(undefined); - const { db } = useContext(AuthContext); const { chains, provider } = configureChains( [polygonMumbai], [publicProvider()] @@ -38,50 +28,18 @@ export default function App({ Component, pageProps }: AppProps) { provider, }); - useContractEvent({ - address: `0x5c876A33570B1202Caf2892ce3D6F53c6c40bEC0`, - abi: DTenderJSON.abi, - eventName: "ProofSubmitted", - listener: (event) => { - console.log("EVENT: ", event); - setVerificationEvent(event); - }, - }); - useEffect(() => { const startMoralis = async () => { await Moralis.start({ apiKey: process.env.NEXT_PUBLIC_MORALIS_API_KEY, }); }; - console.log("Moralis Called"); if (!Moralis.Core.isStarted) startMoralis(); }, []); - console.log("wagmiClient: ", wagmiClient); - - const onVerificationOk = async () => { - setVerificationEvent(undefined); - // polybase addition - await db! - .collection("VerifiedCompany") - .create([ - localStorage.getItem("walletAddress") as string, - localStorage.getItem("walletAddress") as string, - ]); - }; return ( <> - setVerificationEvent(undefined)} - > - You have been successfully verified using the polygon ID zkp proof. - Hell yeah!!!! - diff --git a/ui/pages/index.tsx b/ui/pages/index.tsx index 2ebe0c8..757648a 100644 --- a/ui/pages/index.tsx +++ b/ui/pages/index.tsx @@ -1,10 +1,20 @@ import React, { useContext } from "react"; -import { Button, InputNumber, Modal, Select, Typography } from "antd"; +import { + Button, + InputNumber, + Modal, + notification, + Select, + Typography, +} from "antd"; import LottieAnimation from "@/components/Lottie"; import TenderLottie from "@/assets/animation/main__tender.json"; import { QRCode } from "react-qr-svg"; import QRJson from "../qrcodes/qrcode.json"; import { AuthContext } from "@/context/AuthContext"; +import { useContractEvent } from "wagmi"; +import DTenderJSON from "@/contracts/DTender.json"; + const { Title } = Typography; export default function Home() { @@ -22,6 +32,49 @@ export default function Home() { const [isCompany, setIsCompany] = React.useState(null); const [showQR, setShowQR] = React.useState(false); const [isVisible, setIsVisible] = React.useState(true); + const { setCompany, setOptionToTrue } = useContext(AuthContext); + + const completeCompanyVerification = () => { + onVerificationOk(); + notification.success({ + message: "Verification Successful", + description: + "You have been successfully verified using the polygon ID zkp proof. Hell yeah!!!!", + }); + setCompany(true); + setOptionToTrue(); + setShowQR(false); + setIsVisible(false); + }; + + const completeBidderVerification = () => { + notification.success({ + message: "Successful Login", + description: "You are ready to start bidding on tenders. Hell yeah!!!!", + }); + setCompany(false); + setOptionToTrue(); + setIsVisible(false); + }; + + const onVerificationOk = async () => { + // polybase addition + await db! + .collection("VerifiedCompany") + .create([ + localStorage.getItem("walletAddress") as string, + localStorage.getItem("walletAddress") as string, + ]); + }; + + useContractEvent({ + address: `0x5c876A33570B1202Caf2892ce3D6F53c6c40bEC0`, + abi: DTenderJSON.abi, + eventName: "ProofSubmitted", + listener: (event) => { + completeCompanyVerification(); + }, + }); return (
@@ -68,7 +121,9 @@ export default function Home() { } else { setShowQR(true); } - } else setIsVisible(false); + } else { + completeBidderVerification(); + } }} > {!showQR && ( diff --git a/ui/pages/my-tenders.tsx b/ui/pages/my-tenders.tsx index af4c061..9bb448a 100644 --- a/ui/pages/my-tenders.tsx +++ b/ui/pages/my-tenders.tsx @@ -1,3 +1,4 @@ +import LottieAnimation from "@/components/Lottie"; import { AuthContext } from "@/context/AuthContext"; import { Button, @@ -12,6 +13,8 @@ import { import Head from "next/head"; import { useRouter } from "next/router"; import { useContext, useEffect, useState } from "react"; +import loadingAnimation from "@/assets/animation/loading.json"; +import emptyAnimation from "@/assets/animation/empty.json"; import styles from "../styles/MyTenders.module.css"; interface Tender { @@ -138,6 +141,7 @@ const TenderCard = ({ } className={styles.bidButton} block + disabled={tender.isAccepted} > {signerAddress == tender.owner.toLowerCase() ? "View Bids" @@ -147,7 +151,13 @@ const TenderCard = ({ ); }; -const BidCard = ({ bid }: { bid: Bids }) => { +const BidCard = ({ + bid, + acceptBid, +}: { + bid: Bids; + acceptBid: (bidId: bigint, bidAmount: bigint) => void; +}) => { return (
@@ -174,7 +184,12 @@ const BidCard = ({ bid }: { bid: Bids }) => { {bid.createdAt.toDateString()}
-
@@ -183,16 +198,18 @@ const BidCard = ({ bid }: { bid: Bids }) => { export default function MyTenders() { const [tenders, setTenders] = useState(); - const { contract, signer } = useContext(AuthContext); + const { contract, isSignedInMetamask, selectedOption, db } = + useContext(AuthContext); const [showModal, setShowModal] = useState(false); const [selectedTender, setSelectedTender] = useState(); - const [getBids, setGetBids] = useState([]); - const { query } = useRouter(); const [isMine, setIsMine] = useState(false); - const [form] = Form.useForm(); const [viewBidsModal, setViewBidsModal] = useState(false); const [bids, setBids] = useState([]); + const { query } = useRouter(); + const [form] = Form.useForm(); + const router = useRouter(); + const onFinish = async (values: any) => { try { await contract?.createBid(selectedTender?.tenderId, values.bidAmount); @@ -210,6 +227,33 @@ export default function MyTenders() { } }; + const acceptBid = async (bidId: bigint, bidAmount: bigint) => { + try { + if (selectedTender && bidId) { + await contract?.acceptBid( + BigInt.asUintN(256, selectedTender?.tenderId), + BigInt.asUintN(256, bidId), + { value: BigInt.asUintN(256, bidAmount) } + ); + notification.success({ + message: "Bid Accepted", + description: "Bid has been accepted successfully", + }); + // update NFT + await db! + .collection("DTenderDynamicNFTMetadata") + .record("2") + .call("upgradeLevel", []); + console.log("done"); + } + } catch (e) { + notification.error({ + message: "Bid Acceptance Failed", + description: "Bid could not be accepted", + }); + } + }; + const closeBidsModal = () => { setViewBidsModal(false); setBids([]); @@ -245,7 +289,7 @@ export default function MyTenders() { setTenders(tenderList); } }; - getTenders(); + setTimeout(() => getTenders(), 1000); }, [contract]); useEffect(() => { @@ -272,6 +316,17 @@ export default function MyTenders() { getBids(); }, [contract, viewBidsModal]); + useEffect(() => { + if (!isSignedInMetamask || !selectedOption) { + notification.destroy(); + notification.error({ + message: "Not Signed In", + description: "Please sign in to continue", + }); + router.push("/"); + } + }, [isSignedInMetamask, selectedOption]); + return (
@@ -327,11 +382,15 @@ export default function MyTenders() { {bids.length > 0 ? ( <> {bids.map((bid, index) => ( - + ))} ) : ( - No bids yet + )}
@@ -352,9 +411,25 @@ export default function MyTenders() { ))}
) : ( - Loading... + )} + ); } diff --git a/ui/pages/propose-tender.tsx b/ui/pages/propose-tender.tsx index fec7e16..725afff 100644 --- a/ui/pages/propose-tender.tsx +++ b/ui/pages/propose-tender.tsx @@ -1,10 +1,11 @@ -import React, { useContext, useState } from "react"; +import React, { useContext, useEffect, useState } from "react"; import { Button, DatePicker, Form, Input, InputNumber, + notification, Typography, Upload, } from "antd"; @@ -14,14 +15,17 @@ import DTenderContract from "@/contracts/DTender.json"; import { PlusOutlined } from "@ant-design/icons"; import { getSolidityDate } from "@/utils/solidity"; import Moralis from "moralis"; +import { useRouter } from "next/router"; const { Title } = Typography; export default function ProposeInvestment() { const [form] = Form.useForm(); - const { contract } = useContext(AuthContext); + const { contract, isSignedInMetamask, isCompany } = useContext(AuthContext); const [loading, setLoading] = useState(false); + const router = useRouter(); + const onFinish = async (values: any) => { setLoading(true); console.log("VALUES: ", values); @@ -50,23 +54,17 @@ export default function ProposeInvestment() { setLoading(false); }; - // useEffect(() => { - // console.log("SIGNER: ", signer); - // if (signer) { - // const contract = new ethers.Contract( - // "0x5c876A33570B1202Caf2892ce3D6F53c6c40bEC0", - // DTenderContract.abi, - // signer - // ); - // setContract(contract); - // const idk = async () => { - // contract.getTenders().then((res: any) => { - // console.log("RES: ", res); - // }); - // }; - // idk(); - // } - // }, [signer]); + useEffect(() => { + if (!isSignedInMetamask || !isCompany) { + notification.destroy(); + notification.error({ + message: "Not a Company", + description: "Only companies can propose tenders.", + }); + router.push("/"); + return; + } + }, []); return (
diff --git a/ui/styles/MyTenders.module.css b/ui/styles/MyTenders.module.css index c2fac63..1900848 100644 --- a/ui/styles/MyTenders.module.css +++ b/ui/styles/MyTenders.module.css @@ -1,5 +1,4 @@ .tenderCard { - /* width: 60%; */ margin: auto; margin-bottom: 2rem; display: flex; @@ -92,3 +91,14 @@ .bidDisplay { font-size: 10px; } + +.bidCard { + width: 100%; + margin-bottom: 10px; +} + +.bidCard:hover { + box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.2); + transition: all 0.1s ease-in-out; + transform: scale(1.01); +}