├── .gitignore ├── .prettierignore ├── Anchor.toml ├── Cargo.lock ├── Cargo.toml ├── migrations └── deploy.ts ├── package.json ├── programs └── anchor-escrow │ ├── Cargo.toml │ ├── Xargo.toml │ └── src │ ├── contexts │ ├── make.rs │ ├── mod.rs │ ├── refund.rs │ └── take.rs │ ├── lib.rs │ └── state.rs ├── readme.MD ├── tests └── anchor-escrow.ts ├── tsconfig.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | .anchor 3 | .DS_Store 4 | target 5 | **/*.rs.bk 6 | node_modules 7 | test-ledger 8 | .yarn 9 | Cargo.lock -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | 2 | .anchor 3 | .DS_Store 4 | target 5 | node_modules 6 | dist 7 | build 8 | test-ledger 9 | -------------------------------------------------------------------------------- /Anchor.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | 3 | [features] 4 | resolution = true 5 | skip-lint = false 6 | 7 | [programs.localnet] 8 | anchor_escrow = "6BLPdL9narQPFQsqS7AXuRBRS4VoyKmHHzdwkgnLaAps" 9 | 10 | [registry] 11 | url = "https://api.apr.dev" 12 | 13 | [provider] 14 | cluster = "Localnet" 15 | wallet = "~/.config/solana/id.json" 16 | 17 | [scripts] 18 | test = "yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts" -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "aead" 7 | version = "0.4.3" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" 10 | dependencies = [ 11 | "generic-array", 12 | ] 13 | 14 | [[package]] 15 | name = "aes" 16 | version = "0.7.5" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" 19 | dependencies = [ 20 | "cfg-if", 21 | "cipher", 22 | "cpufeatures", 23 | "opaque-debug", 24 | ] 25 | 26 | [[package]] 27 | name = "aes-gcm-siv" 28 | version = "0.10.3" 29 | source = "registry+https://github.com/rust-lang/crates.io-index" 30 | checksum = "589c637f0e68c877bbd59a4599bbe849cac8e5f3e4b5a3ebae8f528cd218dcdc" 31 | dependencies = [ 32 | "aead", 33 | "aes", 34 | "cipher", 35 | "ctr", 36 | "polyval", 37 | "subtle", 38 | "zeroize", 39 | ] 40 | 41 | [[package]] 42 | name = "ahash" 43 | version = "0.7.8" 44 | source = "registry+https://github.com/rust-lang/crates.io-index" 45 | checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" 46 | dependencies = [ 47 | "getrandom 0.2.15", 48 | "once_cell", 49 | "version_check", 50 | ] 51 | 52 | [[package]] 53 | name = "ahash" 54 | version = "0.8.11" 55 | source = "registry+https://github.com/rust-lang/crates.io-index" 56 | checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" 57 | dependencies = [ 58 | "cfg-if", 59 | "getrandom 0.2.15", 60 | "once_cell", 61 | "version_check", 62 | "zerocopy", 63 | ] 64 | 65 | [[package]] 66 | name = "aho-corasick" 67 | version = "1.1.3" 68 | source = "registry+https://github.com/rust-lang/crates.io-index" 69 | checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 70 | dependencies = [ 71 | "memchr", 72 | ] 73 | 74 | [[package]] 75 | name = "anchor-attribute-access-control" 76 | version = "0.30.0" 77 | source = "registry+https://github.com/rust-lang/crates.io-index" 78 | checksum = "dd7368e171b3a317885dc08ec0f74eed9d0ad6c726cc819593aed81440dca926" 79 | dependencies = [ 80 | "anchor-syn", 81 | "proc-macro2", 82 | "quote", 83 | "syn 1.0.109", 84 | ] 85 | 86 | [[package]] 87 | name = "anchor-attribute-account" 88 | version = "0.30.0" 89 | source = "registry+https://github.com/rust-lang/crates.io-index" 90 | checksum = "f527df85a8cba3f2bea04e46ed71b66e525ea378c7fec538aa205f4520b73e31" 91 | dependencies = [ 92 | "anchor-syn", 93 | "bs58 0.5.1", 94 | "proc-macro2", 95 | "quote", 96 | "syn 1.0.109", 97 | ] 98 | 99 | [[package]] 100 | name = "anchor-attribute-constant" 101 | version = "0.30.0" 102 | source = "registry+https://github.com/rust-lang/crates.io-index" 103 | checksum = "3eb1dc1845cf8636c2e046a274ca074dabd3884ac8ed11cc4ed64b7e8ef5a318" 104 | dependencies = [ 105 | "anchor-syn", 106 | "quote", 107 | "syn 1.0.109", 108 | ] 109 | 110 | [[package]] 111 | name = "anchor-attribute-error" 112 | version = "0.30.0" 113 | source = "registry+https://github.com/rust-lang/crates.io-index" 114 | checksum = "7f382e41514c59a77ffa7bb1a47df9a0359564a749b6934485c742c11962e540" 115 | dependencies = [ 116 | "anchor-syn", 117 | "quote", 118 | "syn 1.0.109", 119 | ] 120 | 121 | [[package]] 122 | name = "anchor-attribute-event" 123 | version = "0.30.0" 124 | source = "registry+https://github.com/rust-lang/crates.io-index" 125 | checksum = "473a122aeed3f6b666438236338d2ef7833ee5fdc5688e1baa80185d61088a53" 126 | dependencies = [ 127 | "anchor-syn", 128 | "proc-macro2", 129 | "quote", 130 | "syn 1.0.109", 131 | ] 132 | 133 | [[package]] 134 | name = "anchor-attribute-program" 135 | version = "0.30.0" 136 | source = "registry+https://github.com/rust-lang/crates.io-index" 137 | checksum = "7f88c7ffe2eb40aeac43ffd0d74a6671581158aedfaa0552330a2ef92fa5c889" 138 | dependencies = [ 139 | "anchor-lang-idl", 140 | "anchor-syn", 141 | "anyhow", 142 | "bs58 0.5.1", 143 | "heck", 144 | "proc-macro2", 145 | "quote", 146 | "serde_json", 147 | "syn 1.0.109", 148 | ] 149 | 150 | [[package]] 151 | name = "anchor-derive-accounts" 152 | version = "0.30.0" 153 | source = "registry+https://github.com/rust-lang/crates.io-index" 154 | checksum = "ed9b97c99dcec135aae0ff908c14bcfcd3e78cfc16a0c6f245135038f0e6d390" 155 | dependencies = [ 156 | "anchor-syn", 157 | "quote", 158 | "syn 1.0.109", 159 | ] 160 | 161 | [[package]] 162 | name = "anchor-derive-serde" 163 | version = "0.30.0" 164 | source = "registry+https://github.com/rust-lang/crates.io-index" 165 | checksum = "bbece98f6ad9c37070edc0841326c9623a249346cd74f433e7cef69b14f7f31d" 166 | dependencies = [ 167 | "anchor-syn", 168 | "borsh-derive-internal 0.10.3", 169 | "proc-macro2", 170 | "quote", 171 | "syn 1.0.109", 172 | ] 173 | 174 | [[package]] 175 | name = "anchor-derive-space" 176 | version = "0.30.0" 177 | source = "registry+https://github.com/rust-lang/crates.io-index" 178 | checksum = "8badbe2648bc99a85ee05a7a5f9512e5e2af8ffac71476a69350cb278057ac53" 179 | dependencies = [ 180 | "proc-macro2", 181 | "quote", 182 | "syn 1.0.109", 183 | ] 184 | 185 | [[package]] 186 | name = "anchor-escrow" 187 | version = "0.1.0" 188 | dependencies = [ 189 | "ahash 0.8.11", 190 | "anchor-lang", 191 | "anchor-spl", 192 | "solana-program", 193 | ] 194 | 195 | [[package]] 196 | name = "anchor-lang" 197 | version = "0.30.0" 198 | source = "registry+https://github.com/rust-lang/crates.io-index" 199 | checksum = "e41feb9c1cd9f4b0fad1c004fc8f289183f3ce27e9db38fa6e434470c716fb1e" 200 | dependencies = [ 201 | "anchor-attribute-access-control", 202 | "anchor-attribute-account", 203 | "anchor-attribute-constant", 204 | "anchor-attribute-error", 205 | "anchor-attribute-event", 206 | "anchor-attribute-program", 207 | "anchor-derive-accounts", 208 | "anchor-derive-serde", 209 | "anchor-derive-space", 210 | "anchor-lang-idl", 211 | "arrayref", 212 | "base64 0.21.7", 213 | "bincode", 214 | "borsh 0.10.3", 215 | "bytemuck", 216 | "getrandom 0.2.15", 217 | "solana-program", 218 | "thiserror", 219 | ] 220 | 221 | [[package]] 222 | name = "anchor-lang-idl" 223 | version = "0.1.0" 224 | source = "registry+https://github.com/rust-lang/crates.io-index" 225 | checksum = "b29da81eae478b1bb846749b06b8a2cb9c6f9ed26ca793b0c916793fdf36adab" 226 | dependencies = [ 227 | "anchor-syn", 228 | "anyhow", 229 | "regex", 230 | "serde", 231 | "serde_json", 232 | ] 233 | 234 | [[package]] 235 | name = "anchor-spl" 236 | version = "0.30.0" 237 | source = "registry+https://github.com/rust-lang/crates.io-index" 238 | checksum = "0dcee54a30b27ea8317ca647759b5d9701a8c7caaaa0c922c6d3c306a7278a7a" 239 | dependencies = [ 240 | "anchor-lang", 241 | "spl-associated-token-account", 242 | "spl-pod", 243 | "spl-token", 244 | "spl-token-2022", 245 | "spl-token-group-interface", 246 | "spl-token-metadata-interface", 247 | ] 248 | 249 | [[package]] 250 | name = "anchor-syn" 251 | version = "0.30.0" 252 | source = "registry+https://github.com/rust-lang/crates.io-index" 253 | checksum = "ac53f2378bc08e89e20c2b893c01986ffd34cfbc69a17e35bd6f754753e9fdad" 254 | dependencies = [ 255 | "anyhow", 256 | "bs58 0.5.1", 257 | "cargo_toml", 258 | "heck", 259 | "proc-macro2", 260 | "quote", 261 | "serde", 262 | "serde_json", 263 | "sha2 0.10.8", 264 | "syn 1.0.109", 265 | "thiserror", 266 | ] 267 | 268 | [[package]] 269 | name = "anyhow" 270 | version = "1.0.83" 271 | source = "registry+https://github.com/rust-lang/crates.io-index" 272 | checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3" 273 | 274 | [[package]] 275 | name = "ark-bn254" 276 | version = "0.4.0" 277 | source = "registry+https://github.com/rust-lang/crates.io-index" 278 | checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" 279 | dependencies = [ 280 | "ark-ec", 281 | "ark-ff", 282 | "ark-std", 283 | ] 284 | 285 | [[package]] 286 | name = "ark-ec" 287 | version = "0.4.2" 288 | source = "registry+https://github.com/rust-lang/crates.io-index" 289 | checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" 290 | dependencies = [ 291 | "ark-ff", 292 | "ark-poly", 293 | "ark-serialize", 294 | "ark-std", 295 | "derivative", 296 | "hashbrown 0.13.2", 297 | "itertools", 298 | "num-traits", 299 | "zeroize", 300 | ] 301 | 302 | [[package]] 303 | name = "ark-ff" 304 | version = "0.4.2" 305 | source = "registry+https://github.com/rust-lang/crates.io-index" 306 | checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" 307 | dependencies = [ 308 | "ark-ff-asm", 309 | "ark-ff-macros", 310 | "ark-serialize", 311 | "ark-std", 312 | "derivative", 313 | "digest 0.10.7", 314 | "itertools", 315 | "num-bigint", 316 | "num-traits", 317 | "paste", 318 | "rustc_version", 319 | "zeroize", 320 | ] 321 | 322 | [[package]] 323 | name = "ark-ff-asm" 324 | version = "0.4.2" 325 | source = "registry+https://github.com/rust-lang/crates.io-index" 326 | checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" 327 | dependencies = [ 328 | "quote", 329 | "syn 1.0.109", 330 | ] 331 | 332 | [[package]] 333 | name = "ark-ff-macros" 334 | version = "0.4.2" 335 | source = "registry+https://github.com/rust-lang/crates.io-index" 336 | checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" 337 | dependencies = [ 338 | "num-bigint", 339 | "num-traits", 340 | "proc-macro2", 341 | "quote", 342 | "syn 1.0.109", 343 | ] 344 | 345 | [[package]] 346 | name = "ark-poly" 347 | version = "0.4.2" 348 | source = "registry+https://github.com/rust-lang/crates.io-index" 349 | checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" 350 | dependencies = [ 351 | "ark-ff", 352 | "ark-serialize", 353 | "ark-std", 354 | "derivative", 355 | "hashbrown 0.13.2", 356 | ] 357 | 358 | [[package]] 359 | name = "ark-serialize" 360 | version = "0.4.2" 361 | source = "registry+https://github.com/rust-lang/crates.io-index" 362 | checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" 363 | dependencies = [ 364 | "ark-serialize-derive", 365 | "ark-std", 366 | "digest 0.10.7", 367 | "num-bigint", 368 | ] 369 | 370 | [[package]] 371 | name = "ark-serialize-derive" 372 | version = "0.4.2" 373 | source = "registry+https://github.com/rust-lang/crates.io-index" 374 | checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" 375 | dependencies = [ 376 | "proc-macro2", 377 | "quote", 378 | "syn 1.0.109", 379 | ] 380 | 381 | [[package]] 382 | name = "ark-std" 383 | version = "0.4.0" 384 | source = "registry+https://github.com/rust-lang/crates.io-index" 385 | checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" 386 | dependencies = [ 387 | "num-traits", 388 | "rand 0.8.5", 389 | ] 390 | 391 | [[package]] 392 | name = "arrayref" 393 | version = "0.3.7" 394 | source = "registry+https://github.com/rust-lang/crates.io-index" 395 | checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" 396 | 397 | [[package]] 398 | name = "arrayvec" 399 | version = "0.7.4" 400 | source = "registry+https://github.com/rust-lang/crates.io-index" 401 | checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" 402 | 403 | [[package]] 404 | name = "assert_matches" 405 | version = "1.5.0" 406 | source = "registry+https://github.com/rust-lang/crates.io-index" 407 | checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" 408 | 409 | [[package]] 410 | name = "atty" 411 | version = "0.2.14" 412 | source = "registry+https://github.com/rust-lang/crates.io-index" 413 | checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" 414 | dependencies = [ 415 | "hermit-abi", 416 | "libc", 417 | "winapi", 418 | ] 419 | 420 | [[package]] 421 | name = "autocfg" 422 | version = "1.3.0" 423 | source = "registry+https://github.com/rust-lang/crates.io-index" 424 | checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" 425 | 426 | [[package]] 427 | name = "base64" 428 | version = "0.12.3" 429 | source = "registry+https://github.com/rust-lang/crates.io-index" 430 | checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" 431 | 432 | [[package]] 433 | name = "base64" 434 | version = "0.21.7" 435 | source = "registry+https://github.com/rust-lang/crates.io-index" 436 | checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 437 | 438 | [[package]] 439 | name = "bincode" 440 | version = "1.3.3" 441 | source = "registry+https://github.com/rust-lang/crates.io-index" 442 | checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" 443 | dependencies = [ 444 | "serde", 445 | ] 446 | 447 | [[package]] 448 | name = "bitflags" 449 | version = "2.5.0" 450 | source = "registry+https://github.com/rust-lang/crates.io-index" 451 | checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" 452 | dependencies = [ 453 | "serde", 454 | ] 455 | 456 | [[package]] 457 | name = "bitmaps" 458 | version = "2.1.0" 459 | source = "registry+https://github.com/rust-lang/crates.io-index" 460 | checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" 461 | dependencies = [ 462 | "typenum", 463 | ] 464 | 465 | [[package]] 466 | name = "blake3" 467 | version = "1.5.1" 468 | source = "registry+https://github.com/rust-lang/crates.io-index" 469 | checksum = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52" 470 | dependencies = [ 471 | "arrayref", 472 | "arrayvec", 473 | "cc", 474 | "cfg-if", 475 | "constant_time_eq", 476 | "digest 0.10.7", 477 | ] 478 | 479 | [[package]] 480 | name = "block-buffer" 481 | version = "0.9.0" 482 | source = "registry+https://github.com/rust-lang/crates.io-index" 483 | checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" 484 | dependencies = [ 485 | "block-padding", 486 | "generic-array", 487 | ] 488 | 489 | [[package]] 490 | name = "block-buffer" 491 | version = "0.10.4" 492 | source = "registry+https://github.com/rust-lang/crates.io-index" 493 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 494 | dependencies = [ 495 | "generic-array", 496 | ] 497 | 498 | [[package]] 499 | name = "block-padding" 500 | version = "0.2.1" 501 | source = "registry+https://github.com/rust-lang/crates.io-index" 502 | checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" 503 | 504 | [[package]] 505 | name = "borsh" 506 | version = "0.9.3" 507 | source = "registry+https://github.com/rust-lang/crates.io-index" 508 | checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa" 509 | dependencies = [ 510 | "borsh-derive 0.9.3", 511 | "hashbrown 0.11.2", 512 | ] 513 | 514 | [[package]] 515 | name = "borsh" 516 | version = "0.10.3" 517 | source = "registry+https://github.com/rust-lang/crates.io-index" 518 | checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" 519 | dependencies = [ 520 | "borsh-derive 0.10.3", 521 | "hashbrown 0.13.2", 522 | ] 523 | 524 | [[package]] 525 | name = "borsh" 526 | version = "1.5.0" 527 | source = "registry+https://github.com/rust-lang/crates.io-index" 528 | checksum = "dbe5b10e214954177fb1dc9fbd20a1a2608fe99e6c832033bdc7cea287a20d77" 529 | dependencies = [ 530 | "borsh-derive 1.5.0", 531 | "cfg_aliases", 532 | ] 533 | 534 | [[package]] 535 | name = "borsh-derive" 536 | version = "0.9.3" 537 | source = "registry+https://github.com/rust-lang/crates.io-index" 538 | checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" 539 | dependencies = [ 540 | "borsh-derive-internal 0.9.3", 541 | "borsh-schema-derive-internal 0.9.3", 542 | "proc-macro-crate 0.1.5", 543 | "proc-macro2", 544 | "syn 1.0.109", 545 | ] 546 | 547 | [[package]] 548 | name = "borsh-derive" 549 | version = "0.10.3" 550 | source = "registry+https://github.com/rust-lang/crates.io-index" 551 | checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" 552 | dependencies = [ 553 | "borsh-derive-internal 0.10.3", 554 | "borsh-schema-derive-internal 0.10.3", 555 | "proc-macro-crate 0.1.5", 556 | "proc-macro2", 557 | "syn 1.0.109", 558 | ] 559 | 560 | [[package]] 561 | name = "borsh-derive" 562 | version = "1.5.0" 563 | source = "registry+https://github.com/rust-lang/crates.io-index" 564 | checksum = "d7a8646f94ab393e43e8b35a2558b1624bed28b97ee09c5d15456e3c9463f46d" 565 | dependencies = [ 566 | "once_cell", 567 | "proc-macro-crate 3.1.0", 568 | "proc-macro2", 569 | "quote", 570 | "syn 2.0.63", 571 | "syn_derive", 572 | ] 573 | 574 | [[package]] 575 | name = "borsh-derive-internal" 576 | version = "0.9.3" 577 | source = "registry+https://github.com/rust-lang/crates.io-index" 578 | checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" 579 | dependencies = [ 580 | "proc-macro2", 581 | "quote", 582 | "syn 1.0.109", 583 | ] 584 | 585 | [[package]] 586 | name = "borsh-derive-internal" 587 | version = "0.10.3" 588 | source = "registry+https://github.com/rust-lang/crates.io-index" 589 | checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb" 590 | dependencies = [ 591 | "proc-macro2", 592 | "quote", 593 | "syn 1.0.109", 594 | ] 595 | 596 | [[package]] 597 | name = "borsh-schema-derive-internal" 598 | version = "0.9.3" 599 | source = "registry+https://github.com/rust-lang/crates.io-index" 600 | checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" 601 | dependencies = [ 602 | "proc-macro2", 603 | "quote", 604 | "syn 1.0.109", 605 | ] 606 | 607 | [[package]] 608 | name = "borsh-schema-derive-internal" 609 | version = "0.10.3" 610 | source = "registry+https://github.com/rust-lang/crates.io-index" 611 | checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd" 612 | dependencies = [ 613 | "proc-macro2", 614 | "quote", 615 | "syn 1.0.109", 616 | ] 617 | 618 | [[package]] 619 | name = "bs58" 620 | version = "0.4.0" 621 | source = "registry+https://github.com/rust-lang/crates.io-index" 622 | checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" 623 | 624 | [[package]] 625 | name = "bs58" 626 | version = "0.5.1" 627 | source = "registry+https://github.com/rust-lang/crates.io-index" 628 | checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" 629 | dependencies = [ 630 | "tinyvec", 631 | ] 632 | 633 | [[package]] 634 | name = "bumpalo" 635 | version = "3.16.0" 636 | source = "registry+https://github.com/rust-lang/crates.io-index" 637 | checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" 638 | 639 | [[package]] 640 | name = "bv" 641 | version = "0.11.1" 642 | source = "registry+https://github.com/rust-lang/crates.io-index" 643 | checksum = "8834bb1d8ee5dc048ee3124f2c7c1afcc6bc9aed03f11e9dfd8c69470a5db340" 644 | dependencies = [ 645 | "feature-probe", 646 | "serde", 647 | ] 648 | 649 | [[package]] 650 | name = "bytemuck" 651 | version = "1.16.0" 652 | source = "registry+https://github.com/rust-lang/crates.io-index" 653 | checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" 654 | dependencies = [ 655 | "bytemuck_derive", 656 | ] 657 | 658 | [[package]] 659 | name = "bytemuck_derive" 660 | version = "1.6.0" 661 | source = "registry+https://github.com/rust-lang/crates.io-index" 662 | checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60" 663 | dependencies = [ 664 | "proc-macro2", 665 | "quote", 666 | "syn 2.0.63", 667 | ] 668 | 669 | [[package]] 670 | name = "byteorder" 671 | version = "1.5.0" 672 | source = "registry+https://github.com/rust-lang/crates.io-index" 673 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 674 | 675 | [[package]] 676 | name = "cargo_toml" 677 | version = "0.19.2" 678 | source = "registry+https://github.com/rust-lang/crates.io-index" 679 | checksum = "a98356df42a2eb1bd8f1793ae4ee4de48e384dd974ce5eac8eee802edb7492be" 680 | dependencies = [ 681 | "serde", 682 | "toml 0.8.12", 683 | ] 684 | 685 | [[package]] 686 | name = "cc" 687 | version = "1.0.97" 688 | source = "registry+https://github.com/rust-lang/crates.io-index" 689 | checksum = "099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4" 690 | dependencies = [ 691 | "jobserver", 692 | "libc", 693 | "once_cell", 694 | ] 695 | 696 | [[package]] 697 | name = "cfg-if" 698 | version = "1.0.0" 699 | source = "registry+https://github.com/rust-lang/crates.io-index" 700 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 701 | 702 | [[package]] 703 | name = "cfg_aliases" 704 | version = "0.1.1" 705 | source = "registry+https://github.com/rust-lang/crates.io-index" 706 | checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" 707 | 708 | [[package]] 709 | name = "chrono" 710 | version = "0.4.38" 711 | source = "registry+https://github.com/rust-lang/crates.io-index" 712 | checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" 713 | dependencies = [ 714 | "num-traits", 715 | ] 716 | 717 | [[package]] 718 | name = "cipher" 719 | version = "0.3.0" 720 | source = "registry+https://github.com/rust-lang/crates.io-index" 721 | checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" 722 | dependencies = [ 723 | "generic-array", 724 | ] 725 | 726 | [[package]] 727 | name = "console_error_panic_hook" 728 | version = "0.1.7" 729 | source = "registry+https://github.com/rust-lang/crates.io-index" 730 | checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" 731 | dependencies = [ 732 | "cfg-if", 733 | "wasm-bindgen", 734 | ] 735 | 736 | [[package]] 737 | name = "console_log" 738 | version = "0.2.2" 739 | source = "registry+https://github.com/rust-lang/crates.io-index" 740 | checksum = "e89f72f65e8501878b8a004d5a1afb780987e2ce2b4532c562e367a72c57499f" 741 | dependencies = [ 742 | "log", 743 | "web-sys", 744 | ] 745 | 746 | [[package]] 747 | name = "constant_time_eq" 748 | version = "0.3.0" 749 | source = "registry+https://github.com/rust-lang/crates.io-index" 750 | checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" 751 | 752 | [[package]] 753 | name = "cpufeatures" 754 | version = "0.2.12" 755 | source = "registry+https://github.com/rust-lang/crates.io-index" 756 | checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" 757 | dependencies = [ 758 | "libc", 759 | ] 760 | 761 | [[package]] 762 | name = "crossbeam-deque" 763 | version = "0.8.5" 764 | source = "registry+https://github.com/rust-lang/crates.io-index" 765 | checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" 766 | dependencies = [ 767 | "crossbeam-epoch", 768 | "crossbeam-utils", 769 | ] 770 | 771 | [[package]] 772 | name = "crossbeam-epoch" 773 | version = "0.9.18" 774 | source = "registry+https://github.com/rust-lang/crates.io-index" 775 | checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 776 | dependencies = [ 777 | "crossbeam-utils", 778 | ] 779 | 780 | [[package]] 781 | name = "crossbeam-utils" 782 | version = "0.8.19" 783 | source = "registry+https://github.com/rust-lang/crates.io-index" 784 | checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" 785 | 786 | [[package]] 787 | name = "crunchy" 788 | version = "0.2.2" 789 | source = "registry+https://github.com/rust-lang/crates.io-index" 790 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" 791 | 792 | [[package]] 793 | name = "crypto-common" 794 | version = "0.1.6" 795 | source = "registry+https://github.com/rust-lang/crates.io-index" 796 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 797 | dependencies = [ 798 | "generic-array", 799 | "typenum", 800 | ] 801 | 802 | [[package]] 803 | name = "crypto-mac" 804 | version = "0.8.0" 805 | source = "registry+https://github.com/rust-lang/crates.io-index" 806 | checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" 807 | dependencies = [ 808 | "generic-array", 809 | "subtle", 810 | ] 811 | 812 | [[package]] 813 | name = "ctr" 814 | version = "0.8.0" 815 | source = "registry+https://github.com/rust-lang/crates.io-index" 816 | checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" 817 | dependencies = [ 818 | "cipher", 819 | ] 820 | 821 | [[package]] 822 | name = "curve25519-dalek" 823 | version = "3.2.1" 824 | source = "registry+https://github.com/rust-lang/crates.io-index" 825 | checksum = "90f9d052967f590a76e62eb387bd0bbb1b000182c3cefe5364db6b7211651bc0" 826 | dependencies = [ 827 | "byteorder", 828 | "digest 0.9.0", 829 | "rand_core 0.5.1", 830 | "serde", 831 | "subtle", 832 | "zeroize", 833 | ] 834 | 835 | [[package]] 836 | name = "darling" 837 | version = "0.20.8" 838 | source = "registry+https://github.com/rust-lang/crates.io-index" 839 | checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" 840 | dependencies = [ 841 | "darling_core", 842 | "darling_macro", 843 | ] 844 | 845 | [[package]] 846 | name = "darling_core" 847 | version = "0.20.8" 848 | source = "registry+https://github.com/rust-lang/crates.io-index" 849 | checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" 850 | dependencies = [ 851 | "fnv", 852 | "ident_case", 853 | "proc-macro2", 854 | "quote", 855 | "strsim", 856 | "syn 2.0.63", 857 | ] 858 | 859 | [[package]] 860 | name = "darling_macro" 861 | version = "0.20.8" 862 | source = "registry+https://github.com/rust-lang/crates.io-index" 863 | checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" 864 | dependencies = [ 865 | "darling_core", 866 | "quote", 867 | "syn 2.0.63", 868 | ] 869 | 870 | [[package]] 871 | name = "derivation-path" 872 | version = "0.2.0" 873 | source = "registry+https://github.com/rust-lang/crates.io-index" 874 | checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" 875 | 876 | [[package]] 877 | name = "derivative" 878 | version = "2.2.0" 879 | source = "registry+https://github.com/rust-lang/crates.io-index" 880 | checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" 881 | dependencies = [ 882 | "proc-macro2", 883 | "quote", 884 | "syn 1.0.109", 885 | ] 886 | 887 | [[package]] 888 | name = "digest" 889 | version = "0.9.0" 890 | source = "registry+https://github.com/rust-lang/crates.io-index" 891 | checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" 892 | dependencies = [ 893 | "generic-array", 894 | ] 895 | 896 | [[package]] 897 | name = "digest" 898 | version = "0.10.7" 899 | source = "registry+https://github.com/rust-lang/crates.io-index" 900 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 901 | dependencies = [ 902 | "block-buffer 0.10.4", 903 | "crypto-common", 904 | "subtle", 905 | ] 906 | 907 | [[package]] 908 | name = "ed25519" 909 | version = "1.5.3" 910 | source = "registry+https://github.com/rust-lang/crates.io-index" 911 | checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" 912 | dependencies = [ 913 | "signature", 914 | ] 915 | 916 | [[package]] 917 | name = "ed25519-dalek" 918 | version = "1.0.1" 919 | source = "registry+https://github.com/rust-lang/crates.io-index" 920 | checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" 921 | dependencies = [ 922 | "curve25519-dalek", 923 | "ed25519", 924 | "rand 0.7.3", 925 | "serde", 926 | "sha2 0.9.9", 927 | "zeroize", 928 | ] 929 | 930 | [[package]] 931 | name = "ed25519-dalek-bip32" 932 | version = "0.2.0" 933 | source = "registry+https://github.com/rust-lang/crates.io-index" 934 | checksum = "9d2be62a4061b872c8c0873ee4fc6f101ce7b889d039f019c5fa2af471a59908" 935 | dependencies = [ 936 | "derivation-path", 937 | "ed25519-dalek", 938 | "hmac 0.12.1", 939 | "sha2 0.10.8", 940 | ] 941 | 942 | [[package]] 943 | name = "either" 944 | version = "1.11.0" 945 | source = "registry+https://github.com/rust-lang/crates.io-index" 946 | checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2" 947 | 948 | [[package]] 949 | name = "env_logger" 950 | version = "0.9.3" 951 | source = "registry+https://github.com/rust-lang/crates.io-index" 952 | checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" 953 | dependencies = [ 954 | "atty", 955 | "humantime", 956 | "log", 957 | "regex", 958 | "termcolor", 959 | ] 960 | 961 | [[package]] 962 | name = "equivalent" 963 | version = "1.0.1" 964 | source = "registry+https://github.com/rust-lang/crates.io-index" 965 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 966 | 967 | [[package]] 968 | name = "feature-probe" 969 | version = "0.1.1" 970 | source = "registry+https://github.com/rust-lang/crates.io-index" 971 | checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" 972 | 973 | [[package]] 974 | name = "fnv" 975 | version = "1.0.7" 976 | source = "registry+https://github.com/rust-lang/crates.io-index" 977 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 978 | 979 | [[package]] 980 | name = "generic-array" 981 | version = "0.14.7" 982 | source = "registry+https://github.com/rust-lang/crates.io-index" 983 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 984 | dependencies = [ 985 | "serde", 986 | "typenum", 987 | "version_check", 988 | ] 989 | 990 | [[package]] 991 | name = "getrandom" 992 | version = "0.1.16" 993 | source = "registry+https://github.com/rust-lang/crates.io-index" 994 | checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" 995 | dependencies = [ 996 | "cfg-if", 997 | "js-sys", 998 | "libc", 999 | "wasi 0.9.0+wasi-snapshot-preview1", 1000 | "wasm-bindgen", 1001 | ] 1002 | 1003 | [[package]] 1004 | name = "getrandom" 1005 | version = "0.2.15" 1006 | source = "registry+https://github.com/rust-lang/crates.io-index" 1007 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 1008 | dependencies = [ 1009 | "cfg-if", 1010 | "js-sys", 1011 | "libc", 1012 | "wasi 0.11.0+wasi-snapshot-preview1", 1013 | "wasm-bindgen", 1014 | ] 1015 | 1016 | [[package]] 1017 | name = "hashbrown" 1018 | version = "0.11.2" 1019 | source = "registry+https://github.com/rust-lang/crates.io-index" 1020 | checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" 1021 | dependencies = [ 1022 | "ahash 0.7.8", 1023 | ] 1024 | 1025 | [[package]] 1026 | name = "hashbrown" 1027 | version = "0.13.2" 1028 | source = "registry+https://github.com/rust-lang/crates.io-index" 1029 | checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" 1030 | dependencies = [ 1031 | "ahash 0.8.11", 1032 | ] 1033 | 1034 | [[package]] 1035 | name = "hashbrown" 1036 | version = "0.14.5" 1037 | source = "registry+https://github.com/rust-lang/crates.io-index" 1038 | checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 1039 | 1040 | [[package]] 1041 | name = "heck" 1042 | version = "0.3.3" 1043 | source = "registry+https://github.com/rust-lang/crates.io-index" 1044 | checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" 1045 | dependencies = [ 1046 | "unicode-segmentation", 1047 | ] 1048 | 1049 | [[package]] 1050 | name = "hermit-abi" 1051 | version = "0.1.19" 1052 | source = "registry+https://github.com/rust-lang/crates.io-index" 1053 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" 1054 | dependencies = [ 1055 | "libc", 1056 | ] 1057 | 1058 | [[package]] 1059 | name = "hmac" 1060 | version = "0.8.1" 1061 | source = "registry+https://github.com/rust-lang/crates.io-index" 1062 | checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" 1063 | dependencies = [ 1064 | "crypto-mac", 1065 | "digest 0.9.0", 1066 | ] 1067 | 1068 | [[package]] 1069 | name = "hmac" 1070 | version = "0.12.1" 1071 | source = "registry+https://github.com/rust-lang/crates.io-index" 1072 | checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" 1073 | dependencies = [ 1074 | "digest 0.10.7", 1075 | ] 1076 | 1077 | [[package]] 1078 | name = "hmac-drbg" 1079 | version = "0.3.0" 1080 | source = "registry+https://github.com/rust-lang/crates.io-index" 1081 | checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" 1082 | dependencies = [ 1083 | "digest 0.9.0", 1084 | "generic-array", 1085 | "hmac 0.8.1", 1086 | ] 1087 | 1088 | [[package]] 1089 | name = "humantime" 1090 | version = "2.1.0" 1091 | source = "registry+https://github.com/rust-lang/crates.io-index" 1092 | checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" 1093 | 1094 | [[package]] 1095 | name = "ident_case" 1096 | version = "1.0.1" 1097 | source = "registry+https://github.com/rust-lang/crates.io-index" 1098 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 1099 | 1100 | [[package]] 1101 | name = "im" 1102 | version = "15.1.0" 1103 | source = "registry+https://github.com/rust-lang/crates.io-index" 1104 | checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" 1105 | dependencies = [ 1106 | "bitmaps", 1107 | "rand_core 0.6.4", 1108 | "rand_xoshiro", 1109 | "rayon", 1110 | "serde", 1111 | "sized-chunks", 1112 | "typenum", 1113 | "version_check", 1114 | ] 1115 | 1116 | [[package]] 1117 | name = "indexmap" 1118 | version = "2.2.6" 1119 | source = "registry+https://github.com/rust-lang/crates.io-index" 1120 | checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" 1121 | dependencies = [ 1122 | "equivalent", 1123 | "hashbrown 0.14.5", 1124 | ] 1125 | 1126 | [[package]] 1127 | name = "itertools" 1128 | version = "0.10.5" 1129 | source = "registry+https://github.com/rust-lang/crates.io-index" 1130 | checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" 1131 | dependencies = [ 1132 | "either", 1133 | ] 1134 | 1135 | [[package]] 1136 | name = "itoa" 1137 | version = "1.0.11" 1138 | source = "registry+https://github.com/rust-lang/crates.io-index" 1139 | checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 1140 | 1141 | [[package]] 1142 | name = "jobserver" 1143 | version = "0.1.31" 1144 | source = "registry+https://github.com/rust-lang/crates.io-index" 1145 | checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" 1146 | dependencies = [ 1147 | "libc", 1148 | ] 1149 | 1150 | [[package]] 1151 | name = "js-sys" 1152 | version = "0.3.69" 1153 | source = "registry+https://github.com/rust-lang/crates.io-index" 1154 | checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" 1155 | dependencies = [ 1156 | "wasm-bindgen", 1157 | ] 1158 | 1159 | [[package]] 1160 | name = "keccak" 1161 | version = "0.1.5" 1162 | source = "registry+https://github.com/rust-lang/crates.io-index" 1163 | checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" 1164 | dependencies = [ 1165 | "cpufeatures", 1166 | ] 1167 | 1168 | [[package]] 1169 | name = "lazy_static" 1170 | version = "1.4.0" 1171 | source = "registry+https://github.com/rust-lang/crates.io-index" 1172 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 1173 | 1174 | [[package]] 1175 | name = "libc" 1176 | version = "0.2.154" 1177 | source = "registry+https://github.com/rust-lang/crates.io-index" 1178 | checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" 1179 | 1180 | [[package]] 1181 | name = "libsecp256k1" 1182 | version = "0.6.0" 1183 | source = "registry+https://github.com/rust-lang/crates.io-index" 1184 | checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73" 1185 | dependencies = [ 1186 | "arrayref", 1187 | "base64 0.12.3", 1188 | "digest 0.9.0", 1189 | "hmac-drbg", 1190 | "libsecp256k1-core", 1191 | "libsecp256k1-gen-ecmult", 1192 | "libsecp256k1-gen-genmult", 1193 | "rand 0.7.3", 1194 | "serde", 1195 | "sha2 0.9.9", 1196 | "typenum", 1197 | ] 1198 | 1199 | [[package]] 1200 | name = "libsecp256k1-core" 1201 | version = "0.2.2" 1202 | source = "registry+https://github.com/rust-lang/crates.io-index" 1203 | checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80" 1204 | dependencies = [ 1205 | "crunchy", 1206 | "digest 0.9.0", 1207 | "subtle", 1208 | ] 1209 | 1210 | [[package]] 1211 | name = "libsecp256k1-gen-ecmult" 1212 | version = "0.2.1" 1213 | source = "registry+https://github.com/rust-lang/crates.io-index" 1214 | checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3" 1215 | dependencies = [ 1216 | "libsecp256k1-core", 1217 | ] 1218 | 1219 | [[package]] 1220 | name = "libsecp256k1-gen-genmult" 1221 | version = "0.2.1" 1222 | source = "registry+https://github.com/rust-lang/crates.io-index" 1223 | checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" 1224 | dependencies = [ 1225 | "libsecp256k1-core", 1226 | ] 1227 | 1228 | [[package]] 1229 | name = "light-poseidon" 1230 | version = "0.2.0" 1231 | source = "registry+https://github.com/rust-lang/crates.io-index" 1232 | checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" 1233 | dependencies = [ 1234 | "ark-bn254", 1235 | "ark-ff", 1236 | "num-bigint", 1237 | "thiserror", 1238 | ] 1239 | 1240 | [[package]] 1241 | name = "lock_api" 1242 | version = "0.4.12" 1243 | source = "registry+https://github.com/rust-lang/crates.io-index" 1244 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 1245 | dependencies = [ 1246 | "autocfg", 1247 | "scopeguard", 1248 | ] 1249 | 1250 | [[package]] 1251 | name = "log" 1252 | version = "0.4.21" 1253 | source = "registry+https://github.com/rust-lang/crates.io-index" 1254 | checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" 1255 | 1256 | [[package]] 1257 | name = "memchr" 1258 | version = "2.7.2" 1259 | source = "registry+https://github.com/rust-lang/crates.io-index" 1260 | checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" 1261 | 1262 | [[package]] 1263 | name = "memmap2" 1264 | version = "0.5.10" 1265 | source = "registry+https://github.com/rust-lang/crates.io-index" 1266 | checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" 1267 | dependencies = [ 1268 | "libc", 1269 | ] 1270 | 1271 | [[package]] 1272 | name = "memoffset" 1273 | version = "0.9.1" 1274 | source = "registry+https://github.com/rust-lang/crates.io-index" 1275 | checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" 1276 | dependencies = [ 1277 | "autocfg", 1278 | ] 1279 | 1280 | [[package]] 1281 | name = "merlin" 1282 | version = "3.0.0" 1283 | source = "registry+https://github.com/rust-lang/crates.io-index" 1284 | checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" 1285 | dependencies = [ 1286 | "byteorder", 1287 | "keccak", 1288 | "rand_core 0.6.4", 1289 | "zeroize", 1290 | ] 1291 | 1292 | [[package]] 1293 | name = "num-bigint" 1294 | version = "0.4.5" 1295 | source = "registry+https://github.com/rust-lang/crates.io-index" 1296 | checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" 1297 | dependencies = [ 1298 | "num-integer", 1299 | "num-traits", 1300 | ] 1301 | 1302 | [[package]] 1303 | name = "num-derive" 1304 | version = "0.4.2" 1305 | source = "registry+https://github.com/rust-lang/crates.io-index" 1306 | checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" 1307 | dependencies = [ 1308 | "proc-macro2", 1309 | "quote", 1310 | "syn 2.0.63", 1311 | ] 1312 | 1313 | [[package]] 1314 | name = "num-integer" 1315 | version = "0.1.46" 1316 | source = "registry+https://github.com/rust-lang/crates.io-index" 1317 | checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" 1318 | dependencies = [ 1319 | "num-traits", 1320 | ] 1321 | 1322 | [[package]] 1323 | name = "num-traits" 1324 | version = "0.2.19" 1325 | source = "registry+https://github.com/rust-lang/crates.io-index" 1326 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 1327 | dependencies = [ 1328 | "autocfg", 1329 | ] 1330 | 1331 | [[package]] 1332 | name = "num_enum" 1333 | version = "0.7.2" 1334 | source = "registry+https://github.com/rust-lang/crates.io-index" 1335 | checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" 1336 | dependencies = [ 1337 | "num_enum_derive", 1338 | ] 1339 | 1340 | [[package]] 1341 | name = "num_enum_derive" 1342 | version = "0.7.2" 1343 | source = "registry+https://github.com/rust-lang/crates.io-index" 1344 | checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" 1345 | dependencies = [ 1346 | "proc-macro-crate 3.1.0", 1347 | "proc-macro2", 1348 | "quote", 1349 | "syn 2.0.63", 1350 | ] 1351 | 1352 | [[package]] 1353 | name = "once_cell" 1354 | version = "1.19.0" 1355 | source = "registry+https://github.com/rust-lang/crates.io-index" 1356 | checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" 1357 | 1358 | [[package]] 1359 | name = "opaque-debug" 1360 | version = "0.3.1" 1361 | source = "registry+https://github.com/rust-lang/crates.io-index" 1362 | checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" 1363 | 1364 | [[package]] 1365 | name = "parking_lot" 1366 | version = "0.12.2" 1367 | source = "registry+https://github.com/rust-lang/crates.io-index" 1368 | checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" 1369 | dependencies = [ 1370 | "lock_api", 1371 | "parking_lot_core", 1372 | ] 1373 | 1374 | [[package]] 1375 | name = "parking_lot_core" 1376 | version = "0.9.10" 1377 | source = "registry+https://github.com/rust-lang/crates.io-index" 1378 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 1379 | dependencies = [ 1380 | "cfg-if", 1381 | "libc", 1382 | "redox_syscall", 1383 | "smallvec", 1384 | "windows-targets", 1385 | ] 1386 | 1387 | [[package]] 1388 | name = "paste" 1389 | version = "1.0.15" 1390 | source = "registry+https://github.com/rust-lang/crates.io-index" 1391 | checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 1392 | 1393 | [[package]] 1394 | name = "pbkdf2" 1395 | version = "0.4.0" 1396 | source = "registry+https://github.com/rust-lang/crates.io-index" 1397 | checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd" 1398 | dependencies = [ 1399 | "crypto-mac", 1400 | ] 1401 | 1402 | [[package]] 1403 | name = "pbkdf2" 1404 | version = "0.11.0" 1405 | source = "registry+https://github.com/rust-lang/crates.io-index" 1406 | checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" 1407 | dependencies = [ 1408 | "digest 0.10.7", 1409 | ] 1410 | 1411 | [[package]] 1412 | name = "percent-encoding" 1413 | version = "2.3.1" 1414 | source = "registry+https://github.com/rust-lang/crates.io-index" 1415 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 1416 | 1417 | [[package]] 1418 | name = "polyval" 1419 | version = "0.5.3" 1420 | source = "registry+https://github.com/rust-lang/crates.io-index" 1421 | checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" 1422 | dependencies = [ 1423 | "cfg-if", 1424 | "cpufeatures", 1425 | "opaque-debug", 1426 | "universal-hash", 1427 | ] 1428 | 1429 | [[package]] 1430 | name = "ppv-lite86" 1431 | version = "0.2.17" 1432 | source = "registry+https://github.com/rust-lang/crates.io-index" 1433 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 1434 | 1435 | [[package]] 1436 | name = "proc-macro-crate" 1437 | version = "0.1.5" 1438 | source = "registry+https://github.com/rust-lang/crates.io-index" 1439 | checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" 1440 | dependencies = [ 1441 | "toml 0.5.11", 1442 | ] 1443 | 1444 | [[package]] 1445 | name = "proc-macro-crate" 1446 | version = "3.1.0" 1447 | source = "registry+https://github.com/rust-lang/crates.io-index" 1448 | checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" 1449 | dependencies = [ 1450 | "toml_edit 0.21.1", 1451 | ] 1452 | 1453 | [[package]] 1454 | name = "proc-macro-error" 1455 | version = "1.0.4" 1456 | source = "registry+https://github.com/rust-lang/crates.io-index" 1457 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 1458 | dependencies = [ 1459 | "proc-macro-error-attr", 1460 | "proc-macro2", 1461 | "quote", 1462 | "version_check", 1463 | ] 1464 | 1465 | [[package]] 1466 | name = "proc-macro-error-attr" 1467 | version = "1.0.4" 1468 | source = "registry+https://github.com/rust-lang/crates.io-index" 1469 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 1470 | dependencies = [ 1471 | "proc-macro2", 1472 | "quote", 1473 | "version_check", 1474 | ] 1475 | 1476 | [[package]] 1477 | name = "proc-macro2" 1478 | version = "1.0.82" 1479 | source = "registry+https://github.com/rust-lang/crates.io-index" 1480 | checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" 1481 | dependencies = [ 1482 | "unicode-ident", 1483 | ] 1484 | 1485 | [[package]] 1486 | name = "qstring" 1487 | version = "0.7.2" 1488 | source = "registry+https://github.com/rust-lang/crates.io-index" 1489 | checksum = "d464fae65fff2680baf48019211ce37aaec0c78e9264c84a3e484717f965104e" 1490 | dependencies = [ 1491 | "percent-encoding", 1492 | ] 1493 | 1494 | [[package]] 1495 | name = "qualifier_attr" 1496 | version = "0.2.2" 1497 | source = "registry+https://github.com/rust-lang/crates.io-index" 1498 | checksum = "9e2e25ee72f5b24d773cae88422baddefff7714f97aab68d96fe2b6fc4a28fb2" 1499 | dependencies = [ 1500 | "proc-macro2", 1501 | "quote", 1502 | "syn 2.0.63", 1503 | ] 1504 | 1505 | [[package]] 1506 | name = "quote" 1507 | version = "1.0.36" 1508 | source = "registry+https://github.com/rust-lang/crates.io-index" 1509 | checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" 1510 | dependencies = [ 1511 | "proc-macro2", 1512 | ] 1513 | 1514 | [[package]] 1515 | name = "rand" 1516 | version = "0.7.3" 1517 | source = "registry+https://github.com/rust-lang/crates.io-index" 1518 | checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" 1519 | dependencies = [ 1520 | "getrandom 0.1.16", 1521 | "libc", 1522 | "rand_chacha 0.2.2", 1523 | "rand_core 0.5.1", 1524 | "rand_hc", 1525 | ] 1526 | 1527 | [[package]] 1528 | name = "rand" 1529 | version = "0.8.5" 1530 | source = "registry+https://github.com/rust-lang/crates.io-index" 1531 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1532 | dependencies = [ 1533 | "libc", 1534 | "rand_chacha 0.3.1", 1535 | "rand_core 0.6.4", 1536 | ] 1537 | 1538 | [[package]] 1539 | name = "rand_chacha" 1540 | version = "0.2.2" 1541 | source = "registry+https://github.com/rust-lang/crates.io-index" 1542 | checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" 1543 | dependencies = [ 1544 | "ppv-lite86", 1545 | "rand_core 0.5.1", 1546 | ] 1547 | 1548 | [[package]] 1549 | name = "rand_chacha" 1550 | version = "0.3.1" 1551 | source = "registry+https://github.com/rust-lang/crates.io-index" 1552 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1553 | dependencies = [ 1554 | "ppv-lite86", 1555 | "rand_core 0.6.4", 1556 | ] 1557 | 1558 | [[package]] 1559 | name = "rand_core" 1560 | version = "0.5.1" 1561 | source = "registry+https://github.com/rust-lang/crates.io-index" 1562 | checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" 1563 | dependencies = [ 1564 | "getrandom 0.1.16", 1565 | ] 1566 | 1567 | [[package]] 1568 | name = "rand_core" 1569 | version = "0.6.4" 1570 | source = "registry+https://github.com/rust-lang/crates.io-index" 1571 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1572 | dependencies = [ 1573 | "getrandom 0.2.15", 1574 | ] 1575 | 1576 | [[package]] 1577 | name = "rand_hc" 1578 | version = "0.2.0" 1579 | source = "registry+https://github.com/rust-lang/crates.io-index" 1580 | checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" 1581 | dependencies = [ 1582 | "rand_core 0.5.1", 1583 | ] 1584 | 1585 | [[package]] 1586 | name = "rand_xoshiro" 1587 | version = "0.6.0" 1588 | source = "registry+https://github.com/rust-lang/crates.io-index" 1589 | checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" 1590 | dependencies = [ 1591 | "rand_core 0.6.4", 1592 | ] 1593 | 1594 | [[package]] 1595 | name = "rayon" 1596 | version = "1.10.0" 1597 | source = "registry+https://github.com/rust-lang/crates.io-index" 1598 | checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" 1599 | dependencies = [ 1600 | "either", 1601 | "rayon-core", 1602 | ] 1603 | 1604 | [[package]] 1605 | name = "rayon-core" 1606 | version = "1.12.1" 1607 | source = "registry+https://github.com/rust-lang/crates.io-index" 1608 | checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" 1609 | dependencies = [ 1610 | "crossbeam-deque", 1611 | "crossbeam-utils", 1612 | ] 1613 | 1614 | [[package]] 1615 | name = "redox_syscall" 1616 | version = "0.5.1" 1617 | source = "registry+https://github.com/rust-lang/crates.io-index" 1618 | checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" 1619 | dependencies = [ 1620 | "bitflags", 1621 | ] 1622 | 1623 | [[package]] 1624 | name = "regex" 1625 | version = "1.10.4" 1626 | source = "registry+https://github.com/rust-lang/crates.io-index" 1627 | checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" 1628 | dependencies = [ 1629 | "aho-corasick", 1630 | "memchr", 1631 | "regex-automata", 1632 | "regex-syntax", 1633 | ] 1634 | 1635 | [[package]] 1636 | name = "regex-automata" 1637 | version = "0.4.6" 1638 | source = "registry+https://github.com/rust-lang/crates.io-index" 1639 | checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" 1640 | dependencies = [ 1641 | "aho-corasick", 1642 | "memchr", 1643 | "regex-syntax", 1644 | ] 1645 | 1646 | [[package]] 1647 | name = "regex-syntax" 1648 | version = "0.8.3" 1649 | source = "registry+https://github.com/rust-lang/crates.io-index" 1650 | checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" 1651 | 1652 | [[package]] 1653 | name = "rustc-hash" 1654 | version = "1.1.0" 1655 | source = "registry+https://github.com/rust-lang/crates.io-index" 1656 | checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 1657 | 1658 | [[package]] 1659 | name = "rustc_version" 1660 | version = "0.4.0" 1661 | source = "registry+https://github.com/rust-lang/crates.io-index" 1662 | checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" 1663 | dependencies = [ 1664 | "semver", 1665 | ] 1666 | 1667 | [[package]] 1668 | name = "rustversion" 1669 | version = "1.0.16" 1670 | source = "registry+https://github.com/rust-lang/crates.io-index" 1671 | checksum = "092474d1a01ea8278f69e6a358998405fae5b8b963ddaeb2b0b04a128bf1dfb0" 1672 | 1673 | [[package]] 1674 | name = "ryu" 1675 | version = "1.0.18" 1676 | source = "registry+https://github.com/rust-lang/crates.io-index" 1677 | checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" 1678 | 1679 | [[package]] 1680 | name = "scopeguard" 1681 | version = "1.2.0" 1682 | source = "registry+https://github.com/rust-lang/crates.io-index" 1683 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1684 | 1685 | [[package]] 1686 | name = "semver" 1687 | version = "1.0.23" 1688 | source = "registry+https://github.com/rust-lang/crates.io-index" 1689 | checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" 1690 | 1691 | [[package]] 1692 | name = "serde" 1693 | version = "1.0.201" 1694 | source = "registry+https://github.com/rust-lang/crates.io-index" 1695 | checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c" 1696 | dependencies = [ 1697 | "serde_derive", 1698 | ] 1699 | 1700 | [[package]] 1701 | name = "serde_bytes" 1702 | version = "0.11.14" 1703 | source = "registry+https://github.com/rust-lang/crates.io-index" 1704 | checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" 1705 | dependencies = [ 1706 | "serde", 1707 | ] 1708 | 1709 | [[package]] 1710 | name = "serde_derive" 1711 | version = "1.0.201" 1712 | source = "registry+https://github.com/rust-lang/crates.io-index" 1713 | checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865" 1714 | dependencies = [ 1715 | "proc-macro2", 1716 | "quote", 1717 | "syn 2.0.63", 1718 | ] 1719 | 1720 | [[package]] 1721 | name = "serde_json" 1722 | version = "1.0.117" 1723 | source = "registry+https://github.com/rust-lang/crates.io-index" 1724 | checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" 1725 | dependencies = [ 1726 | "itoa", 1727 | "ryu", 1728 | "serde", 1729 | ] 1730 | 1731 | [[package]] 1732 | name = "serde_spanned" 1733 | version = "0.6.5" 1734 | source = "registry+https://github.com/rust-lang/crates.io-index" 1735 | checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" 1736 | dependencies = [ 1737 | "serde", 1738 | ] 1739 | 1740 | [[package]] 1741 | name = "serde_with" 1742 | version = "2.3.3" 1743 | source = "registry+https://github.com/rust-lang/crates.io-index" 1744 | checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" 1745 | dependencies = [ 1746 | "serde", 1747 | "serde_with_macros", 1748 | ] 1749 | 1750 | [[package]] 1751 | name = "serde_with_macros" 1752 | version = "2.3.3" 1753 | source = "registry+https://github.com/rust-lang/crates.io-index" 1754 | checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" 1755 | dependencies = [ 1756 | "darling", 1757 | "proc-macro2", 1758 | "quote", 1759 | "syn 2.0.63", 1760 | ] 1761 | 1762 | [[package]] 1763 | name = "sha2" 1764 | version = "0.9.9" 1765 | source = "registry+https://github.com/rust-lang/crates.io-index" 1766 | checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" 1767 | dependencies = [ 1768 | "block-buffer 0.9.0", 1769 | "cfg-if", 1770 | "cpufeatures", 1771 | "digest 0.9.0", 1772 | "opaque-debug", 1773 | ] 1774 | 1775 | [[package]] 1776 | name = "sha2" 1777 | version = "0.10.8" 1778 | source = "registry+https://github.com/rust-lang/crates.io-index" 1779 | checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 1780 | dependencies = [ 1781 | "cfg-if", 1782 | "cpufeatures", 1783 | "digest 0.10.7", 1784 | ] 1785 | 1786 | [[package]] 1787 | name = "sha3" 1788 | version = "0.9.1" 1789 | source = "registry+https://github.com/rust-lang/crates.io-index" 1790 | checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" 1791 | dependencies = [ 1792 | "block-buffer 0.9.0", 1793 | "digest 0.9.0", 1794 | "keccak", 1795 | "opaque-debug", 1796 | ] 1797 | 1798 | [[package]] 1799 | name = "sha3" 1800 | version = "0.10.8" 1801 | source = "registry+https://github.com/rust-lang/crates.io-index" 1802 | checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" 1803 | dependencies = [ 1804 | "digest 0.10.7", 1805 | "keccak", 1806 | ] 1807 | 1808 | [[package]] 1809 | name = "signature" 1810 | version = "1.6.4" 1811 | source = "registry+https://github.com/rust-lang/crates.io-index" 1812 | checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" 1813 | 1814 | [[package]] 1815 | name = "siphasher" 1816 | version = "0.3.11" 1817 | source = "registry+https://github.com/rust-lang/crates.io-index" 1818 | checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" 1819 | 1820 | [[package]] 1821 | name = "sized-chunks" 1822 | version = "0.6.5" 1823 | source = "registry+https://github.com/rust-lang/crates.io-index" 1824 | checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" 1825 | dependencies = [ 1826 | "bitmaps", 1827 | "typenum", 1828 | ] 1829 | 1830 | [[package]] 1831 | name = "smallvec" 1832 | version = "1.13.2" 1833 | source = "registry+https://github.com/rust-lang/crates.io-index" 1834 | checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 1835 | 1836 | [[package]] 1837 | name = "solana-frozen-abi" 1838 | version = "1.18.13" 1839 | source = "registry+https://github.com/rust-lang/crates.io-index" 1840 | checksum = "9843fe4a4e4d541bd056465257704d8d53b50ed59328dcb5f37821ae0f843676" 1841 | dependencies = [ 1842 | "block-buffer 0.10.4", 1843 | "bs58 0.4.0", 1844 | "bv", 1845 | "either", 1846 | "generic-array", 1847 | "im", 1848 | "lazy_static", 1849 | "log", 1850 | "memmap2", 1851 | "rustc_version", 1852 | "serde", 1853 | "serde_bytes", 1854 | "serde_derive", 1855 | "sha2 0.10.8", 1856 | "solana-frozen-abi-macro", 1857 | "subtle", 1858 | "thiserror", 1859 | ] 1860 | 1861 | [[package]] 1862 | name = "solana-frozen-abi-macro" 1863 | version = "1.18.13" 1864 | source = "registry+https://github.com/rust-lang/crates.io-index" 1865 | checksum = "3f24edb8172842544ace0ccb9547353cc55fe4a6d3b2786e209939d3a8bf271d" 1866 | dependencies = [ 1867 | "proc-macro2", 1868 | "quote", 1869 | "rustc_version", 1870 | "syn 2.0.63", 1871 | ] 1872 | 1873 | [[package]] 1874 | name = "solana-logger" 1875 | version = "1.18.13" 1876 | source = "registry+https://github.com/rust-lang/crates.io-index" 1877 | checksum = "0a9c97300d5fd98fd490819186debfda9d47b1a5c82b5ffdb76e2ea6bad055c4" 1878 | dependencies = [ 1879 | "env_logger", 1880 | "lazy_static", 1881 | "log", 1882 | ] 1883 | 1884 | [[package]] 1885 | name = "solana-program" 1886 | version = "1.18.13" 1887 | source = "registry+https://github.com/rust-lang/crates.io-index" 1888 | checksum = "9de9a1634b9d30ca0e5c2d53806c030a5d9c07dfcc4505ebeb218206514d17b8" 1889 | dependencies = [ 1890 | "ark-bn254", 1891 | "ark-ec", 1892 | "ark-ff", 1893 | "ark-serialize", 1894 | "base64 0.21.7", 1895 | "bincode", 1896 | "bitflags", 1897 | "blake3", 1898 | "borsh 0.10.3", 1899 | "borsh 0.9.3", 1900 | "borsh 1.5.0", 1901 | "bs58 0.4.0", 1902 | "bv", 1903 | "bytemuck", 1904 | "cc", 1905 | "console_error_panic_hook", 1906 | "console_log", 1907 | "curve25519-dalek", 1908 | "getrandom 0.2.15", 1909 | "itertools", 1910 | "js-sys", 1911 | "lazy_static", 1912 | "libc", 1913 | "libsecp256k1", 1914 | "light-poseidon", 1915 | "log", 1916 | "memoffset", 1917 | "num-bigint", 1918 | "num-derive", 1919 | "num-traits", 1920 | "parking_lot", 1921 | "rand 0.8.5", 1922 | "rustc_version", 1923 | "rustversion", 1924 | "serde", 1925 | "serde_bytes", 1926 | "serde_derive", 1927 | "serde_json", 1928 | "sha2 0.10.8", 1929 | "sha3 0.10.8", 1930 | "solana-frozen-abi", 1931 | "solana-frozen-abi-macro", 1932 | "solana-sdk-macro", 1933 | "thiserror", 1934 | "tiny-bip39", 1935 | "wasm-bindgen", 1936 | "zeroize", 1937 | ] 1938 | 1939 | [[package]] 1940 | name = "solana-sdk" 1941 | version = "1.18.13" 1942 | source = "registry+https://github.com/rust-lang/crates.io-index" 1943 | checksum = "323d21f0cb307e28ccfbcb3a24a5ae230abc8176bfb82492df6773deb79b62de" 1944 | dependencies = [ 1945 | "assert_matches", 1946 | "base64 0.21.7", 1947 | "bincode", 1948 | "bitflags", 1949 | "borsh 1.5.0", 1950 | "bs58 0.4.0", 1951 | "bytemuck", 1952 | "byteorder", 1953 | "chrono", 1954 | "derivation-path", 1955 | "digest 0.10.7", 1956 | "ed25519-dalek", 1957 | "ed25519-dalek-bip32", 1958 | "generic-array", 1959 | "hmac 0.12.1", 1960 | "itertools", 1961 | "js-sys", 1962 | "lazy_static", 1963 | "libsecp256k1", 1964 | "log", 1965 | "memmap2", 1966 | "num-derive", 1967 | "num-traits", 1968 | "num_enum", 1969 | "pbkdf2 0.11.0", 1970 | "qstring", 1971 | "qualifier_attr", 1972 | "rand 0.7.3", 1973 | "rand 0.8.5", 1974 | "rustc_version", 1975 | "rustversion", 1976 | "serde", 1977 | "serde_bytes", 1978 | "serde_derive", 1979 | "serde_json", 1980 | "serde_with", 1981 | "sha2 0.10.8", 1982 | "sha3 0.10.8", 1983 | "siphasher", 1984 | "solana-frozen-abi", 1985 | "solana-frozen-abi-macro", 1986 | "solana-logger", 1987 | "solana-program", 1988 | "solana-sdk-macro", 1989 | "thiserror", 1990 | "uriparse", 1991 | "wasm-bindgen", 1992 | ] 1993 | 1994 | [[package]] 1995 | name = "solana-sdk-macro" 1996 | version = "1.18.13" 1997 | source = "registry+https://github.com/rust-lang/crates.io-index" 1998 | checksum = "ff6d088aff04f5ad17f6f4a1a84a7a6aef633d48e8ed6c12154fcbb5dfde07bd" 1999 | dependencies = [ 2000 | "bs58 0.4.0", 2001 | "proc-macro2", 2002 | "quote", 2003 | "rustversion", 2004 | "syn 2.0.63", 2005 | ] 2006 | 2007 | [[package]] 2008 | name = "solana-security-txt" 2009 | version = "1.1.1" 2010 | source = "registry+https://github.com/rust-lang/crates.io-index" 2011 | checksum = "468aa43b7edb1f9b7b7b686d5c3aeb6630dc1708e86e31343499dd5c4d775183" 2012 | 2013 | [[package]] 2014 | name = "solana-zk-token-sdk" 2015 | version = "1.18.13" 2016 | source = "registry+https://github.com/rust-lang/crates.io-index" 2017 | checksum = "c7ea6cfb74066a35ea9ad53b1108bb26f35752569bcfb3d9203f58a7bf57fac5" 2018 | dependencies = [ 2019 | "aes-gcm-siv", 2020 | "base64 0.21.7", 2021 | "bincode", 2022 | "bytemuck", 2023 | "byteorder", 2024 | "curve25519-dalek", 2025 | "getrandom 0.1.16", 2026 | "itertools", 2027 | "lazy_static", 2028 | "merlin", 2029 | "num-derive", 2030 | "num-traits", 2031 | "rand 0.7.3", 2032 | "serde", 2033 | "serde_json", 2034 | "sha3 0.9.1", 2035 | "solana-program", 2036 | "solana-sdk", 2037 | "subtle", 2038 | "thiserror", 2039 | "zeroize", 2040 | ] 2041 | 2042 | [[package]] 2043 | name = "spl-associated-token-account" 2044 | version = "3.0.2" 2045 | source = "registry+https://github.com/rust-lang/crates.io-index" 2046 | checksum = "a2e688554bac5838217ffd1fab7845c573ff106b6336bf7d290db7c98d5a8efd" 2047 | dependencies = [ 2048 | "assert_matches", 2049 | "borsh 1.5.0", 2050 | "num-derive", 2051 | "num-traits", 2052 | "solana-program", 2053 | "spl-token", 2054 | "spl-token-2022", 2055 | "thiserror", 2056 | ] 2057 | 2058 | [[package]] 2059 | name = "spl-discriminator" 2060 | version = "0.2.2" 2061 | source = "registry+https://github.com/rust-lang/crates.io-index" 2062 | checksum = "34d1814406e98b08c5cd02c1126f83fd407ad084adce0b05fda5730677822eac" 2063 | dependencies = [ 2064 | "bytemuck", 2065 | "solana-program", 2066 | "spl-discriminator-derive", 2067 | ] 2068 | 2069 | [[package]] 2070 | name = "spl-discriminator-derive" 2071 | version = "0.2.0" 2072 | source = "registry+https://github.com/rust-lang/crates.io-index" 2073 | checksum = "d9e8418ea6269dcfb01c712f0444d2c75542c04448b480e87de59d2865edc750" 2074 | dependencies = [ 2075 | "quote", 2076 | "spl-discriminator-syn", 2077 | "syn 2.0.63", 2078 | ] 2079 | 2080 | [[package]] 2081 | name = "spl-discriminator-syn" 2082 | version = "0.2.0" 2083 | source = "registry+https://github.com/rust-lang/crates.io-index" 2084 | checksum = "8c1f05593b7ca9eac7caca309720f2eafb96355e037e6d373b909a80fe7b69b9" 2085 | dependencies = [ 2086 | "proc-macro2", 2087 | "quote", 2088 | "sha2 0.10.8", 2089 | "syn 2.0.63", 2090 | "thiserror", 2091 | ] 2092 | 2093 | [[package]] 2094 | name = "spl-memo" 2095 | version = "4.0.1" 2096 | source = "registry+https://github.com/rust-lang/crates.io-index" 2097 | checksum = "58e9bae02de3405079a057fe244c867a08f92d48327d231fc60da831f94caf0a" 2098 | dependencies = [ 2099 | "solana-program", 2100 | ] 2101 | 2102 | [[package]] 2103 | name = "spl-pod" 2104 | version = "0.2.2" 2105 | source = "registry+https://github.com/rust-lang/crates.io-index" 2106 | checksum = "046ce669f48cf2eca1ec518916d8725596bfb655beb1c74374cf71dc6cb773c9" 2107 | dependencies = [ 2108 | "borsh 1.5.0", 2109 | "bytemuck", 2110 | "solana-program", 2111 | "solana-zk-token-sdk", 2112 | "spl-program-error", 2113 | ] 2114 | 2115 | [[package]] 2116 | name = "spl-program-error" 2117 | version = "0.4.1" 2118 | source = "registry+https://github.com/rust-lang/crates.io-index" 2119 | checksum = "49065093ea91f57b9b2bd81493ff705e2ad4e64507a07dbc02b085778e02770e" 2120 | dependencies = [ 2121 | "num-derive", 2122 | "num-traits", 2123 | "solana-program", 2124 | "spl-program-error-derive", 2125 | "thiserror", 2126 | ] 2127 | 2128 | [[package]] 2129 | name = "spl-program-error-derive" 2130 | version = "0.4.1" 2131 | source = "registry+https://github.com/rust-lang/crates.io-index" 2132 | checksum = "e6d375dd76c517836353e093c2dbb490938ff72821ab568b545fd30ab3256b3e" 2133 | dependencies = [ 2134 | "proc-macro2", 2135 | "quote", 2136 | "sha2 0.10.8", 2137 | "syn 2.0.63", 2138 | ] 2139 | 2140 | [[package]] 2141 | name = "spl-tlv-account-resolution" 2142 | version = "0.6.3" 2143 | source = "registry+https://github.com/rust-lang/crates.io-index" 2144 | checksum = "cace91ba08984a41556efe49cbf2edca4db2f577b649da7827d3621161784bf8" 2145 | dependencies = [ 2146 | "bytemuck", 2147 | "solana-program", 2148 | "spl-discriminator", 2149 | "spl-pod", 2150 | "spl-program-error", 2151 | "spl-type-length-value", 2152 | ] 2153 | 2154 | [[package]] 2155 | name = "spl-token" 2156 | version = "4.0.1" 2157 | source = "registry+https://github.com/rust-lang/crates.io-index" 2158 | checksum = "95ae123223633a389f95d1da9d49c2d0a50d499e7060b9624626a69e536ad2a4" 2159 | dependencies = [ 2160 | "arrayref", 2161 | "bytemuck", 2162 | "num-derive", 2163 | "num-traits", 2164 | "num_enum", 2165 | "solana-program", 2166 | "thiserror", 2167 | ] 2168 | 2169 | [[package]] 2170 | name = "spl-token-2022" 2171 | version = "3.0.2" 2172 | source = "registry+https://github.com/rust-lang/crates.io-index" 2173 | checksum = "e5412f99ae7ee6e0afde00defaa354e6228e47e30c0e3adf553e2e01e6abb584" 2174 | dependencies = [ 2175 | "arrayref", 2176 | "bytemuck", 2177 | "num-derive", 2178 | "num-traits", 2179 | "num_enum", 2180 | "solana-program", 2181 | "solana-security-txt", 2182 | "solana-zk-token-sdk", 2183 | "spl-memo", 2184 | "spl-pod", 2185 | "spl-token", 2186 | "spl-token-group-interface", 2187 | "spl-token-metadata-interface", 2188 | "spl-transfer-hook-interface", 2189 | "spl-type-length-value", 2190 | "thiserror", 2191 | ] 2192 | 2193 | [[package]] 2194 | name = "spl-token-group-interface" 2195 | version = "0.2.3" 2196 | source = "registry+https://github.com/rust-lang/crates.io-index" 2197 | checksum = "d419b5cfa3ee8e0f2386fd7e02a33b3ec8a7db4a9c7064a2ea24849dc4a273b6" 2198 | dependencies = [ 2199 | "bytemuck", 2200 | "solana-program", 2201 | "spl-discriminator", 2202 | "spl-pod", 2203 | "spl-program-error", 2204 | ] 2205 | 2206 | [[package]] 2207 | name = "spl-token-metadata-interface" 2208 | version = "0.3.3" 2209 | source = "registry+https://github.com/rust-lang/crates.io-index" 2210 | checksum = "30179c47e93625680dabb620c6e7931bd12d62af390f447bc7beb4a3a9b5feee" 2211 | dependencies = [ 2212 | "borsh 1.5.0", 2213 | "solana-program", 2214 | "spl-discriminator", 2215 | "spl-pod", 2216 | "spl-program-error", 2217 | "spl-type-length-value", 2218 | ] 2219 | 2220 | [[package]] 2221 | name = "spl-transfer-hook-interface" 2222 | version = "0.6.3" 2223 | source = "registry+https://github.com/rust-lang/crates.io-index" 2224 | checksum = "66a98359769cd988f7b35c02558daa56d496a7e3bd8626e61f90a7c757eedb9b" 2225 | dependencies = [ 2226 | "arrayref", 2227 | "bytemuck", 2228 | "solana-program", 2229 | "spl-discriminator", 2230 | "spl-pod", 2231 | "spl-program-error", 2232 | "spl-tlv-account-resolution", 2233 | "spl-type-length-value", 2234 | ] 2235 | 2236 | [[package]] 2237 | name = "spl-type-length-value" 2238 | version = "0.4.3" 2239 | source = "registry+https://github.com/rust-lang/crates.io-index" 2240 | checksum = "422ce13429dbd41d2cee8a73931c05fda0b0c8ca156a8b0c19445642550bb61a" 2241 | dependencies = [ 2242 | "bytemuck", 2243 | "solana-program", 2244 | "spl-discriminator", 2245 | "spl-pod", 2246 | "spl-program-error", 2247 | ] 2248 | 2249 | [[package]] 2250 | name = "strsim" 2251 | version = "0.10.0" 2252 | source = "registry+https://github.com/rust-lang/crates.io-index" 2253 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 2254 | 2255 | [[package]] 2256 | name = "subtle" 2257 | version = "2.4.1" 2258 | source = "registry+https://github.com/rust-lang/crates.io-index" 2259 | checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" 2260 | 2261 | [[package]] 2262 | name = "syn" 2263 | version = "1.0.109" 2264 | source = "registry+https://github.com/rust-lang/crates.io-index" 2265 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 2266 | dependencies = [ 2267 | "proc-macro2", 2268 | "quote", 2269 | "unicode-ident", 2270 | ] 2271 | 2272 | [[package]] 2273 | name = "syn" 2274 | version = "2.0.63" 2275 | source = "registry+https://github.com/rust-lang/crates.io-index" 2276 | checksum = "bf5be731623ca1a1fb7d8be6f261a3be6d3e2337b8a1f97be944d020c8fcb704" 2277 | dependencies = [ 2278 | "proc-macro2", 2279 | "quote", 2280 | "unicode-ident", 2281 | ] 2282 | 2283 | [[package]] 2284 | name = "syn_derive" 2285 | version = "0.1.8" 2286 | source = "registry+https://github.com/rust-lang/crates.io-index" 2287 | checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" 2288 | dependencies = [ 2289 | "proc-macro-error", 2290 | "proc-macro2", 2291 | "quote", 2292 | "syn 2.0.63", 2293 | ] 2294 | 2295 | [[package]] 2296 | name = "termcolor" 2297 | version = "1.4.1" 2298 | source = "registry+https://github.com/rust-lang/crates.io-index" 2299 | checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 2300 | dependencies = [ 2301 | "winapi-util", 2302 | ] 2303 | 2304 | [[package]] 2305 | name = "thiserror" 2306 | version = "1.0.60" 2307 | source = "registry+https://github.com/rust-lang/crates.io-index" 2308 | checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18" 2309 | dependencies = [ 2310 | "thiserror-impl", 2311 | ] 2312 | 2313 | [[package]] 2314 | name = "thiserror-impl" 2315 | version = "1.0.60" 2316 | source = "registry+https://github.com/rust-lang/crates.io-index" 2317 | checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524" 2318 | dependencies = [ 2319 | "proc-macro2", 2320 | "quote", 2321 | "syn 2.0.63", 2322 | ] 2323 | 2324 | [[package]] 2325 | name = "tiny-bip39" 2326 | version = "0.8.2" 2327 | source = "registry+https://github.com/rust-lang/crates.io-index" 2328 | checksum = "ffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839d" 2329 | dependencies = [ 2330 | "anyhow", 2331 | "hmac 0.8.1", 2332 | "once_cell", 2333 | "pbkdf2 0.4.0", 2334 | "rand 0.7.3", 2335 | "rustc-hash", 2336 | "sha2 0.9.9", 2337 | "thiserror", 2338 | "unicode-normalization", 2339 | "wasm-bindgen", 2340 | "zeroize", 2341 | ] 2342 | 2343 | [[package]] 2344 | name = "tinyvec" 2345 | version = "1.6.0" 2346 | source = "registry+https://github.com/rust-lang/crates.io-index" 2347 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 2348 | dependencies = [ 2349 | "tinyvec_macros", 2350 | ] 2351 | 2352 | [[package]] 2353 | name = "tinyvec_macros" 2354 | version = "0.1.1" 2355 | source = "registry+https://github.com/rust-lang/crates.io-index" 2356 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 2357 | 2358 | [[package]] 2359 | name = "toml" 2360 | version = "0.5.11" 2361 | source = "registry+https://github.com/rust-lang/crates.io-index" 2362 | checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" 2363 | dependencies = [ 2364 | "serde", 2365 | ] 2366 | 2367 | [[package]] 2368 | name = "toml" 2369 | version = "0.8.12" 2370 | source = "registry+https://github.com/rust-lang/crates.io-index" 2371 | checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" 2372 | dependencies = [ 2373 | "serde", 2374 | "serde_spanned", 2375 | "toml_datetime", 2376 | "toml_edit 0.22.12", 2377 | ] 2378 | 2379 | [[package]] 2380 | name = "toml_datetime" 2381 | version = "0.6.5" 2382 | source = "registry+https://github.com/rust-lang/crates.io-index" 2383 | checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" 2384 | dependencies = [ 2385 | "serde", 2386 | ] 2387 | 2388 | [[package]] 2389 | name = "toml_edit" 2390 | version = "0.21.1" 2391 | source = "registry+https://github.com/rust-lang/crates.io-index" 2392 | checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" 2393 | dependencies = [ 2394 | "indexmap", 2395 | "toml_datetime", 2396 | "winnow 0.5.40", 2397 | ] 2398 | 2399 | [[package]] 2400 | name = "toml_edit" 2401 | version = "0.22.12" 2402 | source = "registry+https://github.com/rust-lang/crates.io-index" 2403 | checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef" 2404 | dependencies = [ 2405 | "indexmap", 2406 | "serde", 2407 | "serde_spanned", 2408 | "toml_datetime", 2409 | "winnow 0.6.8", 2410 | ] 2411 | 2412 | [[package]] 2413 | name = "typenum" 2414 | version = "1.17.0" 2415 | source = "registry+https://github.com/rust-lang/crates.io-index" 2416 | checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 2417 | 2418 | [[package]] 2419 | name = "unicode-ident" 2420 | version = "1.0.12" 2421 | source = "registry+https://github.com/rust-lang/crates.io-index" 2422 | checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" 2423 | 2424 | [[package]] 2425 | name = "unicode-normalization" 2426 | version = "0.1.23" 2427 | source = "registry+https://github.com/rust-lang/crates.io-index" 2428 | checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" 2429 | dependencies = [ 2430 | "tinyvec", 2431 | ] 2432 | 2433 | [[package]] 2434 | name = "unicode-segmentation" 2435 | version = "1.11.0" 2436 | source = "registry+https://github.com/rust-lang/crates.io-index" 2437 | checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" 2438 | 2439 | [[package]] 2440 | name = "universal-hash" 2441 | version = "0.4.1" 2442 | source = "registry+https://github.com/rust-lang/crates.io-index" 2443 | checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" 2444 | dependencies = [ 2445 | "generic-array", 2446 | "subtle", 2447 | ] 2448 | 2449 | [[package]] 2450 | name = "uriparse" 2451 | version = "0.6.4" 2452 | source = "registry+https://github.com/rust-lang/crates.io-index" 2453 | checksum = "0200d0fc04d809396c2ad43f3c95da3582a2556eba8d453c1087f4120ee352ff" 2454 | dependencies = [ 2455 | "fnv", 2456 | "lazy_static", 2457 | ] 2458 | 2459 | [[package]] 2460 | name = "version_check" 2461 | version = "0.9.4" 2462 | source = "registry+https://github.com/rust-lang/crates.io-index" 2463 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 2464 | 2465 | [[package]] 2466 | name = "wasi" 2467 | version = "0.9.0+wasi-snapshot-preview1" 2468 | source = "registry+https://github.com/rust-lang/crates.io-index" 2469 | checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" 2470 | 2471 | [[package]] 2472 | name = "wasi" 2473 | version = "0.11.0+wasi-snapshot-preview1" 2474 | source = "registry+https://github.com/rust-lang/crates.io-index" 2475 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 2476 | 2477 | [[package]] 2478 | name = "wasm-bindgen" 2479 | version = "0.2.92" 2480 | source = "registry+https://github.com/rust-lang/crates.io-index" 2481 | checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" 2482 | dependencies = [ 2483 | "cfg-if", 2484 | "wasm-bindgen-macro", 2485 | ] 2486 | 2487 | [[package]] 2488 | name = "wasm-bindgen-backend" 2489 | version = "0.2.92" 2490 | source = "registry+https://github.com/rust-lang/crates.io-index" 2491 | checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" 2492 | dependencies = [ 2493 | "bumpalo", 2494 | "log", 2495 | "once_cell", 2496 | "proc-macro2", 2497 | "quote", 2498 | "syn 2.0.63", 2499 | "wasm-bindgen-shared", 2500 | ] 2501 | 2502 | [[package]] 2503 | name = "wasm-bindgen-macro" 2504 | version = "0.2.92" 2505 | source = "registry+https://github.com/rust-lang/crates.io-index" 2506 | checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" 2507 | dependencies = [ 2508 | "quote", 2509 | "wasm-bindgen-macro-support", 2510 | ] 2511 | 2512 | [[package]] 2513 | name = "wasm-bindgen-macro-support" 2514 | version = "0.2.92" 2515 | source = "registry+https://github.com/rust-lang/crates.io-index" 2516 | checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" 2517 | dependencies = [ 2518 | "proc-macro2", 2519 | "quote", 2520 | "syn 2.0.63", 2521 | "wasm-bindgen-backend", 2522 | "wasm-bindgen-shared", 2523 | ] 2524 | 2525 | [[package]] 2526 | name = "wasm-bindgen-shared" 2527 | version = "0.2.92" 2528 | source = "registry+https://github.com/rust-lang/crates.io-index" 2529 | checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" 2530 | 2531 | [[package]] 2532 | name = "web-sys" 2533 | version = "0.3.69" 2534 | source = "registry+https://github.com/rust-lang/crates.io-index" 2535 | checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" 2536 | dependencies = [ 2537 | "js-sys", 2538 | "wasm-bindgen", 2539 | ] 2540 | 2541 | [[package]] 2542 | name = "winapi" 2543 | version = "0.3.9" 2544 | source = "registry+https://github.com/rust-lang/crates.io-index" 2545 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 2546 | dependencies = [ 2547 | "winapi-i686-pc-windows-gnu", 2548 | "winapi-x86_64-pc-windows-gnu", 2549 | ] 2550 | 2551 | [[package]] 2552 | name = "winapi-i686-pc-windows-gnu" 2553 | version = "0.4.0" 2554 | source = "registry+https://github.com/rust-lang/crates.io-index" 2555 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2556 | 2557 | [[package]] 2558 | name = "winapi-util" 2559 | version = "0.1.8" 2560 | source = "registry+https://github.com/rust-lang/crates.io-index" 2561 | checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" 2562 | dependencies = [ 2563 | "windows-sys", 2564 | ] 2565 | 2566 | [[package]] 2567 | name = "winapi-x86_64-pc-windows-gnu" 2568 | version = "0.4.0" 2569 | source = "registry+https://github.com/rust-lang/crates.io-index" 2570 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2571 | 2572 | [[package]] 2573 | name = "windows-sys" 2574 | version = "0.52.0" 2575 | source = "registry+https://github.com/rust-lang/crates.io-index" 2576 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 2577 | dependencies = [ 2578 | "windows-targets", 2579 | ] 2580 | 2581 | [[package]] 2582 | name = "windows-targets" 2583 | version = "0.52.5" 2584 | source = "registry+https://github.com/rust-lang/crates.io-index" 2585 | checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" 2586 | dependencies = [ 2587 | "windows_aarch64_gnullvm", 2588 | "windows_aarch64_msvc", 2589 | "windows_i686_gnu", 2590 | "windows_i686_gnullvm", 2591 | "windows_i686_msvc", 2592 | "windows_x86_64_gnu", 2593 | "windows_x86_64_gnullvm", 2594 | "windows_x86_64_msvc", 2595 | ] 2596 | 2597 | [[package]] 2598 | name = "windows_aarch64_gnullvm" 2599 | version = "0.52.5" 2600 | source = "registry+https://github.com/rust-lang/crates.io-index" 2601 | checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" 2602 | 2603 | [[package]] 2604 | name = "windows_aarch64_msvc" 2605 | version = "0.52.5" 2606 | source = "registry+https://github.com/rust-lang/crates.io-index" 2607 | checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" 2608 | 2609 | [[package]] 2610 | name = "windows_i686_gnu" 2611 | version = "0.52.5" 2612 | source = "registry+https://github.com/rust-lang/crates.io-index" 2613 | checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" 2614 | 2615 | [[package]] 2616 | name = "windows_i686_gnullvm" 2617 | version = "0.52.5" 2618 | source = "registry+https://github.com/rust-lang/crates.io-index" 2619 | checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" 2620 | 2621 | [[package]] 2622 | name = "windows_i686_msvc" 2623 | version = "0.52.5" 2624 | source = "registry+https://github.com/rust-lang/crates.io-index" 2625 | checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" 2626 | 2627 | [[package]] 2628 | name = "windows_x86_64_gnu" 2629 | version = "0.52.5" 2630 | source = "registry+https://github.com/rust-lang/crates.io-index" 2631 | checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" 2632 | 2633 | [[package]] 2634 | name = "windows_x86_64_gnullvm" 2635 | version = "0.52.5" 2636 | source = "registry+https://github.com/rust-lang/crates.io-index" 2637 | checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" 2638 | 2639 | [[package]] 2640 | name = "windows_x86_64_msvc" 2641 | version = "0.52.5" 2642 | source = "registry+https://github.com/rust-lang/crates.io-index" 2643 | checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" 2644 | 2645 | [[package]] 2646 | name = "winnow" 2647 | version = "0.5.40" 2648 | source = "registry+https://github.com/rust-lang/crates.io-index" 2649 | checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" 2650 | dependencies = [ 2651 | "memchr", 2652 | ] 2653 | 2654 | [[package]] 2655 | name = "winnow" 2656 | version = "0.6.8" 2657 | source = "registry+https://github.com/rust-lang/crates.io-index" 2658 | checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d" 2659 | dependencies = [ 2660 | "memchr", 2661 | ] 2662 | 2663 | [[package]] 2664 | name = "zerocopy" 2665 | version = "0.7.34" 2666 | source = "registry+https://github.com/rust-lang/crates.io-index" 2667 | checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" 2668 | dependencies = [ 2669 | "zerocopy-derive", 2670 | ] 2671 | 2672 | [[package]] 2673 | name = "zerocopy-derive" 2674 | version = "0.7.34" 2675 | source = "registry+https://github.com/rust-lang/crates.io-index" 2676 | checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" 2677 | dependencies = [ 2678 | "proc-macro2", 2679 | "quote", 2680 | "syn 2.0.63", 2681 | ] 2682 | 2683 | [[package]] 2684 | name = "zeroize" 2685 | version = "1.3.0" 2686 | source = "registry+https://github.com/rust-lang/crates.io-index" 2687 | checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" 2688 | dependencies = [ 2689 | "zeroize_derive", 2690 | ] 2691 | 2692 | [[package]] 2693 | name = "zeroize_derive" 2694 | version = "1.4.2" 2695 | source = "registry+https://github.com/rust-lang/crates.io-index" 2696 | checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" 2697 | dependencies = [ 2698 | "proc-macro2", 2699 | "quote", 2700 | "syn 2.0.63", 2701 | ] 2702 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | members = [ 3 | "programs/*" 4 | ] 5 | resolver = "2" 6 | 7 | [profile.release] 8 | overflow-checks = true 9 | lto = "fat" 10 | codegen-units = 1 11 | [profile.release.build-override] 12 | opt-level = 3 13 | incremental = false 14 | codegen-units = 1 15 | -------------------------------------------------------------------------------- /migrations/deploy.ts: -------------------------------------------------------------------------------- 1 | // Migrations are an early feature. Currently, they're nothing more than this 2 | // single deploy script that's invoked from the CLI, injecting a provider 3 | // configured from the workspace's Anchor.toml. 4 | 5 | const anchor = require("@coral-xyz/anchor"); 6 | 7 | module.exports = async function (provider) { 8 | // Configure client to use the provider. 9 | anchor.setProvider(provider); 10 | 11 | // Add your deploy script here. 12 | }; 13 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "lint:fix": "prettier */*.js \"*/**/*{.js,.ts}\" -w", 4 | "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" 5 | }, 6 | "dependencies": { 7 | "@coral-xyz/anchor": "^0.30.0", 8 | "@solana/spl-token": "^0.4.6", 9 | "@solana/web3.js": "^1.91.8" 10 | }, 11 | "devDependencies": { 12 | "@types/bn.js": "^5.1.5", 13 | "@types/chai": "^4.3.16", 14 | "@types/mocha": "^10.0.6", 15 | "chai": "^5.1.1", 16 | "mocha": "^10.4.0", 17 | "prettier": "^3.2.5", 18 | "ts-mocha": "^10.0.0", 19 | "typescript": "^5.4.5" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /programs/anchor-escrow/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "anchor-escrow" 3 | version = "0.1.0" 4 | description = "Created with Anchor" 5 | edition = "2021" 6 | 7 | [lib] 8 | crate-type = ["cdylib", "lib"] 9 | name = "anchor_escrow" 10 | 11 | [features] 12 | default = [] 13 | cpi = ["no-entrypoint"] 14 | no-entrypoint = [] 15 | no-idl = [] 16 | no-log-ix-name = [] 17 | idl-build = ["anchor-lang/idl-build", "anchor-spl/idl-build"] 18 | 19 | [dependencies] 20 | anchor-lang = { version = "0.30.0", features = ["init-if-needed"]} 21 | anchor-spl = "0.30.0" 22 | solana-program = "1.18.13" 23 | # Solana dependency tree fixes 24 | ahash = "=0.8.11" -------------------------------------------------------------------------------- /programs/anchor-escrow/Xargo.toml: -------------------------------------------------------------------------------- 1 | [target.bpfel-unknown-unknown.dependencies.std] 2 | features = [] 3 | -------------------------------------------------------------------------------- /programs/anchor-escrow/src/contexts/make.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::*; 2 | 3 | use anchor_spl::{ 4 | associated_token::AssociatedToken, 5 | token_interface::{transfer_checked, Mint, TokenAccount, TokenInterface, TransferChecked}, 6 | }; 7 | 8 | use crate::Escrow; 9 | 10 | #[derive(Accounts)] 11 | #[instruction(seed: u64)] 12 | pub struct Make<'info> { 13 | #[account(mut)] 14 | pub maker: Signer<'info>, 15 | #[account( 16 | mint::token_program = token_program 17 | )] 18 | pub mint_a: InterfaceAccount<'info, Mint>, 19 | #[account( 20 | mint::token_program = token_program 21 | )] 22 | pub mint_b: InterfaceAccount<'info, Mint>, 23 | #[account( 24 | mut, 25 | associated_token::mint = mint_a, 26 | associated_token::authority = maker, 27 | associated_token::token_program = token_program 28 | )] 29 | pub maker_ata_a: InterfaceAccount<'info, TokenAccount>, 30 | #[account( 31 | init, 32 | payer = maker, 33 | space = 8 + Escrow::INIT_SPACE, 34 | seeds = [b"escrow", maker.key().as_ref(), seed.to_le_bytes().as_ref()], 35 | bump 36 | )] 37 | pub escrow: Account<'info, Escrow>, 38 | #[account( 39 | init, 40 | payer = maker, 41 | associated_token::mint = mint_a, 42 | associated_token::authority = escrow, 43 | associated_token::token_program = token_program 44 | )] 45 | pub vault: InterfaceAccount<'info, TokenAccount>, 46 | pub associated_token_program: Program<'info, AssociatedToken>, 47 | pub token_program: Interface<'info, TokenInterface>, 48 | pub system_program: Program<'info, System>, 49 | } 50 | 51 | impl<'info> Make<'info> { 52 | pub fn save_escrow(&mut self, seed: u64, receive: u64, bumps: &MakeBumps) -> Result<()> { 53 | self.escrow.set_inner(Escrow { 54 | seed, 55 | maker: self.maker.key(), 56 | mint_a: self.mint_a.key(), 57 | mint_b: self.mint_b.key(), 58 | receive, 59 | bump: bumps.escrow, 60 | }); 61 | Ok(()) 62 | } 63 | 64 | pub fn deposit(&mut self, deposit: u64) -> Result<()> { 65 | let transfer_accounts = TransferChecked { 66 | from: self.maker_ata_a.to_account_info(), 67 | mint: self.mint_a.to_account_info(), 68 | to: self.vault.to_account_info(), 69 | authority: self.maker.to_account_info(), 70 | }; 71 | 72 | let cpi_ctx = CpiContext::new(self.token_program.to_account_info(), transfer_accounts); 73 | 74 | transfer_checked(cpi_ctx, deposit, self.mint_a.decimals) 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /programs/anchor-escrow/src/contexts/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod make; 2 | pub use make::*; 3 | 4 | pub mod refund; 5 | pub use refund::*; 6 | 7 | pub mod take; 8 | pub use take::*; 9 | -------------------------------------------------------------------------------- /programs/anchor-escrow/src/contexts/refund.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::*; 2 | 3 | use anchor_spl::{ 4 | associated_token::AssociatedToken, 5 | token_interface::{ 6 | close_account, transfer_checked, CloseAccount, Mint, TokenAccount, TokenInterface, 7 | TransferChecked, 8 | }, 9 | }; 10 | 11 | use crate::Escrow; 12 | 13 | #[derive(Accounts)] 14 | pub struct Refund<'info> { 15 | #[account(mut)] 16 | maker: Signer<'info>, 17 | mint_a: InterfaceAccount<'info, Mint>, 18 | #[account( 19 | mut, 20 | associated_token::mint = mint_a, 21 | associated_token::authority = maker, 22 | associated_token::token_program = token_program 23 | )] 24 | maker_ata_a: InterfaceAccount<'info, TokenAccount>, 25 | #[account( 26 | mut, 27 | close = maker, 28 | has_one = mint_a, 29 | has_one = maker, 30 | seeds = [b"escrow", maker.key().as_ref(), escrow.seed.to_le_bytes().as_ref()], 31 | bump = escrow.bump 32 | )] 33 | escrow: Account<'info, Escrow>, 34 | #[account( 35 | mut, 36 | associated_token::mint = mint_a, 37 | associated_token::authority = escrow, 38 | associated_token::token_program = token_program 39 | )] 40 | pub vault: InterfaceAccount<'info, TokenAccount>, 41 | associated_token_program: Program<'info, AssociatedToken>, 42 | token_program: Interface<'info, TokenInterface>, 43 | system_program: Program<'info, System>, 44 | } 45 | 46 | impl<'info> Refund<'info> { 47 | pub fn refund_and_close_vault(&mut self) -> Result<()> { 48 | let signer_seeds: [&[&[u8]]; 1] = [&[ 49 | b"escrow", 50 | self.maker.to_account_info().key.as_ref(), 51 | &self.escrow.seed.to_le_bytes()[..], 52 | &[self.escrow.bump], 53 | ]]; 54 | 55 | let xfer_accounts = TransferChecked { 56 | from: self.vault.to_account_info(), 57 | mint: self.mint_a.to_account_info(), 58 | to: self.maker_ata_a.to_account_info(), 59 | authority: self.escrow.to_account_info(), 60 | }; 61 | 62 | let ctx = CpiContext::new_with_signer( 63 | self.token_program.to_account_info(), 64 | xfer_accounts, 65 | &signer_seeds, 66 | ); 67 | 68 | transfer_checked(ctx, self.vault.amount, self.mint_a.decimals)?; 69 | 70 | let close_accounts = CloseAccount { 71 | account: self.vault.to_account_info(), 72 | destination: self.maker.to_account_info(), 73 | authority: self.escrow.to_account_info(), 74 | }; 75 | 76 | let ctx = CpiContext::new_with_signer( 77 | self.token_program.to_account_info(), 78 | close_accounts, 79 | &signer_seeds, 80 | ); 81 | 82 | close_account(ctx) 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /programs/anchor-escrow/src/contexts/take.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::*; 2 | 3 | use anchor_spl::{ 4 | associated_token::AssociatedToken, 5 | token_interface::{close_account, transfer_checked, Mint, TokenAccount, TokenInterface, CloseAccount, TransferChecked}, 6 | }; 7 | 8 | use crate::Escrow; 9 | 10 | #[derive(Accounts)] 11 | pub struct Take<'info> { 12 | #[account(mut)] 13 | pub taker: Signer<'info>, 14 | #[account(mut)] 15 | pub maker: SystemAccount<'info>, 16 | pub mint_a: InterfaceAccount<'info, Mint>, 17 | pub mint_b: InterfaceAccount<'info, Mint>, 18 | #[account( 19 | init_if_needed, 20 | payer = taker, 21 | associated_token::mint = mint_a, 22 | associated_token::authority = taker, 23 | associated_token::token_program = token_program, 24 | )] 25 | pub taker_ata_a: Box>, 26 | #[account( 27 | mut, 28 | associated_token::mint = mint_b, 29 | associated_token::authority = taker, 30 | associated_token::token_program = token_program, 31 | )] 32 | pub taker_ata_b: Box>, 33 | #[account( 34 | init_if_needed, 35 | payer = taker, 36 | associated_token::mint = mint_b, 37 | associated_token::authority = maker, 38 | associated_token::token_program = token_program, 39 | )] 40 | pub maker_ata_b: Box>, 41 | #[account( 42 | mut, 43 | close = maker, 44 | has_one = maker, 45 | has_one = mint_a, 46 | has_one = mint_b, 47 | seeds = [b"escrow", maker.key().as_ref(), escrow.seed.to_le_bytes().as_ref()], 48 | bump = escrow.bump 49 | )] 50 | escrow: Account<'info, Escrow>, 51 | #[account( 52 | mut, 53 | associated_token::mint = mint_a, 54 | associated_token::authority = escrow, 55 | associated_token::token_program = token_program, 56 | )] 57 | pub vault: InterfaceAccount<'info, TokenAccount>, 58 | pub associated_token_program: Program<'info, AssociatedToken>, 59 | pub token_program: Interface<'info, TokenInterface>, 60 | pub system_program: Program<'info, System>, 61 | } 62 | 63 | impl<'info> Take<'info> { 64 | pub fn deposit(&mut self) -> Result<()> { 65 | let transfer_accounts = TransferChecked { 66 | from: self.taker_ata_b.to_account_info(), 67 | mint: self.mint_b.to_account_info(), 68 | to: self.maker_ata_b.to_account_info(), 69 | authority: self.taker.to_account_info(), 70 | }; 71 | 72 | let cpi_ctx = CpiContext::new(self.token_program.to_account_info(), transfer_accounts); 73 | 74 | transfer_checked(cpi_ctx, self.escrow.receive, self.mint_b.decimals) 75 | } 76 | 77 | pub fn withdraw_and_close_vault(&mut self) -> Result<()> { 78 | let signer_seeds: [&[&[u8]]; 1] = [&[ 79 | b"escrow", 80 | self.maker.to_account_info().key.as_ref(), 81 | &self.escrow.seed.to_le_bytes()[..], 82 | &[self.escrow.bump], 83 | ]]; 84 | 85 | let accounts = TransferChecked { 86 | from: self.vault.to_account_info(), 87 | mint: self.mint_a.to_account_info(), 88 | to: self.taker_ata_a.to_account_info(), 89 | authority: self.escrow.to_account_info(), 90 | }; 91 | 92 | let ctx = CpiContext::new_with_signer( 93 | self.token_program.to_account_info(), 94 | accounts, 95 | &signer_seeds, 96 | ); 97 | 98 | transfer_checked(ctx, self.vault.amount, self.mint_a.decimals)?; 99 | 100 | let accounts = CloseAccount { 101 | account: self.vault.to_account_info(), 102 | destination: self.taker.to_account_info(), 103 | authority: self.escrow.to_account_info(), 104 | }; 105 | 106 | let ctx = CpiContext::new_with_signer( 107 | self.token_program.to_account_info(), 108 | accounts, 109 | &signer_seeds, 110 | ); 111 | 112 | close_account(ctx) 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /programs/anchor-escrow/src/lib.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::*; 2 | 3 | pub mod contexts; 4 | use contexts::*; 5 | 6 | pub mod state; 7 | pub use state::*; 8 | 9 | declare_id!("6BLPdL9narQPFQsqS7AXuRBRS4VoyKmHHzdwkgnLaAps"); 10 | 11 | #[program] 12 | pub mod anchor_escrow { 13 | use super::*; 14 | 15 | pub fn make(ctx: Context, seed: u64, deposit: u64, receive: u64) -> Result<()> { 16 | ctx.accounts.deposit(deposit)?; 17 | ctx.accounts.save_escrow(seed, receive, &ctx.bumps) 18 | } 19 | 20 | pub fn refund(ctx: Context) -> Result<()> { 21 | ctx.accounts.refund_and_close_vault() 22 | } 23 | 24 | pub fn take(ctx: Context) -> Result<()> { 25 | ctx.accounts.deposit()?; 26 | ctx.accounts.withdraw_and_close_vault() 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /programs/anchor-escrow/src/state.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::*; 2 | 3 | #[account] 4 | #[derive(InitSpace)] 5 | pub struct Escrow { 6 | pub seed: u64, 7 | pub maker: Pubkey, 8 | pub mint_a: Pubkey, 9 | pub mint_b: Pubkey, 10 | pub receive: u64, 11 | pub bump: u8, 12 | } -------------------------------------------------------------------------------- /readme.MD: -------------------------------------------------------------------------------- 1 | # Anchor Escrow 2 | 3 | This example demonstrates how to create an smart contract that holds funds until a certain condition is met. In this example, the condition is that the escrow account has received a certain amount of funds. Once the condition is met, the funds are released. 4 | 5 | --- 6 | 7 | ## Let's walk through the architecture: 8 | 9 | For this program, we will have one state account, the escrow account: 10 | 11 | ```rust 12 | #[account] 13 | #[derive(InitSpace)] 14 | pub struct Escrow { 15 | pub seed: u64, 16 | pub maker: Pubkey, 17 | pub mint_a: Pubkey, 18 | pub mint_b: Pubkey, 19 | pub receive: u64, 20 | pub bump: u8, 21 | } 22 | ``` 23 | 24 | The escrow account will hold the following data: 25 | 26 | - `seed`: A random number used to generate the escrow account's address. This allows each user to create multiple escrow accounts. 27 | - `maker`: The account that created the escrow account. 28 | - `mint_a`: The mint of the first token. 29 | - `mint_b`: The mint of the second token. 30 | - `receive`: The amount of tokens that need to be received before the funds are released. 31 | - `bump`: Since our Escrow account will be a PDA, we will store the bump of the account. 32 | 33 | --- 34 | 35 | ## The user will be able to create an escrow account. For that, we create the following context: 36 | 37 | ```rust 38 | #[derive(Accounts)] 39 | #[instruction(seed: u64)] 40 | pub struct Make<'info> { 41 | #[account(mut)] 42 | pub maker: Signer<'info>, 43 | #[account( 44 | mint::token_program = token_program 45 | )] 46 | pub mint_a: InterfaceAccount<'info, Mint>, 47 | #[account( 48 | mint::token_program = token_program 49 | )] 50 | pub mint_b: InterfaceAccount<'info, Mint>, 51 | #[account( 52 | mut, 53 | associated_token::mint = mint_a, 54 | associated_token::authority = maker, 55 | associated_token::token_program = token_program 56 | )] 57 | pub maker_ata_a: InterfaceAccount<'info, TokenAccount>, 58 | #[account( 59 | init, 60 | payer = maker, 61 | space = 8 + Escrow::INIT_SPACE, 62 | seeds = [b"escrow", maker.key().as_ref(), seed.to_le_bytes().as_ref()], 63 | bump 64 | )] 65 | pub escrow: Account<'info, Escrow>, 66 | #[account( 67 | init, 68 | payer = maker, 69 | associated_token::mint = mint_a, 70 | associated_token::authority = escrow, 71 | associated_token::token_program = token_program 72 | )] 73 | pub vault: InterfaceAccount<'info, TokenAccount>, 74 | pub associated_token_program: Program<'info, AssociatedToken>, 75 | pub token_program: Interface<'info, TokenInterface>, 76 | pub system_program: Program<'info, System>, 77 | } 78 | ``` 79 | 80 | Let´s have a closer look at the accounts that we are passing in this context: 81 | 82 | - `maker`: The account that is creating the escrow account. 83 | - `mint_a`: The mint of the first token. 84 | - `mint_b`: The mint of the second token. 85 | - `maker_ata_a`: The associated token account of the maker for the first token. 86 | - `escrow`: The escrow account that will hold the escrow state. 87 | - `vault`: The vault account that will hold the funds until the condition is met. 88 | - `associated_token_program`: The associated token program. 89 | - `token_program`: The token program. 90 | - `system_program`: The system program. 91 | 92 | ## We then implement some functionality for our Initialize context: 93 | 94 | ```rust 95 | impl<'info> Make<'info> { 96 | pub fn save_escrow(&mut self, seed: u64, receive: u64, bumps: &MakeBumps) -> Result<()> { 97 | self.escrow.set_inner(Escrow { 98 | seed, 99 | maker: self.maker.key(), 100 | mint_a: self.mint_a.key(), 101 | mint_b: self.mint_b.key(), 102 | receive, 103 | bump: bumps.escrow, 104 | }); 105 | Ok(()) 106 | } 107 | 108 | pub fn deposit(&mut self, deposit: u64) -> Result<()> { 109 | let transfer_accounts = TransferChecked { 110 | from: self.maker_ata_a.to_account_info(), 111 | mint: self.mint_a.to_account_info(), 112 | to: self.vault.to_account_info(), 113 | authority: self.maker.to_account_info(), 114 | }; 115 | 116 | let cpi_ctx = CpiContext::new(self.token_program.to_account_info(), transfer_accounts); 117 | 118 | transfer_checked(cpi_ctx, deposit, self.mint_a.decimals) 119 | } 120 | } 121 | ``` 122 | In the `save_escrow` function, we set the escrow account's data. In the `deposit` function, we transfer tokens from the maker's associated token account to the vault account. 123 | 124 | --- 125 | 126 | ## The maker of an escrow can refund the funds and close the escrow account. For that, we create the following context: 127 | 128 | ```rust 129 | #[derive(Accounts)] 130 | pub struct Refund<'info> { 131 | #[account(mut)] 132 | maker: Signer<'info>, 133 | mint_a: InterfaceAccount<'info, Mint>, 134 | #[account( 135 | mut, 136 | associated_token::mint = mint_a, 137 | associated_token::authority = maker, 138 | associated_token::token_program = token_program 139 | )] 140 | maker_ata_a: InterfaceAccount<'info, TokenAccount>, 141 | #[account( 142 | mut, 143 | close = maker, 144 | has_one = mint_a, 145 | has_one = maker, 146 | seeds = [b"escrow", maker.key().as_ref(), escrow.seed.to_le_bytes().as_ref()], 147 | bump = escrow.bump 148 | )] 149 | escrow: Account<'info, Escrow>, 150 | #[account( 151 | mut, 152 | associated_token::mint = mint_a, 153 | associated_token::authority = escrow, 154 | associated_token::token_program = token_program 155 | )] 156 | pub vault: InterfaceAccount<'info, TokenAccount>, 157 | associated_token_program: Program<'info, AssociatedToken>, 158 | token_program: Interface<'info, TokenInterface>, 159 | system_program: Program<'info, System>, 160 | } 161 | ``` 162 | In this context, we are passing all the accounts that we need to refund the funds and close the escrow account: 163 | 164 | - `maker`: The account that is refunding the funds and closing the escrow account. 165 | - `mint_a`: The mint of the first token. 166 | - `maker_ata_a`: The associated token account of the maker for the first token. 167 | - `escrow`: The escrow account that holds the escrow state. 168 | - `vault`: The vault account that holds the funds until the condition is met. 169 | - `associated_token_program`: The associated token program. 170 | - `token_program`: The token program. 171 | - `system_program`: The system program. 172 | 173 | ## We then implement some functionality for our Refund context: 174 | 175 | ```rust 176 | impl<'info> Refund<'info> { 177 | pub fn refund_and_close_vault(&mut self) -> Result<()> { 178 | let signer_seeds: [&[&[u8]]; 1] = [&[ 179 | b"escrow", 180 | self.maker.to_account_info().key.as_ref(), 181 | &self.escrow.seed.to_le_bytes()[..], 182 | &[self.escrow.bump], 183 | ]]; 184 | 185 | let xfer_accounts = TransferChecked { 186 | from: self.vault.to_account_info(), 187 | mint: self.mint_a.to_account_info(), 188 | to: self.maker_ata_a.to_account_info(), 189 | authority: self.escrow.to_account_info(), 190 | }; 191 | 192 | let ctx = CpiContext::new_with_signer( 193 | self.token_program.to_account_info(), 194 | xfer_accounts, 195 | &signer_seeds, 196 | ); 197 | 198 | transfer_checked(ctx, self.vault.amount, self.mint_a.decimals)?; 199 | 200 | let close_accounts = CloseAccount { 201 | account: self.vault.to_account_info(), 202 | destination: self.maker.to_account_info(), 203 | authority: self.escrow.to_account_info(), 204 | }; 205 | 206 | let ctx = CpiContext::new_with_signer( 207 | self.token_program.to_account_info(), 208 | close_accounts, 209 | &signer_seeds, 210 | ); 211 | 212 | close_account(ctx) 213 | } 214 | } 215 | ``` 216 | In the `refund_and_close_vault` function, we transfer the funds from the vault account to the maker's associated token account and then close the vault account. 217 | Since the transfer occurs from a PDA, we need to pass the seeds to the transfer_checked function. 218 | 219 | --- 220 | 221 | ## The Taker of an escrow can deposit funds and recieve the founds that the maker deposited. For that, we create the following context: 222 | 223 | ```rust 224 | #[derive(Accounts)] 225 | pub struct Take<'info> { 226 | #[account(mut)] 227 | pub taker: Signer<'info>, 228 | #[account(mut)] 229 | pub maker: SystemAccount<'info>, 230 | pub mint_a: InterfaceAccount<'info, Mint>, 231 | pub mint_b: InterfaceAccount<'info, Mint>, 232 | #[account( 233 | init_if_needed, 234 | payer = taker, 235 | associated_token::mint = mint_a, 236 | associated_token::authority = taker, 237 | associated_token::token_program = token_program, 238 | )] 239 | pub taker_ata_a: Box>, 240 | #[account( 241 | mut, 242 | associated_token::mint = mint_b, 243 | associated_token::authority = taker, 244 | associated_token::token_program = token_program, 245 | )] 246 | pub taker_ata_b: Box>, 247 | #[account( 248 | init_if_needed, 249 | payer = taker, 250 | associated_token::mint = mint_b, 251 | associated_token::authority = maker, 252 | associated_token::token_program = token_program, 253 | )] 254 | pub maker_ata_b: Box>, 255 | #[account( 256 | mut, 257 | close = maker, 258 | has_one = maker, 259 | has_one = mint_a, 260 | has_one = mint_b, 261 | seeds = [b"escrow", maker.key().as_ref(), escrow.seed.to_le_bytes().as_ref()], 262 | bump = escrow.bump 263 | )] 264 | escrow: Account<'info, Escrow>, 265 | #[account( 266 | mut, 267 | associated_token::mint = mint_a, 268 | associated_token::authority = escrow, 269 | associated_token::token_program = token_program, 270 | )] 271 | pub vault: InterfaceAccount<'info, TokenAccount>, 272 | pub associated_token_program: Program<'info, AssociatedToken>, 273 | pub token_program: Interface<'info, TokenInterface>, 274 | pub system_program: Program<'info, System>, 275 | } 276 | ``` 277 | 278 | In this context, we are passing all the accounts that we need to deposit funds and receive the funds that the maker deposited: 279 | 280 | - `taker`: The account that is depositing funds and receiving the funds that the maker deposited. 281 | - `maker`: The account that created the escrow account. 282 | - `mint_a`: The mint of the first token. 283 | - `mint_b`: The mint of the second token. 284 | - `taker_ata_a`: The associated token account of the taker for the first token. 285 | - `taker_ata_b`: The associated token account of the taker for the second token. 286 | - `maker_ata_b`: The associated token account of the maker for the second token. 287 | - `escrow`: The escrow account that holds the escrow state. 288 | - `vault`: The vault account that holds the funds until the condition is met. 289 | - `associated_token_program`: The associated token program. 290 | - `token_program`: The token program. 291 | - `system_program`: The system program. 292 | 293 | ## We then implement some functionality for our Take context: 294 | 295 | ```rust 296 | impl<'info> Take<'info> { 297 | pub fn deposit(&mut self) -> Result<()> { 298 | let transfer_accounts = TransferChecked { 299 | from: self.taker_ata_b.to_account_info(), 300 | mint: self.mint_b.to_account_info(), 301 | to: self.maker_ata_b.to_account_info(), 302 | authority: self.taker.to_account_info(), 303 | }; 304 | 305 | let cpi_ctx = CpiContext::new(self.token_program.to_account_info(), transfer_accounts); 306 | 307 | transfer_checked(cpi_ctx, self.escrow.receive, self.mint_b.decimals) 308 | } 309 | 310 | pub fn withdraw_and_close_vault(&mut self) -> Result<()> { 311 | let signer_seeds: [&[&[u8]]; 1] = [&[ 312 | b"escrow", 313 | self.maker.to_account_info().key.as_ref(), 314 | &self.escrow.seed.to_le_bytes()[..], 315 | &[self.escrow.bump], 316 | ]]; 317 | 318 | let accounts = TransferChecked { 319 | from: self.vault.to_account_info(), 320 | mint: self.mint_a.to_account_info(), 321 | to: self.taker_ata_a.to_account_info(), 322 | authority: self.escrow.to_account_info(), 323 | }; 324 | 325 | let ctx = CpiContext::new_with_signer( 326 | self.token_program.to_account_info(), 327 | accounts, 328 | &signer_seeds, 329 | ); 330 | 331 | transfer_checked(ctx, self.vault.amount, self.mint_a.decimals)?; 332 | 333 | let accounts = CloseAccount { 334 | account: self.vault.to_account_info(), 335 | destination: self.taker.to_account_info(), 336 | authority: self.escrow.to_account_info(), 337 | }; 338 | 339 | let ctx = CpiContext::new_with_signer( 340 | self.token_program.to_account_info(), 341 | accounts, 342 | &signer_seeds, 343 | ); 344 | 345 | close_account(ctx) 346 | } 347 | } 348 | ``` 349 | 350 | In the `deposit` function, we transfer tokens from the taker's associated token account to the maker's associated token account. In the `withdraw_and_close_vault` function, we transfer the funds from the vault account to the taker's associated token account and then close the vault account. Since the transfer and the close occurs from a PDA, we need to pass the seeds to the transfer_checked function and the close_account function. 351 | -------------------------------------------------------------------------------- /tests/anchor-escrow.ts: -------------------------------------------------------------------------------- 1 | import * as anchor from "@coral-xyz/anchor"; 2 | import { Program, BN } from "@coral-xyz/anchor"; 3 | import { AnchorEscrow } from "../target/types/anchor_escrow"; 4 | import { 5 | Keypair, 6 | LAMPORTS_PER_SOL, 7 | PublicKey, 8 | SystemProgram, 9 | Transaction, 10 | } from "@solana/web3.js"; 11 | import { 12 | MINT_SIZE, 13 | TOKEN_2022_PROGRAM_ID, 14 | // TOKEN_PROGRAM_ID, 15 | createAssociatedTokenAccountIdempotentInstruction, 16 | createInitializeMint2Instruction, 17 | createMintToInstruction, 18 | getAssociatedTokenAddressSync, 19 | getMinimumBalanceForRentExemptMint, 20 | } from "@solana/spl-token"; 21 | import { randomBytes } from "crypto"; 22 | 23 | describe("anchor-escrow", () => { 24 | anchor.setProvider(anchor.AnchorProvider.env()); 25 | 26 | const provider = anchor.getProvider(); 27 | 28 | const connection = provider.connection; 29 | 30 | const program = anchor.workspace.AnchorEscrow as Program; 31 | 32 | const tokenProgram = TOKEN_2022_PROGRAM_ID; 33 | // const tokenProgram = TOKEN_PROGRAM_ID; 34 | 35 | const confirm = async (signature: string): Promise => { 36 | const block = await connection.getLatestBlockhash(); 37 | await connection.confirmTransaction({ 38 | signature, 39 | ...block, 40 | }); 41 | return signature; 42 | }; 43 | 44 | const log = async (signature: string): Promise => { 45 | console.log( 46 | `Your transaction signature: https://explorer.solana.com/transaction/${signature}?cluster=custom&customUrl=${connection.rpcEndpoint}` 47 | ); 48 | return signature; 49 | }; 50 | 51 | const seed = new BN(randomBytes(8)); 52 | 53 | const [maker, taker, mintA, mintB] = Array.from({ length: 4 }, () => 54 | Keypair.generate() 55 | ); 56 | 57 | const [makerAtaA, makerAtaB, takerAtaA, takerAtaB] = [maker, taker] 58 | .map((a) => 59 | [mintA, mintB].map((m) => 60 | getAssociatedTokenAddressSync(m.publicKey, a.publicKey, false, tokenProgram) 61 | ) 62 | ) 63 | .flat(); 64 | 65 | const escrow = PublicKey.findProgramAddressSync( 66 | [Buffer.from("escrow"), maker.publicKey.toBuffer(), seed.toArrayLike(Buffer, "le", 8)], 67 | program.programId 68 | )[0]; 69 | 70 | const vault = getAssociatedTokenAddressSync(mintA.publicKey, escrow, true, tokenProgram); 71 | 72 | // Accounts 73 | const accounts = { 74 | maker: maker.publicKey, 75 | taker: taker.publicKey, 76 | mintA: mintA.publicKey, 77 | mintB: mintB.publicKey, 78 | makerAtaA, 79 | makerAtaB, 80 | takerAtaA, 81 | takerAtaB, 82 | escrow, 83 | vault, 84 | tokenProgram, 85 | } 86 | 87 | it("Airdrop and create mints", async () => { 88 | let lamports = await getMinimumBalanceForRentExemptMint(connection); 89 | let tx = new Transaction(); 90 | tx.instructions = [ 91 | ...[maker, taker].map((account) => 92 | SystemProgram.transfer({ 93 | fromPubkey: provider.publicKey, 94 | toPubkey: account.publicKey, 95 | lamports: 10 * LAMPORTS_PER_SOL, 96 | }) 97 | ), 98 | ...[mintA, mintB].map((mint) => 99 | SystemProgram.createAccount({ 100 | fromPubkey: provider.publicKey, 101 | newAccountPubkey: mint.publicKey, 102 | lamports, 103 | space: MINT_SIZE, 104 | programId: tokenProgram, 105 | }) 106 | ), 107 | ...[ 108 | { mint: mintA.publicKey, authority: maker.publicKey, ata: makerAtaA }, 109 | { mint: mintB.publicKey, authority: taker.publicKey, ata: takerAtaB }, 110 | ] 111 | .flatMap((x) => [ 112 | createInitializeMint2Instruction(x.mint, 6, x.authority, null, tokenProgram), 113 | createAssociatedTokenAccountIdempotentInstruction(provider.publicKey, x.ata, x.authority, x.mint, tokenProgram), 114 | createMintToInstruction(x.mint, x.ata, x.authority, 1e9, undefined, tokenProgram), 115 | ]) 116 | ]; 117 | 118 | await provider.sendAndConfirm(tx, [mintA, mintB, maker, taker]).then(log); 119 | }); 120 | 121 | it("Make", async () => { 122 | await program.methods 123 | .make(seed, new BN(1e6), new BN(1e6)) 124 | .accounts({ ...accounts }) 125 | .signers([maker]) 126 | .rpc() 127 | .then(confirm) 128 | .then(log); 129 | }); 130 | 131 | xit("Refund", async () => { 132 | await program.methods 133 | .refund() 134 | .accounts({ ...accounts }) 135 | .signers([maker]) 136 | .rpc() 137 | .then(confirm) 138 | .then(log); 139 | }); 140 | 141 | it("Take", async () => { 142 | try { 143 | await program.methods 144 | .take() 145 | .accounts({ ...accounts }) 146 | .signers([taker]) 147 | .rpc() 148 | .then(confirm) 149 | .then(log); 150 | } catch(e) { 151 | console.log(e); 152 | throw(e) 153 | } 154 | }); 155 | }); 156 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "types": ["mocha", "chai"], 4 | "typeRoots": ["./node_modules/@types"], 5 | "lib": ["es2015"], 6 | "module": "commonjs", 7 | "target": "es6", 8 | "resolveJsonModule": true, 9 | "esModuleInterop": true 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/runtime@^7.24.5": 6 | version "7.24.5" 7 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.5.tgz#230946857c053a36ccc66e1dd03b17dd0c4ed02c" 8 | integrity sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g== 9 | dependencies: 10 | regenerator-runtime "^0.14.0" 11 | 12 | "@coral-xyz/anchor@^0.30.0": 13 | version "0.30.0" 14 | resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.30.0.tgz#52acdba504b0008f1026d3a4bbbcb2d4feb5c69e" 15 | integrity sha512-qreDh5ztiRHVnCbJ+RS70NJ6aSTPBYDAgFeQ7Z5QvaT5DcDIhNyt4onOciVz2ieIE1XWePOJDDu9SbNvPGBkvQ== 16 | dependencies: 17 | "@coral-xyz/borsh" "^0.30.0" 18 | "@noble/hashes" "^1.3.1" 19 | "@solana/web3.js" "^1.68.0" 20 | bn.js "^5.1.2" 21 | bs58 "^4.0.1" 22 | buffer-layout "^1.2.2" 23 | camelcase "^6.3.0" 24 | cross-fetch "^3.1.5" 25 | crypto-hash "^1.3.0" 26 | eventemitter3 "^4.0.7" 27 | pako "^2.0.3" 28 | snake-case "^3.0.4" 29 | superstruct "^0.15.4" 30 | toml "^3.0.0" 31 | 32 | "@coral-xyz/borsh@^0.30.0": 33 | version "0.30.0" 34 | resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.30.0.tgz#3e6f23e944ef6c89f2c9cbead383358752ac5e73" 35 | integrity sha512-OrcV+7N10cChhgDRUxM4iEIuwxUHHs52XD85R8cFCUqE0vbLYrcoPPPs+VF6kZ9DhdJGVW2I6DHJOp5TykyZog== 36 | dependencies: 37 | bn.js "^5.1.2" 38 | buffer-layout "^1.2.0" 39 | 40 | "@noble/curves@^1.4.0": 41 | version "1.4.0" 42 | resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.4.0.tgz#f05771ef64da724997f69ee1261b2417a49522d6" 43 | integrity sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg== 44 | dependencies: 45 | "@noble/hashes" "1.4.0" 46 | 47 | "@noble/hashes@1.4.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0": 48 | version "1.4.0" 49 | resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" 50 | integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== 51 | 52 | "@solana/buffer-layout-utils@^0.2.0": 53 | version "0.2.0" 54 | resolved "https://registry.yarnpkg.com/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz#b45a6cab3293a2eb7597cceb474f229889d875ca" 55 | integrity sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g== 56 | dependencies: 57 | "@solana/buffer-layout" "^4.0.0" 58 | "@solana/web3.js" "^1.32.0" 59 | bigint-buffer "^1.1.5" 60 | bignumber.js "^9.0.1" 61 | 62 | "@solana/buffer-layout@^4.0.0", "@solana/buffer-layout@^4.0.1": 63 | version "4.0.1" 64 | resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" 65 | integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== 66 | dependencies: 67 | buffer "~6.0.3" 68 | 69 | "@solana/codecs-core@2.0.0-preview.2": 70 | version "2.0.0-preview.2" 71 | resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.0.0-preview.2.tgz#689784d032fbc1fedbde40bb25d76cdcecf6553b" 72 | integrity sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg== 73 | dependencies: 74 | "@solana/errors" "2.0.0-preview.2" 75 | 76 | "@solana/codecs-data-structures@2.0.0-preview.2": 77 | version "2.0.0-preview.2" 78 | resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-2.0.0-preview.2.tgz#e82cb1b6d154fa636cd5c8953ff3f32959cc0370" 79 | integrity sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg== 80 | dependencies: 81 | "@solana/codecs-core" "2.0.0-preview.2" 82 | "@solana/codecs-numbers" "2.0.0-preview.2" 83 | "@solana/errors" "2.0.0-preview.2" 84 | 85 | "@solana/codecs-numbers@2.0.0-preview.2": 86 | version "2.0.0-preview.2" 87 | resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.0.0-preview.2.tgz#56995c27396cd8ee3bae8bd055363891b630bbd0" 88 | integrity sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw== 89 | dependencies: 90 | "@solana/codecs-core" "2.0.0-preview.2" 91 | "@solana/errors" "2.0.0-preview.2" 92 | 93 | "@solana/codecs-strings@2.0.0-preview.2": 94 | version "2.0.0-preview.2" 95 | resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-2.0.0-preview.2.tgz#8bd01a4e48614d5289d72d743c3e81305d445c46" 96 | integrity sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g== 97 | dependencies: 98 | "@solana/codecs-core" "2.0.0-preview.2" 99 | "@solana/codecs-numbers" "2.0.0-preview.2" 100 | "@solana/errors" "2.0.0-preview.2" 101 | 102 | "@solana/codecs@2.0.0-preview.2": 103 | version "2.0.0-preview.2" 104 | resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-2.0.0-preview.2.tgz#d6615fec98f423166fb89409f9a4ad5b74c10935" 105 | integrity sha512-4HHzCD5+pOSmSB71X6w9ptweV48Zj1Vqhe732+pcAQ2cMNnN0gMPMdDq7j3YwaZDZ7yrILVV/3+HTnfT77t2yA== 106 | dependencies: 107 | "@solana/codecs-core" "2.0.0-preview.2" 108 | "@solana/codecs-data-structures" "2.0.0-preview.2" 109 | "@solana/codecs-numbers" "2.0.0-preview.2" 110 | "@solana/codecs-strings" "2.0.0-preview.2" 111 | "@solana/options" "2.0.0-preview.2" 112 | 113 | "@solana/errors@2.0.0-preview.2": 114 | version "2.0.0-preview.2" 115 | resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.0.0-preview.2.tgz#e0ea8b008c5c02528d5855bc1903e5e9bbec322e" 116 | integrity sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA== 117 | dependencies: 118 | chalk "^5.3.0" 119 | commander "^12.0.0" 120 | 121 | "@solana/options@2.0.0-preview.2": 122 | version "2.0.0-preview.2" 123 | resolved "https://registry.yarnpkg.com/@solana/options/-/options-2.0.0-preview.2.tgz#13ff008bf43a5056ef9a091dc7bb3f39321e867e" 124 | integrity sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w== 125 | dependencies: 126 | "@solana/codecs-core" "2.0.0-preview.2" 127 | "@solana/codecs-numbers" "2.0.0-preview.2" 128 | 129 | "@solana/spl-token-group@^0.0.4": 130 | version "0.0.4" 131 | resolved "https://registry.yarnpkg.com/@solana/spl-token-group/-/spl-token-group-0.0.4.tgz#4f45d9526c96a33b9a1929a264d0aa21c7e38a2d" 132 | integrity sha512-7+80nrEMdUKlK37V6kOe024+T7J4nNss0F8LQ9OOPYdWCCfJmsGUzVx2W3oeizZR4IHM6N4yC9v1Xqwc3BTPWw== 133 | dependencies: 134 | "@solana/codecs" "2.0.0-preview.2" 135 | "@solana/spl-type-length-value" "0.1.0" 136 | 137 | "@solana/spl-token-metadata@^0.1.4": 138 | version "0.1.4" 139 | resolved "https://registry.yarnpkg.com/@solana/spl-token-metadata/-/spl-token-metadata-0.1.4.tgz#5cdc3b857a8c4a6877df24e24a8648c4132d22ba" 140 | integrity sha512-N3gZ8DlW6NWDV28+vCCDJoTqaCZiF/jDUnk3o8GRkAFzHObiR60Bs1gXHBa8zCPdvOwiG6Z3dg5pg7+RW6XNsQ== 141 | dependencies: 142 | "@solana/codecs" "2.0.0-preview.2" 143 | "@solana/spl-type-length-value" "0.1.0" 144 | 145 | "@solana/spl-token@^0.4.6": 146 | version "0.4.6" 147 | resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.4.6.tgz#eb44e5080ea7b6fc976abcb39457223211bd9076" 148 | integrity sha512-1nCnUqfHVtdguFciVWaY/RKcQz1IF4b31jnKgAmjU9QVN1q7dRUkTEWJZgTYIEtsULjVnC9jRqlhgGN39WbKKA== 149 | dependencies: 150 | "@solana/buffer-layout" "^4.0.0" 151 | "@solana/buffer-layout-utils" "^0.2.0" 152 | "@solana/spl-token-group" "^0.0.4" 153 | "@solana/spl-token-metadata" "^0.1.4" 154 | buffer "^6.0.3" 155 | 156 | "@solana/spl-type-length-value@0.1.0": 157 | version "0.1.0" 158 | resolved "https://registry.yarnpkg.com/@solana/spl-type-length-value/-/spl-type-length-value-0.1.0.tgz#b5930cf6c6d8f50c7ff2a70463728a4637a2f26b" 159 | integrity sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA== 160 | dependencies: 161 | buffer "^6.0.3" 162 | 163 | "@solana/web3.js@^1.32.0", "@solana/web3.js@^1.68.0", "@solana/web3.js@^1.91.8": 164 | version "1.91.8" 165 | resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.91.8.tgz#0d5eb69626a92c391b53e15bfbb0bad3f6858e51" 166 | integrity sha512-USa6OS1jbh8zOapRJ/CBZImZ8Xb7AJjROZl5adql9TpOoBN9BUzyyouS5oPuZHft7S7eB8uJPuXWYjMi6BHgOw== 167 | dependencies: 168 | "@babel/runtime" "^7.24.5" 169 | "@noble/curves" "^1.4.0" 170 | "@noble/hashes" "^1.4.0" 171 | "@solana/buffer-layout" "^4.0.1" 172 | agentkeepalive "^4.5.0" 173 | bigint-buffer "^1.1.5" 174 | bn.js "^5.2.1" 175 | borsh "^0.7.0" 176 | bs58 "^4.0.1" 177 | buffer "6.0.3" 178 | fast-stable-stringify "^1.0.0" 179 | jayson "^4.1.0" 180 | node-fetch "^2.7.0" 181 | rpc-websockets "^7.11.0" 182 | superstruct "^0.14.2" 183 | 184 | "@types/bn.js@^5.1.5": 185 | version "5.1.5" 186 | resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.5.tgz#2e0dacdcce2c0f16b905d20ff87aedbc6f7b4bf0" 187 | integrity sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A== 188 | dependencies: 189 | "@types/node" "*" 190 | 191 | "@types/chai@^4.3.16": 192 | version "4.3.16" 193 | resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.16.tgz#b1572967f0b8b60bf3f87fe1d854a5604ea70c82" 194 | integrity sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ== 195 | 196 | "@types/connect@^3.4.33": 197 | version "3.4.38" 198 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" 199 | integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== 200 | dependencies: 201 | "@types/node" "*" 202 | 203 | "@types/json5@^0.0.29": 204 | version "0.0.29" 205 | resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" 206 | integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== 207 | 208 | "@types/mocha@^10.0.6": 209 | version "10.0.6" 210 | resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.6.tgz#818551d39113081048bdddbef96701b4e8bb9d1b" 211 | integrity sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg== 212 | 213 | "@types/node@*": 214 | version "20.12.11" 215 | resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.11.tgz#c4ef00d3507000d17690643278a60dc55a9dc9be" 216 | integrity sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw== 217 | dependencies: 218 | undici-types "~5.26.4" 219 | 220 | "@types/node@^12.12.54": 221 | version "12.20.55" 222 | resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" 223 | integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== 224 | 225 | "@types/ws@^7.4.4": 226 | version "7.4.7" 227 | resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" 228 | integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== 229 | dependencies: 230 | "@types/node" "*" 231 | 232 | JSONStream@^1.3.5: 233 | version "1.3.5" 234 | resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" 235 | integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== 236 | dependencies: 237 | jsonparse "^1.2.0" 238 | through ">=2.2.7 <3" 239 | 240 | agentkeepalive@^4.5.0: 241 | version "4.5.0" 242 | resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" 243 | integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== 244 | dependencies: 245 | humanize-ms "^1.2.1" 246 | 247 | ansi-colors@4.1.1: 248 | version "4.1.1" 249 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" 250 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== 251 | 252 | ansi-regex@^5.0.1: 253 | version "5.0.1" 254 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 255 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 256 | 257 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 258 | version "4.3.0" 259 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 260 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 261 | dependencies: 262 | color-convert "^2.0.1" 263 | 264 | anymatch@~3.1.2: 265 | version "3.1.3" 266 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" 267 | integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== 268 | dependencies: 269 | normalize-path "^3.0.0" 270 | picomatch "^2.0.4" 271 | 272 | argparse@^2.0.1: 273 | version "2.0.1" 274 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 275 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 276 | 277 | arrify@^1.0.0: 278 | version "1.0.1" 279 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 280 | integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== 281 | 282 | assertion-error@^2.0.1: 283 | version "2.0.1" 284 | resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" 285 | integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== 286 | 287 | balanced-match@^1.0.0: 288 | version "1.0.2" 289 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 290 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 291 | 292 | base-x@^3.0.2: 293 | version "3.0.9" 294 | resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" 295 | integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== 296 | dependencies: 297 | safe-buffer "^5.0.1" 298 | 299 | base64-js@^1.3.1: 300 | version "1.5.1" 301 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 302 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 303 | 304 | bigint-buffer@^1.1.5: 305 | version "1.1.5" 306 | resolved "https://registry.yarnpkg.com/bigint-buffer/-/bigint-buffer-1.1.5.tgz#d038f31c8e4534c1f8d0015209bf34b4fa6dd442" 307 | integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA== 308 | dependencies: 309 | bindings "^1.3.0" 310 | 311 | bignumber.js@^9.0.1: 312 | version "9.1.2" 313 | resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" 314 | integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== 315 | 316 | binary-extensions@^2.0.0: 317 | version "2.3.0" 318 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" 319 | integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== 320 | 321 | bindings@^1.3.0: 322 | version "1.5.0" 323 | resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" 324 | integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== 325 | dependencies: 326 | file-uri-to-path "1.0.0" 327 | 328 | bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: 329 | version "5.2.1" 330 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" 331 | integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== 332 | 333 | borsh@^0.7.0: 334 | version "0.7.0" 335 | resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" 336 | integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== 337 | dependencies: 338 | bn.js "^5.2.0" 339 | bs58 "^4.0.0" 340 | text-encoding-utf-8 "^1.0.2" 341 | 342 | brace-expansion@^2.0.1: 343 | version "2.0.1" 344 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" 345 | integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== 346 | dependencies: 347 | balanced-match "^1.0.0" 348 | 349 | braces@~3.0.2: 350 | version "3.0.2" 351 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 352 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 353 | dependencies: 354 | fill-range "^7.0.1" 355 | 356 | browser-stdout@1.3.1: 357 | version "1.3.1" 358 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" 359 | integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== 360 | 361 | bs58@^4.0.0, bs58@^4.0.1: 362 | version "4.0.1" 363 | resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" 364 | integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== 365 | dependencies: 366 | base-x "^3.0.2" 367 | 368 | buffer-from@^1.0.0, buffer-from@^1.1.0: 369 | version "1.1.2" 370 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 371 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 372 | 373 | buffer-layout@^1.2.0, buffer-layout@^1.2.2: 374 | version "1.2.2" 375 | resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" 376 | integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== 377 | 378 | buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: 379 | version "6.0.3" 380 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" 381 | integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== 382 | dependencies: 383 | base64-js "^1.3.1" 384 | ieee754 "^1.2.1" 385 | 386 | bufferutil@^4.0.1: 387 | version "4.0.8" 388 | resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.8.tgz#1de6a71092d65d7766c4d8a522b261a6e787e8ea" 389 | integrity sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw== 390 | dependencies: 391 | node-gyp-build "^4.3.0" 392 | 393 | camelcase@^6.0.0, camelcase@^6.3.0: 394 | version "6.3.0" 395 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" 396 | integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== 397 | 398 | chai@^5.1.1: 399 | version "5.1.1" 400 | resolved "https://registry.yarnpkg.com/chai/-/chai-5.1.1.tgz#f035d9792a22b481ead1c65908d14bb62ec1c82c" 401 | integrity sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA== 402 | dependencies: 403 | assertion-error "^2.0.1" 404 | check-error "^2.1.1" 405 | deep-eql "^5.0.1" 406 | loupe "^3.1.0" 407 | pathval "^2.0.0" 408 | 409 | chalk@^4.1.0: 410 | version "4.1.2" 411 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 412 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 413 | dependencies: 414 | ansi-styles "^4.1.0" 415 | supports-color "^7.1.0" 416 | 417 | chalk@^5.3.0: 418 | version "5.3.0" 419 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" 420 | integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== 421 | 422 | check-error@^2.1.1: 423 | version "2.1.1" 424 | resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" 425 | integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== 426 | 427 | chokidar@3.5.3: 428 | version "3.5.3" 429 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" 430 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== 431 | dependencies: 432 | anymatch "~3.1.2" 433 | braces "~3.0.2" 434 | glob-parent "~5.1.2" 435 | is-binary-path "~2.1.0" 436 | is-glob "~4.0.1" 437 | normalize-path "~3.0.0" 438 | readdirp "~3.6.0" 439 | optionalDependencies: 440 | fsevents "~2.3.2" 441 | 442 | cliui@^7.0.2: 443 | version "7.0.4" 444 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" 445 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== 446 | dependencies: 447 | string-width "^4.2.0" 448 | strip-ansi "^6.0.0" 449 | wrap-ansi "^7.0.0" 450 | 451 | color-convert@^2.0.1: 452 | version "2.0.1" 453 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 454 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 455 | dependencies: 456 | color-name "~1.1.4" 457 | 458 | color-name@~1.1.4: 459 | version "1.1.4" 460 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 461 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 462 | 463 | commander@^12.0.0: 464 | version "12.0.0" 465 | resolved "https://registry.yarnpkg.com/commander/-/commander-12.0.0.tgz#b929db6df8546080adfd004ab215ed48cf6f2592" 466 | integrity sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA== 467 | 468 | commander@^2.20.3: 469 | version "2.20.3" 470 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 471 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 472 | 473 | cross-fetch@^3.1.5: 474 | version "3.1.8" 475 | resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" 476 | integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== 477 | dependencies: 478 | node-fetch "^2.6.12" 479 | 480 | crypto-hash@^1.3.0: 481 | version "1.3.0" 482 | resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247" 483 | integrity sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg== 484 | 485 | debug@4.3.4: 486 | version "4.3.4" 487 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 488 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 489 | dependencies: 490 | ms "2.1.2" 491 | 492 | decamelize@^4.0.0: 493 | version "4.0.0" 494 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" 495 | integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== 496 | 497 | deep-eql@^5.0.1: 498 | version "5.0.1" 499 | resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.1.tgz#21ea2c0d561a4d08cdd99c417ac584e0fb121385" 500 | integrity sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw== 501 | 502 | delay@^5.0.0: 503 | version "5.0.0" 504 | resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" 505 | integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== 506 | 507 | diff@5.0.0: 508 | version "5.0.0" 509 | resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" 510 | integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== 511 | 512 | diff@^3.1.0: 513 | version "3.5.0" 514 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 515 | integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== 516 | 517 | dot-case@^3.0.4: 518 | version "3.0.4" 519 | resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" 520 | integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== 521 | dependencies: 522 | no-case "^3.0.4" 523 | tslib "^2.0.3" 524 | 525 | emoji-regex@^8.0.0: 526 | version "8.0.0" 527 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 528 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 529 | 530 | es6-promise@^4.0.3: 531 | version "4.2.8" 532 | resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" 533 | integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== 534 | 535 | es6-promisify@^5.0.0: 536 | version "5.0.0" 537 | resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" 538 | integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== 539 | dependencies: 540 | es6-promise "^4.0.3" 541 | 542 | escalade@^3.1.1: 543 | version "3.1.2" 544 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" 545 | integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== 546 | 547 | escape-string-regexp@4.0.0: 548 | version "4.0.0" 549 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 550 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 551 | 552 | eventemitter3@^4.0.7: 553 | version "4.0.7" 554 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" 555 | integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== 556 | 557 | eyes@^0.1.8: 558 | version "0.1.8" 559 | resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" 560 | integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== 561 | 562 | fast-stable-stringify@^1.0.0: 563 | version "1.0.0" 564 | resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" 565 | integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== 566 | 567 | file-uri-to-path@1.0.0: 568 | version "1.0.0" 569 | resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" 570 | integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== 571 | 572 | fill-range@^7.0.1: 573 | version "7.0.1" 574 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 575 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 576 | dependencies: 577 | to-regex-range "^5.0.1" 578 | 579 | find-up@5.0.0: 580 | version "5.0.0" 581 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" 582 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 583 | dependencies: 584 | locate-path "^6.0.0" 585 | path-exists "^4.0.0" 586 | 587 | flat@^5.0.2: 588 | version "5.0.2" 589 | resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" 590 | integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== 591 | 592 | fs.realpath@^1.0.0: 593 | version "1.0.0" 594 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 595 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 596 | 597 | fsevents@~2.3.2: 598 | version "2.3.3" 599 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" 600 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 601 | 602 | get-caller-file@^2.0.5: 603 | version "2.0.5" 604 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 605 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 606 | 607 | get-func-name@^2.0.1: 608 | version "2.0.2" 609 | resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" 610 | integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== 611 | 612 | glob-parent@~5.1.2: 613 | version "5.1.2" 614 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 615 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 616 | dependencies: 617 | is-glob "^4.0.1" 618 | 619 | glob@8.1.0: 620 | version "8.1.0" 621 | resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" 622 | integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== 623 | dependencies: 624 | fs.realpath "^1.0.0" 625 | inflight "^1.0.4" 626 | inherits "2" 627 | minimatch "^5.0.1" 628 | once "^1.3.0" 629 | 630 | has-flag@^4.0.0: 631 | version "4.0.0" 632 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 633 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 634 | 635 | he@1.2.0: 636 | version "1.2.0" 637 | resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" 638 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== 639 | 640 | humanize-ms@^1.2.1: 641 | version "1.2.1" 642 | resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" 643 | integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== 644 | dependencies: 645 | ms "^2.0.0" 646 | 647 | ieee754@^1.2.1: 648 | version "1.2.1" 649 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 650 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 651 | 652 | inflight@^1.0.4: 653 | version "1.0.6" 654 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 655 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 656 | dependencies: 657 | once "^1.3.0" 658 | wrappy "1" 659 | 660 | inherits@2: 661 | version "2.0.4" 662 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 663 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 664 | 665 | is-binary-path@~2.1.0: 666 | version "2.1.0" 667 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 668 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 669 | dependencies: 670 | binary-extensions "^2.0.0" 671 | 672 | is-extglob@^2.1.1: 673 | version "2.1.1" 674 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 675 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 676 | 677 | is-fullwidth-code-point@^3.0.0: 678 | version "3.0.0" 679 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 680 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 681 | 682 | is-glob@^4.0.1, is-glob@~4.0.1: 683 | version "4.0.3" 684 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 685 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 686 | dependencies: 687 | is-extglob "^2.1.1" 688 | 689 | is-number@^7.0.0: 690 | version "7.0.0" 691 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 692 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 693 | 694 | is-plain-obj@^2.1.0: 695 | version "2.1.0" 696 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" 697 | integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== 698 | 699 | is-unicode-supported@^0.1.0: 700 | version "0.1.0" 701 | resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" 702 | integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== 703 | 704 | isomorphic-ws@^4.0.1: 705 | version "4.0.1" 706 | resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" 707 | integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== 708 | 709 | jayson@^4.1.0: 710 | version "4.1.0" 711 | resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.1.0.tgz#60dc946a85197317f2b1439d672a8b0a99cea2f9" 712 | integrity sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A== 713 | dependencies: 714 | "@types/connect" "^3.4.33" 715 | "@types/node" "^12.12.54" 716 | "@types/ws" "^7.4.4" 717 | JSONStream "^1.3.5" 718 | commander "^2.20.3" 719 | delay "^5.0.0" 720 | es6-promisify "^5.0.0" 721 | eyes "^0.1.8" 722 | isomorphic-ws "^4.0.1" 723 | json-stringify-safe "^5.0.1" 724 | uuid "^8.3.2" 725 | ws "^7.4.5" 726 | 727 | js-yaml@4.1.0: 728 | version "4.1.0" 729 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" 730 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 731 | dependencies: 732 | argparse "^2.0.1" 733 | 734 | json-stringify-safe@^5.0.1: 735 | version "5.0.1" 736 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 737 | integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== 738 | 739 | json5@^1.0.2: 740 | version "1.0.2" 741 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" 742 | integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== 743 | dependencies: 744 | minimist "^1.2.0" 745 | 746 | jsonparse@^1.2.0: 747 | version "1.3.1" 748 | resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" 749 | integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== 750 | 751 | locate-path@^6.0.0: 752 | version "6.0.0" 753 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" 754 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 755 | dependencies: 756 | p-locate "^5.0.0" 757 | 758 | log-symbols@4.1.0: 759 | version "4.1.0" 760 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" 761 | integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== 762 | dependencies: 763 | chalk "^4.1.0" 764 | is-unicode-supported "^0.1.0" 765 | 766 | loupe@^3.1.0: 767 | version "3.1.0" 768 | resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.1.0.tgz#46ef1a4ffee73145f5c0a627536d754787c1ea2a" 769 | integrity sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg== 770 | dependencies: 771 | get-func-name "^2.0.1" 772 | 773 | lower-case@^2.0.2: 774 | version "2.0.2" 775 | resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" 776 | integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== 777 | dependencies: 778 | tslib "^2.0.3" 779 | 780 | make-error@^1.1.1: 781 | version "1.3.6" 782 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" 783 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== 784 | 785 | minimatch@5.0.1: 786 | version "5.0.1" 787 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" 788 | integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== 789 | dependencies: 790 | brace-expansion "^2.0.1" 791 | 792 | minimatch@^5.0.1: 793 | version "5.1.6" 794 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" 795 | integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== 796 | dependencies: 797 | brace-expansion "^2.0.1" 798 | 799 | minimist@^1.2.0, minimist@^1.2.6: 800 | version "1.2.8" 801 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" 802 | integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== 803 | 804 | mkdirp@^0.5.1: 805 | version "0.5.6" 806 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" 807 | integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== 808 | dependencies: 809 | minimist "^1.2.6" 810 | 811 | mocha@^10.4.0: 812 | version "10.4.0" 813 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.4.0.tgz#ed03db96ee9cfc6d20c56f8e2af07b961dbae261" 814 | integrity sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA== 815 | dependencies: 816 | ansi-colors "4.1.1" 817 | browser-stdout "1.3.1" 818 | chokidar "3.5.3" 819 | debug "4.3.4" 820 | diff "5.0.0" 821 | escape-string-regexp "4.0.0" 822 | find-up "5.0.0" 823 | glob "8.1.0" 824 | he "1.2.0" 825 | js-yaml "4.1.0" 826 | log-symbols "4.1.0" 827 | minimatch "5.0.1" 828 | ms "2.1.3" 829 | serialize-javascript "6.0.0" 830 | strip-json-comments "3.1.1" 831 | supports-color "8.1.1" 832 | workerpool "6.2.1" 833 | yargs "16.2.0" 834 | yargs-parser "20.2.4" 835 | yargs-unparser "2.0.0" 836 | 837 | ms@2.1.2: 838 | version "2.1.2" 839 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 840 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 841 | 842 | ms@2.1.3, ms@^2.0.0: 843 | version "2.1.3" 844 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 845 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 846 | 847 | no-case@^3.0.4: 848 | version "3.0.4" 849 | resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" 850 | integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== 851 | dependencies: 852 | lower-case "^2.0.2" 853 | tslib "^2.0.3" 854 | 855 | node-fetch@^2.6.12, node-fetch@^2.7.0: 856 | version "2.7.0" 857 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" 858 | integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== 859 | dependencies: 860 | whatwg-url "^5.0.0" 861 | 862 | node-gyp-build@^4.3.0: 863 | version "4.8.1" 864 | resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5" 865 | integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw== 866 | 867 | normalize-path@^3.0.0, normalize-path@~3.0.0: 868 | version "3.0.0" 869 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 870 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 871 | 872 | once@^1.3.0: 873 | version "1.4.0" 874 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 875 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 876 | dependencies: 877 | wrappy "1" 878 | 879 | p-limit@^3.0.2: 880 | version "3.1.0" 881 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 882 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 883 | dependencies: 884 | yocto-queue "^0.1.0" 885 | 886 | p-locate@^5.0.0: 887 | version "5.0.0" 888 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" 889 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 890 | dependencies: 891 | p-limit "^3.0.2" 892 | 893 | pako@^2.0.3: 894 | version "2.1.0" 895 | resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" 896 | integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== 897 | 898 | path-exists@^4.0.0: 899 | version "4.0.0" 900 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 901 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 902 | 903 | pathval@^2.0.0: 904 | version "2.0.0" 905 | resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.0.tgz#7e2550b422601d4f6b8e26f1301bc8f15a741a25" 906 | integrity sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA== 907 | 908 | picomatch@^2.0.4, picomatch@^2.2.1: 909 | version "2.3.1" 910 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 911 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 912 | 913 | prettier@^3.2.5: 914 | version "3.2.5" 915 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" 916 | integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== 917 | 918 | randombytes@^2.1.0: 919 | version "2.1.0" 920 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 921 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 922 | dependencies: 923 | safe-buffer "^5.1.0" 924 | 925 | readdirp@~3.6.0: 926 | version "3.6.0" 927 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 928 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 929 | dependencies: 930 | picomatch "^2.2.1" 931 | 932 | regenerator-runtime@^0.14.0: 933 | version "0.14.1" 934 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" 935 | integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== 936 | 937 | require-directory@^2.1.1: 938 | version "2.1.1" 939 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 940 | integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== 941 | 942 | rpc-websockets@^7.11.0: 943 | version "7.11.0" 944 | resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.11.0.tgz#05451975963a7d1a4cf36d54e200bfc4402a56d7" 945 | integrity sha512-IkLYjayPv6Io8C/TdCL5gwgzd1hFz2vmBZrjMw/SPEXo51ETOhnzgS4Qy5GWi2JQN7HKHa66J3+2mv0fgNh/7w== 946 | dependencies: 947 | eventemitter3 "^4.0.7" 948 | uuid "^8.3.2" 949 | ws "^8.5.0" 950 | optionalDependencies: 951 | bufferutil "^4.0.1" 952 | utf-8-validate "^5.0.2" 953 | 954 | safe-buffer@^5.0.1, safe-buffer@^5.1.0: 955 | version "5.2.1" 956 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 957 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 958 | 959 | serialize-javascript@6.0.0: 960 | version "6.0.0" 961 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" 962 | integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== 963 | dependencies: 964 | randombytes "^2.1.0" 965 | 966 | snake-case@^3.0.4: 967 | version "3.0.4" 968 | resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" 969 | integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== 970 | dependencies: 971 | dot-case "^3.0.4" 972 | tslib "^2.0.3" 973 | 974 | source-map-support@^0.5.6: 975 | version "0.5.21" 976 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" 977 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== 978 | dependencies: 979 | buffer-from "^1.0.0" 980 | source-map "^0.6.0" 981 | 982 | source-map@^0.6.0: 983 | version "0.6.1" 984 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 985 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 986 | 987 | string-width@^4.1.0, string-width@^4.2.0: 988 | version "4.2.3" 989 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 990 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 991 | dependencies: 992 | emoji-regex "^8.0.0" 993 | is-fullwidth-code-point "^3.0.0" 994 | strip-ansi "^6.0.1" 995 | 996 | strip-ansi@^6.0.0, strip-ansi@^6.0.1: 997 | version "6.0.1" 998 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 999 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1000 | dependencies: 1001 | ansi-regex "^5.0.1" 1002 | 1003 | strip-bom@^3.0.0: 1004 | version "3.0.0" 1005 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1006 | integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== 1007 | 1008 | strip-json-comments@3.1.1: 1009 | version "3.1.1" 1010 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 1011 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 1012 | 1013 | superstruct@^0.14.2: 1014 | version "0.14.2" 1015 | resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.14.2.tgz#0dbcdf3d83676588828f1cf5ed35cda02f59025b" 1016 | integrity sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ== 1017 | 1018 | superstruct@^0.15.4: 1019 | version "0.15.5" 1020 | resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" 1021 | integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== 1022 | 1023 | supports-color@8.1.1: 1024 | version "8.1.1" 1025 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" 1026 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== 1027 | dependencies: 1028 | has-flag "^4.0.0" 1029 | 1030 | supports-color@^7.1.0: 1031 | version "7.2.0" 1032 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1033 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1034 | dependencies: 1035 | has-flag "^4.0.0" 1036 | 1037 | text-encoding-utf-8@^1.0.2: 1038 | version "1.0.2" 1039 | resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" 1040 | integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== 1041 | 1042 | "through@>=2.2.7 <3": 1043 | version "2.3.8" 1044 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1045 | integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== 1046 | 1047 | to-regex-range@^5.0.1: 1048 | version "5.0.1" 1049 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1050 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1051 | dependencies: 1052 | is-number "^7.0.0" 1053 | 1054 | toml@^3.0.0: 1055 | version "3.0.0" 1056 | resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" 1057 | integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== 1058 | 1059 | tr46@~0.0.3: 1060 | version "0.0.3" 1061 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" 1062 | integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== 1063 | 1064 | ts-mocha@^10.0.0: 1065 | version "10.0.0" 1066 | resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-10.0.0.tgz#41a8d099ac90dbbc64b06976c5025ffaebc53cb9" 1067 | integrity sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw== 1068 | dependencies: 1069 | ts-node "7.0.1" 1070 | optionalDependencies: 1071 | tsconfig-paths "^3.5.0" 1072 | 1073 | ts-node@7.0.1: 1074 | version "7.0.1" 1075 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf" 1076 | integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw== 1077 | dependencies: 1078 | arrify "^1.0.0" 1079 | buffer-from "^1.1.0" 1080 | diff "^3.1.0" 1081 | make-error "^1.1.1" 1082 | minimist "^1.2.0" 1083 | mkdirp "^0.5.1" 1084 | source-map-support "^0.5.6" 1085 | yn "^2.0.0" 1086 | 1087 | tsconfig-paths@^3.5.0: 1088 | version "3.15.0" 1089 | resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" 1090 | integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== 1091 | dependencies: 1092 | "@types/json5" "^0.0.29" 1093 | json5 "^1.0.2" 1094 | minimist "^1.2.6" 1095 | strip-bom "^3.0.0" 1096 | 1097 | tslib@^2.0.3: 1098 | version "2.6.2" 1099 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" 1100 | integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== 1101 | 1102 | typescript@^5.4.5: 1103 | version "5.4.5" 1104 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" 1105 | integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== 1106 | 1107 | undici-types@~5.26.4: 1108 | version "5.26.5" 1109 | resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" 1110 | integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== 1111 | 1112 | utf-8-validate@^5.0.2: 1113 | version "5.0.10" 1114 | resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" 1115 | integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== 1116 | dependencies: 1117 | node-gyp-build "^4.3.0" 1118 | 1119 | uuid@^8.3.2: 1120 | version "8.3.2" 1121 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" 1122 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== 1123 | 1124 | webidl-conversions@^3.0.0: 1125 | version "3.0.1" 1126 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" 1127 | integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== 1128 | 1129 | whatwg-url@^5.0.0: 1130 | version "5.0.0" 1131 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" 1132 | integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== 1133 | dependencies: 1134 | tr46 "~0.0.3" 1135 | webidl-conversions "^3.0.0" 1136 | 1137 | workerpool@6.2.1: 1138 | version "6.2.1" 1139 | resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" 1140 | integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== 1141 | 1142 | wrap-ansi@^7.0.0: 1143 | version "7.0.0" 1144 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 1145 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 1146 | dependencies: 1147 | ansi-styles "^4.0.0" 1148 | string-width "^4.1.0" 1149 | strip-ansi "^6.0.0" 1150 | 1151 | wrappy@1: 1152 | version "1.0.2" 1153 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1154 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 1155 | 1156 | ws@^7.4.5: 1157 | version "7.5.9" 1158 | resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" 1159 | integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== 1160 | 1161 | ws@^8.5.0: 1162 | version "8.17.0" 1163 | resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea" 1164 | integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== 1165 | 1166 | y18n@^5.0.5: 1167 | version "5.0.8" 1168 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" 1169 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== 1170 | 1171 | yargs-parser@20.2.4: 1172 | version "20.2.4" 1173 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" 1174 | integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== 1175 | 1176 | yargs-parser@^20.2.2: 1177 | version "20.2.9" 1178 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" 1179 | integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== 1180 | 1181 | yargs-unparser@2.0.0: 1182 | version "2.0.0" 1183 | resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" 1184 | integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== 1185 | dependencies: 1186 | camelcase "^6.0.0" 1187 | decamelize "^4.0.0" 1188 | flat "^5.0.2" 1189 | is-plain-obj "^2.1.0" 1190 | 1191 | yargs@16.2.0: 1192 | version "16.2.0" 1193 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" 1194 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== 1195 | dependencies: 1196 | cliui "^7.0.2" 1197 | escalade "^3.1.1" 1198 | get-caller-file "^2.0.5" 1199 | require-directory "^2.1.1" 1200 | string-width "^4.2.0" 1201 | y18n "^5.0.5" 1202 | yargs-parser "^20.2.2" 1203 | 1204 | yn@^2.0.0: 1205 | version "2.0.0" 1206 | resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" 1207 | integrity sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ== 1208 | 1209 | yocto-queue@^0.1.0: 1210 | version "0.1.0" 1211 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 1212 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 1213 | --------------------------------------------------------------------------------