diff --git a/contracts/crates/arrayvec/src/lib.rs b/contracts/crates/arrayvec/src/lib.rs
index dfc8a12e3..e32e6a9c5 100644
--- a/contracts/crates/arrayvec/src/lib.rs
+++ b/contracts/crates/arrayvec/src/lib.rs
@@ -1,4 +1,4 @@
-//! This is a tiny arrayvec implementation that efficiently implements a few common operations
+//! This is a tiny arrayvec implementation (https://docs.rs/arrayvec/) that efficiently implements a few common operations
//! We're able to simplify the code significantly due to the elements being Pod/Zeroable.
// use anchor_lang::prelude::*;
diff --git a/contracts/examples/hello-world/.gitignore b/contracts/examples/hello-world/.gitignore
deleted file mode 100644
index 51448d4da..000000000
--- a/contracts/examples/hello-world/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-
-.anchor
-.DS_Store
-target
-**/*.rs.bk
-node_modules
diff --git a/contracts/examples/hello-world/Anchor.toml b/contracts/examples/hello-world/Anchor.toml
deleted file mode 100644
index 7d07e8c13..000000000
--- a/contracts/examples/hello-world/Anchor.toml
+++ /dev/null
@@ -1,21 +0,0 @@
-[programs.localnet]
-hello_world = "Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"
-
-[registry]
-url = "https://anchor.projectserum.com"
-
-[provider]
-cluster = "localnet"
-# wallet = "~/.config/solana/id.json"
-wallet = "../../id.json"
-
-[scripts]
-test = "yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
-
-[[test.genesis]]
-address = "A7Jh2nb1hZHwqEofm4N8SXbKTj82rx7KUfjParQXUyMQ"
-program = "../../target/deploy/store.so"
-
-[[test.genesis]]
-address = "2F5NEkMnCRkmahEAcQfTQcZv1xtGgrWFfjENtTwHLuKg"
-program = "../../target/deploy/access_controller.so"
\ No newline at end of file
diff --git a/contracts/examples/hello-world/Cargo.lock b/contracts/examples/hello-world/Cargo.lock
deleted file mode 100644
index 66825fb9c..000000000
--- a/contracts/examples/hello-world/Cargo.lock
+++ /dev/null
@@ -1,1316 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "access-controller"
-version = "0.1.0"
-dependencies = [
- "anchor-lang",
- "arrayvec 0.1.0",
- "static_assertions",
-]
-
-[[package]]
-name = "ahash"
-version = "0.4.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e"
-
-[[package]]
-name = "aho-corasick"
-version = "0.7.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "anchor-attribute-access-control"
-version = "0.20.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "105c443a613f29212755fb6c5f946fa82dcf94a80528f643e0faa9d9faeb626b"
-dependencies = [
- "anchor-syn",
- "anyhow",
- "proc-macro2",
- "quote",
- "regex",
- "syn",
-]
-
-[[package]]
-name = "anchor-attribute-account"
-version = "0.20.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdae15851aa41972e9c18c987613c50a916c48c88c97ea3316156a5c772e5faa"
-dependencies = [
- "anchor-syn",
- "anyhow",
- "bs58 0.4.0",
- "proc-macro2",
- "quote",
- "rustversion",
- "syn",
-]
-
-[[package]]
-name = "anchor-attribute-constant"
-version = "0.20.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6356865217881d0bbea8aa70625937bec6d9952610f1ba2a2452a8e427000687"
-dependencies = [
- "anchor-syn",
- "proc-macro2",
- "syn",
-]
-
-[[package]]
-name = "anchor-attribute-error"
-version = "0.20.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebe998ce4e6e0cb0e291d1a1626bd30791cdfdd9d05523111bdf4fd053f08636"
-dependencies = [
- "anchor-syn",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "anchor-attribute-event"
-version = "0.20.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5810498a20554c20354f5648b6041172f2035e58d09ad40dc051dc0d1501f80"
-dependencies = [
- "anchor-syn",
- "anyhow",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "anchor-attribute-interface"
-version = "0.20.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac83f085b2be8b3a3412989cf96cf7f683561db7d357c5aa4aa11d48bbb22213"
-dependencies = [
- "anchor-syn",
- "anyhow",
- "heck",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "anchor-attribute-program"
-version = "0.20.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73c56be575d89abcb192afa29deb87b2cdb3c39033abc02f2d16e6af999b23b7"
-dependencies = [
- "anchor-syn",
- "anyhow",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "anchor-attribute-state"
-version = "0.20.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62ab002353b01fcb4f72cca256d5d62db39f9ff39b1d072280deee9798f1f524"
-dependencies = [
- "anchor-syn",
- "anyhow",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "anchor-derive-accounts"
-version = "0.20.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9e653cdb322078d95221384c4a527a403560e509ac7cb2b53d3bd664b23c4d6"
-dependencies = [
- "anchor-syn",
- "anyhow",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "anchor-lang"
-version = "0.20.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4815ad6334fd2f561f7ddcc3cfbeed87ed3003724171bd80ebe6383d5173ee8f"
-dependencies = [
- "anchor-attribute-access-control",
- "anchor-attribute-account",
- "anchor-attribute-constant",
- "anchor-attribute-error",
- "anchor-attribute-event",
- "anchor-attribute-interface",
- "anchor-attribute-program",
- "anchor-attribute-state",
- "anchor-derive-accounts",
- "arrayref",
- "base64 0.13.0",
- "bincode",
- "borsh",
- "bytemuck",
- "solana-program",
- "thiserror",
-]
-
-[[package]]
-name = "anchor-syn"
-version = "0.20.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3be7bfb6991d79cce3495fb6ce0892f58a5c75a74c8d1c2fc6f62926066eb9f4"
-dependencies = [
- "anyhow",
- "bs58 0.3.1",
- "heck",
- "proc-macro2",
- "proc-macro2-diagnostics",
- "quote",
- "serde",
- "serde_json",
- "sha2",
- "syn",
- "thiserror",
-]
-
-[[package]]
-name = "anyhow"
-version = "1.0.52"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84450d0b4a8bd1ba4144ce8ce718fbc5d071358b1e5384bace6536b3d1f2d5b3"
-
-[[package]]
-name = "arrayref"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
-
-[[package]]
-name = "arrayvec"
-version = "0.1.0"
-
-[[package]]
-name = "arrayvec"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
-
-[[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi",
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "autocfg"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
-
-[[package]]
-name = "base64"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
-
-[[package]]
-name = "base64"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
-
-[[package]]
-name = "bincode"
-version = "1.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "blake3"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "882e99e4a0cb2ae6cb6e442102e8e6b7131718d94110e64c3e6a34ea9b106f37"
-dependencies = [
- "arrayref",
- "arrayvec 0.7.2",
- "cc",
- "cfg-if",
- "constant_time_eq",
- "digest 0.10.1",
-]
-
-[[package]]
-name = "block-buffer"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
-dependencies = [
- "block-padding",
- "generic-array",
-]
-
-[[package]]
-name = "block-buffer"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1d36a02058e76b040de25a4464ba1c80935655595b661505c8b39b664828b95"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "block-padding"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
-
-[[package]]
-name = "borsh"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18dda7dc709193c0d86a1a51050a926dc3df1cf262ec46a23a25dba421ea1924"
-dependencies = [
- "borsh-derive",
- "hashbrown",
-]
-
-[[package]]
-name = "borsh-derive"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "684155372435f578c0fa1acd13ebbb182cc19d6b38b64ae7901da4393217d264"
-dependencies = [
- "borsh-derive-internal",
- "borsh-schema-derive-internal",
- "proc-macro-crate",
- "proc-macro2",
- "syn",
-]
-
-[[package]]
-name = "borsh-derive-internal"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2102f62f8b6d3edeab871830782285b64cc1830168094db05c8e458f209bc5c3"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "borsh-schema-derive-internal"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "196c978c4c9b0b142d446ef3240690bf5a8a33497074a113ff9a337ccb750483"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "bs58"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "476e9cd489f9e121e02ffa6014a8ef220ecb15c05ed23fc34cca13925dc283fb"
-
-[[package]]
-name = "bs58"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3"
-
-[[package]]
-name = "bumpalo"
-version = "3.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899"
-
-[[package]]
-name = "bv"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8834bb1d8ee5dc048ee3124f2c7c1afcc6bc9aed03f11e9dfd8c69470a5db340"
-dependencies = [
- "feature-probe",
- "serde",
-]
-
-[[package]]
-name = "bytemuck"
-version = "1.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "439989e6b8c38d1b6570a384ef1e49c8848128f5a97f3914baef02920842712f"
-dependencies = [
- "bytemuck_derive",
-]
-
-[[package]]
-name = "bytemuck_derive"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e215f8c2f9f79cb53c8335e687ffd07d5bfcb6fe5fc80723762d0be46e7cc54"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "byteorder"
-version = "1.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-
-[[package]]
-name = "cc"
-version = "1.0.72"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee"
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "console_error_panic_hook"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"
-dependencies = [
- "cfg-if",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "console_log"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "501a375961cef1a0d44767200e66e4a559283097e91d0730b1d75dfb2f8a1494"
-dependencies = [
- "log",
- "web-sys",
-]
-
-[[package]]
-name = "constant_time_eq"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
-
-[[package]]
-name = "cpufeatures"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "crunchy"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
-
-[[package]]
-name = "crypto-common"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "683d6b536309245c849479fba3da410962a43ed8e51c26b729208ec0ac2798d0"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "crypto-mac"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab"
-dependencies = [
- "generic-array",
- "subtle",
-]
-
-[[package]]
-name = "curve25519-dalek"
-version = "3.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61"
-dependencies = [
- "byteorder",
- "digest 0.9.0",
- "rand_core",
- "subtle",
- "zeroize",
-]
-
-[[package]]
-name = "digest"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "digest"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b697d66081d42af4fba142d56918a3cb21dc8eb63372c6b85d14f44fb9c5979b"
-dependencies = [
- "block-buffer 0.10.0",
- "crypto-common",
- "generic-array",
- "subtle",
-]
-
-[[package]]
-name = "either"
-version = "1.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
-
-[[package]]
-name = "env_logger"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3"
-dependencies = [
- "atty",
- "humantime",
- "log",
- "regex",
- "termcolor",
-]
-
-[[package]]
-name = "feature-probe"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da"
-
-[[package]]
-name = "generic-array"
-version = "0.14.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803"
-dependencies = [
- "serde",
- "typenum",
- "version_check",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
-dependencies = [
- "cfg-if",
- "js-sys",
- "libc",
- "wasi",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
-dependencies = [
- "ahash",
-]
-
-[[package]]
-name = "heck"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
-dependencies = [
- "unicode-segmentation",
-]
-
-[[package]]
-name = "hello-world"
-version = "0.1.0"
-dependencies = [
- "anchor-lang",
- "store",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hmac"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840"
-dependencies = [
- "crypto-mac",
- "digest 0.9.0",
-]
-
-[[package]]
-name = "hmac-drbg"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1"
-dependencies = [
- "digest 0.9.0",
- "generic-array",
- "hmac",
-]
-
-[[package]]
-name = "humantime"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-
-[[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "itertools"
-version = "0.10.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
-dependencies = [
- "either",
-]
-
-[[package]]
-name = "itoa"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
-
-[[package]]
-name = "js-sys"
-version = "0.3.55"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84"
-dependencies = [
- "wasm-bindgen",
-]
-
-[[package]]
-name = "keccak"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7"
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "libc"
-version = "0.2.112"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125"
-
-[[package]]
-name = "libsecp256k1"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73"
-dependencies = [
- "arrayref",
- "base64 0.12.3",
- "digest 0.9.0",
- "hmac-drbg",
- "libsecp256k1-core",
- "libsecp256k1-gen-ecmult",
- "libsecp256k1-gen-genmult",
- "rand",
- "serde",
- "sha2",
- "typenum",
-]
-
-[[package]]
-name = "libsecp256k1-core"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80"
-dependencies = [
- "crunchy",
- "digest 0.9.0",
- "subtle",
-]
-
-[[package]]
-name = "libsecp256k1-gen-ecmult"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3"
-dependencies = [
- "libsecp256k1-core",
-]
-
-[[package]]
-name = "libsecp256k1-gen-genmult"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d"
-dependencies = [
- "libsecp256k1-core",
-]
-
-[[package]]
-name = "lock_api"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109"
-dependencies = [
- "scopeguard",
-]
-
-[[package]]
-name = "log"
-version = "0.4.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "memchr"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
-
-[[package]]
-name = "memmap2"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe3179b85e1fd8b14447cbebadb75e45a1002f541b925f0bfec366d56a81c56d"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "num-derive"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "opaque-debug"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
-
-[[package]]
-name = "parking_lot"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
-dependencies = [
- "instant",
- "lock_api",
- "parking_lot_core",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
-dependencies = [
- "cfg-if",
- "instant",
- "libc",
- "redox_syscall",
- "smallvec",
- "winapi",
-]
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
-
-[[package]]
-name = "proc-macro-crate"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
-dependencies = [
- "toml",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.36"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
-dependencies = [
- "unicode-xid",
-]
-
-[[package]]
-name = "proc-macro2-diagnostics"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bf29726d67464d49fa6224a1d07936a8c08bb3fba727c7493f6cf1616fdaada"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "version_check",
- "yansi",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47aa80447ce4daf1717500037052af176af5d38cc3e571d9ec1c7353fc10c87d"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "rand"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-dependencies = [
- "getrandom",
- "libc",
- "rand_chacha",
- "rand_core",
- "rand_hc",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-dependencies = [
- "ppv-lite86",
- "rand_core",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-dependencies = [
- "rand_core",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.2.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "regex"
-version = "1.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.6.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
-
-[[package]]
-name = "rustc_version"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
-dependencies = [
- "semver",
-]
-
-[[package]]
-name = "rustversion"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f"
-
-[[package]]
-name = "ryu"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"
-
-[[package]]
-name = "scopeguard"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-
-[[package]]
-name = "semver"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012"
-
-[[package]]
-name = "serde"
-version = "1.0.133"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97565067517b60e2d1ea8b268e59ce036de907ac523ad83a0475da04e818989a"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_bytes"
-version = "0.11.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16ae07dd2f88a366f15bd0632ba725227018c69a1c8550a927324f8eb8368bb9"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.133"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed201699328568d8d08208fdd080e3ff594e6c422e438b6705905da01005d537"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.74"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee2bb9cd061c5865d345bb02ca49fcef1391741b672b54a0bf7b679badec3142"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "sha2"
-version = "0.9.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800"
-dependencies = [
- "block-buffer 0.9.0",
- "cfg-if",
- "cpufeatures",
- "digest 0.9.0",
- "opaque-debug",
-]
-
-[[package]]
-name = "sha3"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809"
-dependencies = [
- "block-buffer 0.9.0",
- "digest 0.9.0",
- "keccak",
- "opaque-debug",
-]
-
-[[package]]
-name = "smallvec"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309"
-
-[[package]]
-name = "solana-frozen-abi"
-version = "1.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c89bcde59ac3e8d4dbf7c4d990b0627b8ca0d25394c4ce17896dde7a1452e40c"
-dependencies = [
- "bs58 0.4.0",
- "bv",
- "generic-array",
- "log",
- "memmap2",
- "rustc_version",
- "serde",
- "serde_derive",
- "sha2",
- "solana-frozen-abi-macro",
- "solana-logger",
- "thiserror",
-]
-
-[[package]]
-name = "solana-frozen-abi-macro"
-version = "1.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56a7d630da35993631ecc4dd155f92d0d58000cdde3d5e2764fe9fd49d20a3a8"
-dependencies = [
- "proc-macro2",
- "quote",
- "rustc_version",
- "syn",
-]
-
-[[package]]
-name = "solana-logger"
-version = "1.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6eaf925bb665de46f96fcea2c8a900d0d870a96fd1f50cf2bad16e22a1da71c4"
-dependencies = [
- "env_logger",
- "lazy_static",
- "log",
-]
-
-[[package]]
-name = "solana-program"
-version = "1.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fc4d7a0baa649a3bda06d6a1cc30bd3d8ac692702a75fa8e76369cf7b3f6329"
-dependencies = [
- "base64 0.13.0",
- "bincode",
- "bitflags",
- "blake3",
- "borsh",
- "borsh-derive",
- "bs58 0.4.0",
- "bv",
- "bytemuck",
- "console_error_panic_hook",
- "console_log",
- "curve25519-dalek",
- "getrandom",
- "itertools",
- "js-sys",
- "lazy_static",
- "libsecp256k1",
- "log",
- "num-derive",
- "num-traits",
- "parking_lot",
- "rand",
- "rustc_version",
- "rustversion",
- "serde",
- "serde_bytes",
- "serde_derive",
- "sha2",
- "sha3",
- "solana-frozen-abi",
- "solana-frozen-abi-macro",
- "solana-logger",
- "solana-sdk-macro",
- "thiserror",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "solana-sdk-macro"
-version = "1.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec22a924c73abe3376a2046715a2f6a9ae4094095b8ea08e8e56e8de198264ad"
-dependencies = [
- "bs58 0.4.0",
- "proc-macro2",
- "quote",
- "rustversion",
- "syn",
-]
-
-[[package]]
-name = "static_assertions"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
-
-[[package]]
-name = "store"
-version = "0.1.0"
-dependencies = [
- "access-controller",
- "anchor-lang",
- "arrayvec 0.1.0",
- "bytemuck",
-]
-
-[[package]]
-name = "subtle"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
-
-[[package]]
-name = "syn"
-version = "1.0.85"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a684ac3dcd8913827e18cd09a68384ee66c1de24157e3c556c9ab16d85695fb7"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-xid",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "thiserror"
-version = "1.0.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
-dependencies = [
- "thiserror-impl",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "toml"
-version = "0.5.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "typenum"
-version = "1.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
-
-[[package]]
-name = "unicode-segmentation"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b"
-
-[[package]]
-name = "unicode-xid"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
-
-[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
-name = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-
-[[package]]
-name = "wasm-bindgen"
-version = "0.2.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce"
-dependencies = [
- "cfg-if",
- "wasm-bindgen-macro",
-]
-
-[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b"
-dependencies = [
- "bumpalo",
- "lazy_static",
- "log",
- "proc-macro2",
- "quote",
- "syn",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9"
-dependencies = [
- "quote",
- "wasm-bindgen-macro-support",
-]
-
-[[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "wasm-bindgen-backend",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc"
-
-[[package]]
-name = "web-sys"
-version = "0.3.55"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "yansi"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fc79f4a1e39857fc00c3f662cbf2651c771f00e9c15fe2abc341806bd46bd71"
-
-[[package]]
-name = "zeroize"
-version = "1.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d68d9dcec5f9b43a30d38c49f91dfedfaac384cb8f085faca366c26207dd1619"
diff --git a/contracts/examples/hello-world/Cargo.toml b/contracts/examples/hello-world/Cargo.toml
deleted file mode 100644
index a60de986d..000000000
--- a/contracts/examples/hello-world/Cargo.toml
+++ /dev/null
@@ -1,4 +0,0 @@
-[workspace]
-members = [
- "programs/*"
-]
diff --git a/contracts/examples/hello-world/migrations/deploy.ts b/contracts/examples/hello-world/migrations/deploy.ts
deleted file mode 100644
index 325cf3d0e..000000000
--- a/contracts/examples/hello-world/migrations/deploy.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-// Migrations are an early feature. Currently, they're nothing more than this
-// single deploy script that's invoked from the CLI, injecting a provider
-// configured from the workspace's Anchor.toml.
-
-const anchor = require("@project-serum/anchor");
-
-module.exports = async function (provider) {
- // Configure client to use the provider.
- anchor.setProvider(provider);
-
- // Add your deploy script here.
-}
diff --git a/contracts/examples/hello-world/package.json b/contracts/examples/hello-world/package.json
deleted file mode 100644
index 82135e72e..000000000
--- a/contracts/examples/hello-world/package.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "dependencies": {
- "@project-serum/anchor": "^0.20.1"
- },
- "devDependencies": {
- "chai": "^4.3.4",
- "mocha": "^9.0.3",
- "ts-mocha": "^8.0.0",
- "@types/mocha": "^9.0.0",
- "typescript": "^4.3.5"
- }
-}
diff --git a/contracts/examples/hello-world/programs/hello-world/Cargo.toml b/contracts/examples/hello-world/programs/hello-world/Cargo.toml
deleted file mode 100644
index cf7089760..000000000
--- a/contracts/examples/hello-world/programs/hello-world/Cargo.toml
+++ /dev/null
@@ -1,24 +0,0 @@
-[package]
-name = "hello-world"
-version = "0.1.0"
-description = "Created with Anchor"
-edition = "2018"
-
-[lib]
-crate-type = ["cdylib", "lib"]
-name = "hello_world"
-
-[features]
-no-entrypoint = []
-no-idl = []
-no-log-ix-name = []
-cpi = ["no-entrypoint"]
-mainnet = ["chainlink-solana/mainnet"]
-testnet = ["chainlink-solana/testnet"]
-devnet = ["chainlink-solana/devnet"]
-localnet = ["chainlink-solana/localnet"]
-default = ["localnet"]
-
-[dependencies]
-anchor-lang = "0.20.1"
-chainlink-solana = { version = "0.1.0", package = "store", path = "../../../../programs/store", default-features = false, features = ["cpi"] }
diff --git a/contracts/examples/hello-world/programs/hello-world/Xargo.toml b/contracts/examples/hello-world/programs/hello-world/Xargo.toml
deleted file mode 100644
index 475fb71ed..000000000
--- a/contracts/examples/hello-world/programs/hello-world/Xargo.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-[target.bpfel-unknown-unknown.dependencies.std]
-features = []
diff --git a/contracts/examples/hello-world/programs/hello-world/src/lib.rs b/contracts/examples/hello-world/programs/hello-world/src/lib.rs
deleted file mode 100644
index 81446c78f..000000000
--- a/contracts/examples/hello-world/programs/hello-world/src/lib.rs
+++ /dev/null
@@ -1,55 +0,0 @@
-use anchor_lang::prelude::*;
-
-use chainlink_solana::accessors as chainlink;
-
-declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS");
-
-const DECIMALS: u32 = 18;
-
-struct Decimal {
- pub value: i128,
- pub decimals: u32,
-}
-
-impl Decimal {
- pub fn new(value: i128, decimals: u32) -> Self {
- Decimal { value, decimals }
- }
-}
-
-impl std::fmt::Display for Decimal {
- fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
- let mut scaled_val = self.value.to_string();
- if scaled_val.len() <= self.decimals as usize {
- scaled_val.insert_str(
- 0,
- &vec!["0"; self.decimals as usize - scaled_val.len()].join(""),
- );
- scaled_val.insert_str(0, "0.");
- } else {
- scaled_val.insert(scaled_val.len() - self.decimals as usize, '.');
- }
- f.write_str(&scaled_val)
- }
-}
-
-#[program]
-pub mod hello_world {
- use super::*;
- pub fn execute(ctx: Context) -> ProgramResult {
- let round = chainlink::latest_round_data(
- ctx.accounts.chainlink_program.to_account_info(),
- ctx.accounts.chainlink_feed.to_account_info(),
- )?;
-
- let decimal = Decimal::new(round.answer, DECIMALS);
- msg!("Price is {}", decimal);
- Ok(())
- }
-}
-
-#[derive(Accounts)]
-pub struct Execute<'info> {
- pub chainlink_feed: AccountInfo<'info>,
- pub chainlink_program: AccountInfo<'info>,
-}
diff --git a/contracts/examples/hello-world/tests/hello-world.ts b/contracts/examples/hello-world/tests/hello-world.ts
deleted file mode 100644
index f2de6b2f0..000000000
--- a/contracts/examples/hello-world/tests/hello-world.ts
+++ /dev/null
@@ -1,116 +0,0 @@
-import * as anchor from '@project-serum/anchor';
-import * as fs from 'fs';
-import { Program, BN } from '@project-serum/anchor';
-import { HelloWorld } from '../target/types/hello_world';
-
-const CHAINLINK_PROGRAM_ID = "A7Jh2nb1hZHwqEofm4N8SXbKTj82rx7KUfjParQXUyMQ";
-
-describe('hello-world', () => {
- const provider = anchor.Provider.env();
-
- // Configure the client to use the local cluster.
- anchor.setProvider(provider);
-
- const program = anchor.workspace.HelloWorld as Program;
-
- it('Is initialized!', async () => {
- const owner = provider.wallet;
- const store = anchor.web3.Keypair.generate();
- const feed = anchor.web3.Keypair.generate();
- const accessController = anchor.web3.Keypair.generate();
-
- let storeIdl = JSON.parse(fs.readFileSync('../../target/idl/store.json'));
- const storeProgram = new Program(storeIdl, CHAINLINK_PROGRAM_ID, provider);
-
- let acIdl = JSON.parse(fs.readFileSync('../../target/idl/access_controller.json'));
- const accessControllerProgram = new Program(acIdl, "2F5NEkMnCRkmahEAcQfTQcZv1xtGgrWFfjENtTwHLuKg", provider);
-
- await accessControllerProgram.rpc.initialize({
- accounts: {
- state: accessController.publicKey,
- payer: provider.wallet.publicKey,
- owner: owner.publicKey,
- rent: anchor.web3.SYSVAR_RENT_PUBKEY,
- systemProgram: anchor.web3.SystemProgram.programId,
- },
- signers: [accessController],
- preInstructions: [
- await accessControllerProgram.account.accessController.createInstruction(accessController),
- ],
- });
-
- // Initialize a new store
- await storeProgram.rpc.initialize({
- accounts: {
- store: store.publicKey,
- owner: owner.publicKey,
- loweringAccessController: accessController.publicKey,
- },
- signers: [store],
- preInstructions: [
- await storeProgram.account.store.createInstruction(store),
- ],
- });
-
- // Create a feed
- const description = "FOO/BAR";
- const decimals = 18;
- const granularity = 30;
- const liveLength = 3;
- await storeProgram.rpc.createFeed(
- description,
- decimals,
- granularity,
- liveLength,
- {
- accounts: {
- store: store.publicKey,
- feed: feed.publicKey,
- authority: owner.publicKey,
- },
- signers: [feed],
- preInstructions: [
- await storeProgram.account.transmissions.createInstruction(feed, 8+128+6*24),
- ],
- });
-
- await storeProgram.rpc.setWriter(
- owner.publicKey,
- {
- accounts: {
- store: store.publicKey,
- feed: feed.publicKey,
- authority: owner.publicKey,
- },
- });
-
-
- const scale = (new BN(10)).pow(new BN(decimals));
- // Scale answer to enough decimals
- let answer = (new BN(1)).mul(scale);
- let round = { timestamp: new BN(1), answer };
-
- let tx = await storeProgram.rpc.submit(
- round,
- {
- accounts: {
- store: store.publicKey,
- feed: feed.publicKey,
- authority: owner.publicKey,
- },
- });
- await provider.connection.confirmTransaction(tx);
-
- // Add your test here.
- tx = await program.rpc.execute({
- accounts: {
- chainlinkFeed: feed.publicKey,
- chainlinkProgram: CHAINLINK_PROGRAM_ID
- },
- options: { commitment: "confirmed" },
- });
- console.log("Your transaction signature", tx);
- let t = await provider.connection.getConfirmedTransaction(tx, "confirmed");
- console.log(t.logMessages)
- });
-});
diff --git a/contracts/examples/hello-world/tsconfig.json b/contracts/examples/hello-world/tsconfig.json
deleted file mode 100644
index cd5d2e3d0..000000000
--- a/contracts/examples/hello-world/tsconfig.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "compilerOptions": {
- "types": ["mocha", "chai"],
- "typeRoots": ["./node_modules/@types"],
- "lib": ["es2015"],
- "module": "commonjs",
- "target": "es6",
- "esModuleInterop": true
- }
-}
diff --git a/contracts/examples/hello-world/yarn.lock b/contracts/examples/hello-world/yarn.lock
deleted file mode 100644
index e14710776..000000000
--- a/contracts/examples/hello-world/yarn.lock
+++ /dev/null
@@ -1,1197 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.7.tgz#03ff99f64106588c9c403c6ecb8c3bafbbdff1fa"
- integrity sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==
- dependencies:
- regenerator-runtime "^0.13.4"
-
-"@ethersproject/bytes@^5.5.0":
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c"
- integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog==
- dependencies:
- "@ethersproject/logger" "^5.5.0"
-
-"@ethersproject/logger@^5.5.0":
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d"
- integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg==
-
-"@ethersproject/sha2@^5.5.0":
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.5.0.tgz#a40a054c61f98fd9eee99af2c3cc6ff57ec24db7"
- integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA==
- dependencies:
- "@ethersproject/bytes" "^5.5.0"
- "@ethersproject/logger" "^5.5.0"
- hash.js "1.1.7"
-
-"@project-serum/anchor@^0.20.1":
- version "0.20.1"
- resolved "https://registry.yarnpkg.com/@project-serum/anchor/-/anchor-0.20.1.tgz#0937807e807e8332aa708cfef4bcb6cbb88b4129"
- integrity sha512-2TuBmGUn9qeYz6sJINJlElrBuPsaUAtYyUsJ3XplEBf1pczrANAgs5ceJUFzdiqGEWLn+84ObSdBeChT/AXYFA==
- dependencies:
- "@project-serum/borsh" "^0.2.2"
- "@solana/web3.js" "^1.17.0"
- base64-js "^1.5.1"
- bn.js "^5.1.2"
- bs58 "^4.0.1"
- buffer-layout "^1.2.2"
- camelcase "^5.3.1"
- crypto-hash "^1.3.0"
- eventemitter3 "^4.0.7"
- find "^0.3.0"
- js-sha256 "^0.9.0"
- pako "^2.0.3"
- snake-case "^3.0.4"
- toml "^3.0.0"
-
-"@project-serum/borsh@^0.2.2":
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/@project-serum/borsh/-/borsh-0.2.3.tgz#1d705c5887484cb6a127dd5feff58e90cbfcb558"
- integrity sha512-lH9zEYADZE3cxrgiFym8+jbUE3NM/LH+WOKYcUjs65CT10Q64Hv45bcAAa/phwYk4Tpz0uQ1x+ergFaAoGt67Q==
- dependencies:
- bn.js "^5.1.2"
- buffer-layout "^1.2.0"
-
-"@solana/buffer-layout@^3.0.0":
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-3.0.0.tgz#b9353caeb9a1589cb77a1b145bcb1a9a93114326"
- integrity sha512-MVdgAKKL39tEs0l8je0hKaXLQFb7Rdfb0Xg2LjFZd8Lfdazkg6xiS98uAZrEKvaoF3i4M95ei9RydkGIDMeo3w==
- dependencies:
- buffer "~6.0.3"
-
-"@solana/web3.js@^1.17.0":
- version "1.31.0"
- resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.31.0.tgz#7a313d4c1a90b77f27ddbfe845a10d6883e06452"
- integrity sha512-7nHHx1JNFnrt15e9y8m38I/EJCbaB+bFC3KZVM1+QhybCikFxGMtGA5r7PDC3GEL1R2RZA8yKoLkDKo3vzzqnw==
- dependencies:
- "@babel/runtime" "^7.12.5"
- "@ethersproject/sha2" "^5.5.0"
- "@solana/buffer-layout" "^3.0.0"
- bn.js "^5.0.0"
- borsh "^0.4.0"
- bs58 "^4.0.1"
- buffer "6.0.1"
- cross-fetch "^3.1.4"
- jayson "^3.4.4"
- js-sha3 "^0.8.0"
- rpc-websockets "^7.4.2"
- secp256k1 "^4.0.2"
- superstruct "^0.14.2"
- tweetnacl "^1.0.0"
-
-"@types/bn.js@^4.11.5":
- version "4.11.6"
- resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c"
- integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==
- dependencies:
- "@types/node" "*"
-
-"@types/connect@^3.4.33":
- version "3.4.35"
- resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1"
- integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==
- dependencies:
- "@types/node" "*"
-
-"@types/express-serve-static-core@^4.17.9":
- version "4.17.28"
- resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8"
- integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==
- dependencies:
- "@types/node" "*"
- "@types/qs" "*"
- "@types/range-parser" "*"
-
-"@types/json5@^0.0.29":
- version "0.0.29"
- resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
- integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4=
-
-"@types/lodash@^4.14.159":
- version "4.14.178"
- resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.178.tgz#341f6d2247db528d4a13ddbb374bcdc80406f4f8"
- integrity sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==
-
-"@types/mocha@^9.0.0":
- version "9.0.0"
- resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-9.0.0.tgz#3205bcd15ada9bc681ac20bef64e9e6df88fd297"
- integrity sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA==
-
-"@types/node@*":
- version "17.0.8"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.8.tgz#50d680c8a8a78fe30abe6906453b21ad8ab0ad7b"
- integrity sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==
-
-"@types/node@^12.12.54":
- version "12.20.41"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.41.tgz#81d7734c5257da9f04354bd9084a6ebbdd5198a5"
- integrity sha512-f6xOqucbDirG7LOzedpvzjP3UTmHttRou3Mosx3vL9wr9AIQGhcPgVnqa8ihpZYnxyM1rxeNCvTyukPKZtq10Q==
-
-"@types/qs@*":
- version "6.9.7"
- resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb"
- integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==
-
-"@types/range-parser@*":
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc"
- integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==
-
-"@types/ws@^7.4.4":
- version "7.4.7"
- resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702"
- integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==
- dependencies:
- "@types/node" "*"
-
-"@ungap/promise-all-settled@1.1.2":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44"
- integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==
-
-JSONStream@^1.3.5:
- version "1.3.5"
- resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
- integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==
- dependencies:
- jsonparse "^1.2.0"
- through ">=2.2.7 <3"
-
-ansi-colors@4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
- integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
-
-ansi-regex@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
- integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
-
-ansi-styles@^4.0.0, ansi-styles@^4.1.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
- integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
- dependencies:
- color-convert "^2.0.1"
-
-anymatch@~3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
- integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
- dependencies:
- normalize-path "^3.0.0"
- picomatch "^2.0.4"
-
-argparse@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
- integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
-
-arrify@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
- integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
-
-assertion-error@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
- integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==
-
-balanced-match@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
- integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-
-base-x@^3.0.2:
- version "3.0.9"
- resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320"
- integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==
- dependencies:
- safe-buffer "^5.0.1"
-
-base64-js@^1.3.1, base64-js@^1.5.1:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
- integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
-
-binary-extensions@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
- integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
-
-bn.js@^4.11.9:
- version "4.12.0"
- resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
- integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
-
-bn.js@^5.0.0, bn.js@^5.1.2:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002"
- integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==
-
-borsh@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.4.0.tgz#9dd6defe741627f1315eac2a73df61421f6ddb9f"
- integrity sha512-aX6qtLya3K0AkT66CmYWCCDr77qsE9arV05OmdFpmat9qu8Pg9J5tBUPDztAW5fNh/d/MyVG/OYziP52Ndzx1g==
- dependencies:
- "@types/bn.js" "^4.11.5"
- bn.js "^5.0.0"
- bs58 "^4.0.0"
- text-encoding-utf-8 "^1.0.2"
-
-brace-expansion@^1.1.7:
- version "1.1.11"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
- integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
- dependencies:
- balanced-match "^1.0.0"
- concat-map "0.0.1"
-
-braces@~3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
- integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
- dependencies:
- fill-range "^7.0.1"
-
-brorand@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
- integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
-
-browser-stdout@1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
- integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==
-
-bs58@^4.0.0, bs58@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a"
- integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo=
- dependencies:
- base-x "^3.0.2"
-
-buffer-from@^1.0.0, buffer-from@^1.1.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
- integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
-
-buffer-layout@^1.2.0, buffer-layout@^1.2.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5"
- integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==
-
-buffer@6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.1.tgz#3cbea8c1463e5a0779e30b66d4c88c6ffa182ac2"
- integrity sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==
- dependencies:
- base64-js "^1.3.1"
- ieee754 "^1.2.1"
-
-buffer@~6.0.3:
- version "6.0.3"
- resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
- integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
- dependencies:
- base64-js "^1.3.1"
- ieee754 "^1.2.1"
-
-bufferutil@^4.0.1:
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.6.tgz#ebd6c67c7922a0e902f053e5d8be5ec850e48433"
- integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==
- dependencies:
- node-gyp-build "^4.3.0"
-
-camelcase@^5.3.1:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
- integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
-
-camelcase@^6.0.0:
- version "6.3.0"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
- integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
-
-chai@^4.3.4:
- version "4.3.4"
- resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.4.tgz#b55e655b31e1eac7099be4c08c21964fce2e6c49"
- integrity sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==
- dependencies:
- assertion-error "^1.1.0"
- check-error "^1.0.2"
- deep-eql "^3.0.1"
- get-func-name "^2.0.0"
- pathval "^1.1.1"
- type-detect "^4.0.5"
-
-chalk@^4.1.0:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
- integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
- dependencies:
- ansi-styles "^4.1.0"
- supports-color "^7.1.0"
-
-check-error@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
- integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=
-
-chokidar@3.5.2:
- version "3.5.2"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75"
- integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==
- dependencies:
- anymatch "~3.1.2"
- braces "~3.0.2"
- glob-parent "~5.1.2"
- is-binary-path "~2.1.0"
- is-glob "~4.0.1"
- normalize-path "~3.0.0"
- readdirp "~3.6.0"
- optionalDependencies:
- fsevents "~2.3.2"
-
-circular-json@^0.5.9:
- version "0.5.9"
- resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.5.9.tgz#932763ae88f4f7dead7a0d09c8a51a4743a53b1d"
- integrity sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ==
-
-cliui@^7.0.2:
- version "7.0.4"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
- integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
- dependencies:
- string-width "^4.2.0"
- strip-ansi "^6.0.0"
- wrap-ansi "^7.0.0"
-
-color-convert@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
- integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
- dependencies:
- color-name "~1.1.4"
-
-color-name@~1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
- integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-
-commander@^2.20.3:
- version "2.20.3"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
- integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
-
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
- integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
-
-cross-fetch@^3.1.4:
- version "3.1.4"
- resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.4.tgz#9723f3a3a247bf8b89039f3a380a9244e8fa2f39"
- integrity sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==
- dependencies:
- node-fetch "2.6.1"
-
-crypto-hash@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247"
- integrity sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==
-
-debug@4.3.2:
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
- integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
- dependencies:
- ms "2.1.2"
-
-decamelize@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837"
- integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==
-
-deep-eql@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
- integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==
- dependencies:
- type-detect "^4.0.0"
-
-delay@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d"
- integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==
-
-diff@5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b"
- integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==
-
-diff@^3.1.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
- integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
-
-dot-case@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751"
- integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==
- dependencies:
- no-case "^3.0.4"
- tslib "^2.0.3"
-
-elliptic@^6.5.4:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
- integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
- dependencies:
- bn.js "^4.11.9"
- brorand "^1.1.0"
- hash.js "^1.0.0"
- hmac-drbg "^1.0.1"
- inherits "^2.0.4"
- minimalistic-assert "^1.0.1"
- minimalistic-crypto-utils "^1.0.1"
-
-emoji-regex@^8.0.0:
- version "8.0.0"
- resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
- integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
-
-es6-promise@^4.0.3:
- version "4.2.8"
- resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
- integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
-
-es6-promisify@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
- integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=
- dependencies:
- es6-promise "^4.0.3"
-
-escalade@^3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
- integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
-
-escape-string-regexp@4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
- integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
-
-eventemitter3@^4.0.7:
- version "4.0.7"
- resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
- integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
-
-eyes@^0.1.8:
- version "0.1.8"
- resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0"
- integrity sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=
-
-fill-range@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
- integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
- dependencies:
- to-regex-range "^5.0.1"
-
-find-up@5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
- integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
- dependencies:
- locate-path "^6.0.0"
- path-exists "^4.0.0"
-
-find@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/find/-/find-0.3.0.tgz#4082e8fc8d8320f1a382b5e4f521b9bc50775cb8"
- integrity sha512-iSd+O4OEYV/I36Zl8MdYJO0xD82wH528SaCieTVHhclgiYNe9y+yPKSwK+A7/WsmHL1EZ+pYUJBXWTL5qofksw==
- dependencies:
- traverse-chain "~0.1.0"
-
-flat@^5.0.2:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"
- integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
- integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
-
-fsevents@~2.3.2:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
- integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
-
-get-caller-file@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
- integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
-
-get-func-name@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
- integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=
-
-glob-parent@~5.1.2:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
- integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
- dependencies:
- is-glob "^4.0.1"
-
-glob@7.1.7:
- version "7.1.7"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
- integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.4"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-growl@1.10.5:
- version "1.10.5"
- resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
- integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
-
-has-flag@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
- integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
-
-hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
- integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
- dependencies:
- inherits "^2.0.3"
- minimalistic-assert "^1.0.1"
-
-he@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
- integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
-
-hmac-drbg@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
- integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
- dependencies:
- hash.js "^1.0.3"
- minimalistic-assert "^1.0.0"
- minimalistic-crypto-utils "^1.0.1"
-
-ieee754@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
- integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
-
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@2, inherits@^2.0.3, inherits@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
- integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
-is-binary-path@~2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
- integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
- dependencies:
- binary-extensions "^2.0.0"
-
-is-extglob@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
- integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
-
-is-fullwidth-code-point@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
- integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
-
-is-glob@^4.0.1, is-glob@~4.0.1:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
- integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
- dependencies:
- is-extglob "^2.1.1"
-
-is-number@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
- integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
-
-is-plain-obj@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
- integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
-
-is-unicode-supported@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7"
- integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
-
-isexe@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
- integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
-
-isomorphic-ws@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc"
- integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==
-
-jayson@^3.4.4:
- version "3.6.6"
- resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.6.6.tgz#189984f624e398f831bd2be8e8c80eb3abf764a1"
- integrity sha512-f71uvrAWTtrwoww6MKcl9phQTC+56AopLyEenWvKVAIMz+q0oVGj6tenLZ7Z6UiPBkJtKLj4kt0tACllFQruGQ==
- dependencies:
- "@types/connect" "^3.4.33"
- "@types/express-serve-static-core" "^4.17.9"
- "@types/lodash" "^4.14.159"
- "@types/node" "^12.12.54"
- "@types/ws" "^7.4.4"
- JSONStream "^1.3.5"
- commander "^2.20.3"
- delay "^5.0.0"
- es6-promisify "^5.0.0"
- eyes "^0.1.8"
- isomorphic-ws "^4.0.1"
- json-stringify-safe "^5.0.1"
- lodash "^4.17.20"
- uuid "^8.3.2"
- ws "^7.4.5"
-
-js-sha256@^0.9.0:
- version "0.9.0"
- resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966"
- integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==
-
-js-sha3@^0.8.0:
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840"
- integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==
-
-js-yaml@4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
- integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
- dependencies:
- argparse "^2.0.1"
-
-json-stringify-safe@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
- integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
-
-json5@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
- integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
- dependencies:
- minimist "^1.2.0"
-
-jsonparse@^1.2.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
- integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=
-
-locate-path@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
- integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
- dependencies:
- p-locate "^5.0.0"
-
-lodash@^4.17.20:
- version "4.17.21"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
- integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
-
-log-symbols@4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503"
- integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==
- dependencies:
- chalk "^4.1.0"
- is-unicode-supported "^0.1.0"
-
-lower-case@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
- integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==
- dependencies:
- tslib "^2.0.3"
-
-make-error@^1.1.1:
- version "1.3.6"
- resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
- integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
-
-minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
- integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
-
-minimalistic-crypto-utils@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
- integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
-
-minimatch@3.0.4, minimatch@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
- integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
- dependencies:
- brace-expansion "^1.1.7"
-
-minimist@^1.2.0, minimist@^1.2.5:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
- integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
-
-mkdirp@^0.5.1:
- version "0.5.5"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
- integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
- dependencies:
- minimist "^1.2.5"
-
-mocha@^9.0.3:
- version "9.1.3"
- resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.1.3.tgz#8a623be6b323810493d8c8f6f7667440fa469fdb"
- integrity sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw==
- dependencies:
- "@ungap/promise-all-settled" "1.1.2"
- ansi-colors "4.1.1"
- browser-stdout "1.3.1"
- chokidar "3.5.2"
- debug "4.3.2"
- diff "5.0.0"
- escape-string-regexp "4.0.0"
- find-up "5.0.0"
- glob "7.1.7"
- growl "1.10.5"
- he "1.2.0"
- js-yaml "4.1.0"
- log-symbols "4.1.0"
- minimatch "3.0.4"
- ms "2.1.3"
- nanoid "3.1.25"
- serialize-javascript "6.0.0"
- strip-json-comments "3.1.1"
- supports-color "8.1.1"
- which "2.0.2"
- workerpool "6.1.5"
- yargs "16.2.0"
- yargs-parser "20.2.4"
- yargs-unparser "2.0.0"
-
-ms@2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
- integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-
-ms@2.1.3:
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
- integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-
-nanoid@3.1.25:
- version "3.1.25"
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152"
- integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==
-
-no-case@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d"
- integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==
- dependencies:
- lower-case "^2.0.2"
- tslib "^2.0.3"
-
-node-addon-api@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32"
- integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==
-
-node-fetch@2.6.1:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
- integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
-
-node-gyp-build@^4.2.0, node-gyp-build@^4.3.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3"
- integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==
-
-normalize-path@^3.0.0, normalize-path@~3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
- integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
-
-once@^1.3.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
- dependencies:
- wrappy "1"
-
-p-limit@^3.0.2:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
- integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
- dependencies:
- yocto-queue "^0.1.0"
-
-p-locate@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
- integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
- dependencies:
- p-limit "^3.0.2"
-
-pako@^2.0.3:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.4.tgz#6cebc4bbb0b6c73b0d5b8d7e8476e2b2fbea576d"
- integrity sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg==
-
-path-exists@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
- integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
-
-path-is-absolute@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
- integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
-
-pathval@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d"
- integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==
-
-picomatch@^2.0.4, picomatch@^2.2.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
- integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
-
-randombytes@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
- integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
- dependencies:
- safe-buffer "^5.1.0"
-
-readdirp@~3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
- integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
- dependencies:
- picomatch "^2.2.1"
-
-regenerator-runtime@^0.13.4:
- version "0.13.9"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
- integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
-
-require-directory@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
- integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
-
-rpc-websockets@^7.4.2:
- version "7.4.16"
- resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.4.16.tgz#eb701cdef577d4357ba5f526d50e25f370396fac"
- integrity sha512-0b7OVhutzwRIaYAtJo5tqtaQTWKfwAsKnaThOSOy+VkhVdleNUgb8eZnWSdWITRZZEigV5uPEIDr5KZe4DBrdQ==
- dependencies:
- "@babel/runtime" "^7.11.2"
- circular-json "^0.5.9"
- eventemitter3 "^4.0.7"
- uuid "^8.3.0"
- ws "^7.4.5"
- optionalDependencies:
- bufferutil "^4.0.1"
- utf-8-validate "^5.0.2"
-
-safe-buffer@^5.0.1, safe-buffer@^5.1.0:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
- integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
-
-secp256k1@^4.0.2:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303"
- integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==
- dependencies:
- elliptic "^6.5.4"
- node-addon-api "^2.0.0"
- node-gyp-build "^4.2.0"
-
-serialize-javascript@6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8"
- integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==
- dependencies:
- randombytes "^2.1.0"
-
-snake-case@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c"
- integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==
- dependencies:
- dot-case "^3.0.4"
- tslib "^2.0.3"
-
-source-map-support@^0.5.6:
- version "0.5.21"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
- integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
- dependencies:
- buffer-from "^1.0.0"
- source-map "^0.6.0"
-
-source-map@^0.6.0:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
- integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-
-string-width@^4.1.0, string-width@^4.2.0:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
- integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
- dependencies:
- emoji-regex "^8.0.0"
- is-fullwidth-code-point "^3.0.0"
- strip-ansi "^6.0.1"
-
-strip-ansi@^6.0.0, strip-ansi@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
- integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
- dependencies:
- ansi-regex "^5.0.1"
-
-strip-bom@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
- integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
-
-strip-json-comments@3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
- integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
-
-superstruct@^0.14.2:
- version "0.14.2"
- resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.14.2.tgz#0dbcdf3d83676588828f1cf5ed35cda02f59025b"
- integrity sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==
-
-supports-color@8.1.1:
- version "8.1.1"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
- integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
- dependencies:
- has-flag "^4.0.0"
-
-supports-color@^7.1.0:
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
- integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
- dependencies:
- has-flag "^4.0.0"
-
-text-encoding-utf-8@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13"
- integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==
-
-"through@>=2.2.7 <3":
- version "2.3.8"
- resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
- integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
-
-to-regex-range@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
- integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
- dependencies:
- is-number "^7.0.0"
-
-toml@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee"
- integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==
-
-traverse-chain@~0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/traverse-chain/-/traverse-chain-0.1.0.tgz#61dbc2d53b69ff6091a12a168fd7d433107e40f1"
- integrity sha1-YdvC1Ttp/2CRoSoWj9fUMxB+QPE=
-
-ts-mocha@^8.0.0:
- version "8.0.0"
- resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-8.0.0.tgz#962d0fa12eeb6468aa1a6b594bb3bbc818da3ef0"
- integrity sha512-Kou1yxTlubLnD5C3unlCVO7nh0HERTezjoVhVw/M5S1SqoUec0WgllQvPk3vzPMc6by8m6xD1uR1yRf8lnVUbA==
- dependencies:
- ts-node "7.0.1"
- optionalDependencies:
- tsconfig-paths "^3.5.0"
-
-ts-node@7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf"
- integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==
- dependencies:
- arrify "^1.0.0"
- buffer-from "^1.1.0"
- diff "^3.1.0"
- make-error "^1.1.1"
- minimist "^1.2.0"
- mkdirp "^0.5.1"
- source-map-support "^0.5.6"
- yn "^2.0.0"
-
-tsconfig-paths@^3.5.0:
- version "3.12.0"
- resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b"
- integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==
- dependencies:
- "@types/json5" "^0.0.29"
- json5 "^1.0.1"
- minimist "^1.2.0"
- strip-bom "^3.0.0"
-
-tslib@^2.0.3:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
- integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
-
-tweetnacl@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596"
- integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==
-
-type-detect@^4.0.0, type-detect@^4.0.5:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
- integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
-
-typescript@^4.3.5:
- version "4.5.4"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.4.tgz#a17d3a0263bf5c8723b9c52f43c5084edf13c2e8"
- integrity sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==
-
-utf-8-validate@^5.0.2:
- version "5.0.8"
- resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.8.tgz#4a735a61661dbb1c59a0868c397d2fe263f14e58"
- integrity sha512-k4dW/Qja1BYDl2qD4tOMB9PFVha/UJtxTc1cXYOe3WwA/2m0Yn4qB7wLMpJyLJ/7DR0XnTut3HsCSzDT4ZvKgA==
- dependencies:
- node-gyp-build "^4.3.0"
-
-uuid@^8.3.0, uuid@^8.3.2:
- version "8.3.2"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
- integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
-
-which@2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
- integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
- dependencies:
- isexe "^2.0.0"
-
-workerpool@6.1.5:
- version "6.1.5"
- resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.5.tgz#0f7cf076b6215fd7e1da903ff6f22ddd1886b581"
- integrity sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==
-
-wrap-ansi@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
- integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
- dependencies:
- ansi-styles "^4.0.0"
- string-width "^4.1.0"
- strip-ansi "^6.0.0"
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
- integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-
-ws@^7.4.5:
- version "7.5.6"
- resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b"
- integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==
-
-y18n@^5.0.5:
- version "5.0.8"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
- integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
-
-yargs-parser@20.2.4:
- version "20.2.4"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"
- integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==
-
-yargs-parser@^20.2.2:
- version "20.2.9"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
- integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
-
-yargs-unparser@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb"
- integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==
- dependencies:
- camelcase "^6.0.0"
- decamelize "^4.0.0"
- flat "^5.0.2"
- is-plain-obj "^2.1.0"
-
-yargs@16.2.0:
- version "16.2.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
- integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
- dependencies:
- cliui "^7.0.2"
- escalade "^3.1.1"
- get-caller-file "^2.0.5"
- require-directory "^2.1.1"
- string-width "^4.2.0"
- y18n "^5.0.5"
- yargs-parser "^20.2.2"
-
-yn@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a"
- integrity sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=
-
-yocto-queue@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
- integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
diff --git a/contracts/generated/access_controller/AcceptOwnership.go b/contracts/generated/access_controller/AcceptOwnership.go
deleted file mode 100644
index 6c5177cde..000000000
--- a/contracts/generated/access_controller/AcceptOwnership.go
+++ /dev/null
@@ -1,117 +0,0 @@
-// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT.
-
-package access_controller
-
-import (
- "errors"
- ag_binary "github.com/gagliardetto/binary"
- ag_solanago "github.com/gagliardetto/solana-go"
- ag_format "github.com/gagliardetto/solana-go/text/format"
- ag_treeout "github.com/gagliardetto/treeout"
-)
-
-// AcceptOwnership is the `acceptOwnership` instruction.
-type AcceptOwnership struct {
-
- // [0] = [WRITE] state
- //
- // [1] = [SIGNER] authority
- ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"`
-}
-
-// NewAcceptOwnershipInstructionBuilder creates a new `AcceptOwnership` instruction builder.
-func NewAcceptOwnershipInstructionBuilder() *AcceptOwnership {
- nd := &AcceptOwnership{
- AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 2),
- }
- return nd
-}
-
-// SetStateAccount sets the "state" account.
-func (inst *AcceptOwnership) SetStateAccount(state ag_solanago.PublicKey) *AcceptOwnership {
- inst.AccountMetaSlice[0] = ag_solanago.Meta(state).WRITE()
- return inst
-}
-
-// GetStateAccount gets the "state" account.
-func (inst *AcceptOwnership) GetStateAccount() *ag_solanago.AccountMeta {
- return inst.AccountMetaSlice[0]
-}
-
-// SetAuthorityAccount sets the "authority" account.
-func (inst *AcceptOwnership) SetAuthorityAccount(authority ag_solanago.PublicKey) *AcceptOwnership {
- inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).SIGNER()
- return inst
-}
-
-// GetAuthorityAccount gets the "authority" account.
-func (inst *AcceptOwnership) GetAuthorityAccount() *ag_solanago.AccountMeta {
- return inst.AccountMetaSlice[1]
-}
-
-func (inst AcceptOwnership) Build() *Instruction {
- return &Instruction{BaseVariant: ag_binary.BaseVariant{
- Impl: inst,
- TypeID: Instruction_AcceptOwnership,
- }}
-}
-
-// ValidateAndBuild validates the instruction parameters and accounts;
-// if there is a validation error, it returns the error.
-// Otherwise, it builds and returns the instruction.
-func (inst AcceptOwnership) ValidateAndBuild() (*Instruction, error) {
- if err := inst.Validate(); err != nil {
- return nil, err
- }
- return inst.Build(), nil
-}
-
-func (inst *AcceptOwnership) Validate() error {
- // Check whether all (required) accounts are set:
- {
- if inst.AccountMetaSlice[0] == nil {
- return errors.New("accounts.State is not set")
- }
- if inst.AccountMetaSlice[1] == nil {
- return errors.New("accounts.Authority is not set")
- }
- }
- return nil
-}
-
-func (inst *AcceptOwnership) EncodeToTree(parent ag_treeout.Branches) {
- parent.Child(ag_format.Program(ProgramName, ProgramID)).
- //
- ParentFunc(func(programBranch ag_treeout.Branches) {
- programBranch.Child(ag_format.Instruction("AcceptOwnership")).
- //
- ParentFunc(func(instructionBranch ag_treeout.Branches) {
-
- // Parameters of the instruction:
- instructionBranch.Child("Params[len=0]").ParentFunc(func(paramsBranch ag_treeout.Branches) {})
-
- // Accounts of the instruction:
- instructionBranch.Child("Accounts[len=2]").ParentFunc(func(accountsBranch ag_treeout.Branches) {
- accountsBranch.Child(ag_format.Meta(" state", inst.AccountMetaSlice[0]))
- accountsBranch.Child(ag_format.Meta("authority", inst.AccountMetaSlice[1]))
- })
- })
- })
-}
-
-func (obj AcceptOwnership) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) {
- return nil
-}
-func (obj *AcceptOwnership) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) {
- return nil
-}
-
-// NewAcceptOwnershipInstruction declares a new AcceptOwnership instruction with the provided parameters and accounts.
-func NewAcceptOwnershipInstruction(
- // Accounts:
- state ag_solanago.PublicKey,
- authority ag_solanago.PublicKey) *AcceptOwnership {
- return NewAcceptOwnershipInstructionBuilder().
- SetStateAccount(state).
- SetAuthorityAccount(authority)
-}
diff --git a/contracts/generated/access_controller/AcceptOwnership_test.go b/contracts/generated/access_controller/AcceptOwnership_test.go
deleted file mode 100644
index 01601d616..000000000
--- a/contracts/generated/access_controller/AcceptOwnership_test.go
+++ /dev/null
@@ -1,33 +0,0 @@
-// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT.
-
-package access_controller
-
-import (
- "bytes"
- ag_gofuzz "github.com/gagliardetto/gofuzz"
- ag_require "github.com/stretchr/testify/require"
- "strconv"
- "testing"
-)
-
-func TestEncodeDecode_AcceptOwnership(t *testing.T) {
- fu := ag_gofuzz.New().NilChance(0)
- for i := 0; i < 1; i++ {
- t.Run("AcceptOwnership"+strconv.Itoa(i), func(t *testing.T) {
- {
- params := new(AcceptOwnership)
- fu.Fuzz(params)
- params.AccountMetaSlice = nil
- buf := new(bytes.Buffer)
- err := encodeT(*params, buf)
- ag_require.NoError(t, err)
- //
- got := new(AcceptOwnership)
- err = decodeT(got, buf.Bytes())
- got.AccountMetaSlice = nil
- ag_require.NoError(t, err)
- ag_require.Equal(t, params, got)
- }
- })
- }
-}
diff --git a/contracts/generated/access_controller/TransferOwnership.go b/contracts/generated/access_controller/TransferOwnership.go
deleted file mode 100644
index c6b8f3f50..000000000
--- a/contracts/generated/access_controller/TransferOwnership.go
+++ /dev/null
@@ -1,146 +0,0 @@
-// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT.
-
-package access_controller
-
-import (
- "errors"
- ag_binary "github.com/gagliardetto/binary"
- ag_solanago "github.com/gagliardetto/solana-go"
- ag_format "github.com/gagliardetto/solana-go/text/format"
- ag_treeout "github.com/gagliardetto/treeout"
-)
-
-// TransferOwnership is the `transferOwnership` instruction.
-type TransferOwnership struct {
- ProposedOwner *ag_solanago.PublicKey
-
- // [0] = [WRITE] state
- //
- // [1] = [SIGNER] authority
- ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"`
-}
-
-// NewTransferOwnershipInstructionBuilder creates a new `TransferOwnership` instruction builder.
-func NewTransferOwnershipInstructionBuilder() *TransferOwnership {
- nd := &TransferOwnership{
- AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 2),
- }
- return nd
-}
-
-// SetProposedOwner sets the "proposedOwner" parameter.
-func (inst *TransferOwnership) SetProposedOwner(proposedOwner ag_solanago.PublicKey) *TransferOwnership {
- inst.ProposedOwner = &proposedOwner
- return inst
-}
-
-// SetStateAccount sets the "state" account.
-func (inst *TransferOwnership) SetStateAccount(state ag_solanago.PublicKey) *TransferOwnership {
- inst.AccountMetaSlice[0] = ag_solanago.Meta(state).WRITE()
- return inst
-}
-
-// GetStateAccount gets the "state" account.
-func (inst *TransferOwnership) GetStateAccount() *ag_solanago.AccountMeta {
- return inst.AccountMetaSlice[0]
-}
-
-// SetAuthorityAccount sets the "authority" account.
-func (inst *TransferOwnership) SetAuthorityAccount(authority ag_solanago.PublicKey) *TransferOwnership {
- inst.AccountMetaSlice[1] = ag_solanago.Meta(authority).SIGNER()
- return inst
-}
-
-// GetAuthorityAccount gets the "authority" account.
-func (inst *TransferOwnership) GetAuthorityAccount() *ag_solanago.AccountMeta {
- return inst.AccountMetaSlice[1]
-}
-
-func (inst TransferOwnership) Build() *Instruction {
- return &Instruction{BaseVariant: ag_binary.BaseVariant{
- Impl: inst,
- TypeID: Instruction_TransferOwnership,
- }}
-}
-
-// ValidateAndBuild validates the instruction parameters and accounts;
-// if there is a validation error, it returns the error.
-// Otherwise, it builds and returns the instruction.
-func (inst TransferOwnership) ValidateAndBuild() (*Instruction, error) {
- if err := inst.Validate(); err != nil {
- return nil, err
- }
- return inst.Build(), nil
-}
-
-func (inst *TransferOwnership) Validate() error {
- // Check whether all (required) parameters are set:
- {
- if inst.ProposedOwner == nil {
- return errors.New("ProposedOwner parameter is not set")
- }
- }
-
- // Check whether all (required) accounts are set:
- {
- if inst.AccountMetaSlice[0] == nil {
- return errors.New("accounts.State is not set")
- }
- if inst.AccountMetaSlice[1] == nil {
- return errors.New("accounts.Authority is not set")
- }
- }
- return nil
-}
-
-func (inst *TransferOwnership) EncodeToTree(parent ag_treeout.Branches) {
- parent.Child(ag_format.Program(ProgramName, ProgramID)).
- //
- ParentFunc(func(programBranch ag_treeout.Branches) {
- programBranch.Child(ag_format.Instruction("TransferOwnership")).
- //
- ParentFunc(func(instructionBranch ag_treeout.Branches) {
-
- // Parameters of the instruction:
- instructionBranch.Child("Params[len=1]").ParentFunc(func(paramsBranch ag_treeout.Branches) {
- paramsBranch.Child(ag_format.Param("ProposedOwner", *inst.ProposedOwner))
- })
-
- // Accounts of the instruction:
- instructionBranch.Child("Accounts[len=2]").ParentFunc(func(accountsBranch ag_treeout.Branches) {
- accountsBranch.Child(ag_format.Meta(" state", inst.AccountMetaSlice[0]))
- accountsBranch.Child(ag_format.Meta("authority", inst.AccountMetaSlice[1]))
- })
- })
- })
-}
-
-func (obj TransferOwnership) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) {
- // Serialize `ProposedOwner` param:
- err = encoder.Encode(obj.ProposedOwner)
- if err != nil {
- return err
- }
- return nil
-}
-func (obj *TransferOwnership) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) {
- // Deserialize `ProposedOwner`:
- err = decoder.Decode(&obj.ProposedOwner)
- if err != nil {
- return err
- }
- return nil
-}
-
-// NewTransferOwnershipInstruction declares a new TransferOwnership instruction with the provided parameters and accounts.
-func NewTransferOwnershipInstruction(
- // Parameters:
- proposedOwner ag_solanago.PublicKey,
- // Accounts:
- state ag_solanago.PublicKey,
- authority ag_solanago.PublicKey) *TransferOwnership {
- return NewTransferOwnershipInstructionBuilder().
- SetProposedOwner(proposedOwner).
- SetStateAccount(state).
- SetAuthorityAccount(authority)
-}
diff --git a/contracts/generated/access_controller/TransferOwnership_test.go b/contracts/generated/access_controller/TransferOwnership_test.go
deleted file mode 100644
index 7eb2d75ac..000000000
--- a/contracts/generated/access_controller/TransferOwnership_test.go
+++ /dev/null
@@ -1,33 +0,0 @@
-// Code generated by https://github.com/gagliardetto/anchor-go. DO NOT EDIT.
-
-package access_controller
-
-import (
- "bytes"
- ag_gofuzz "github.com/gagliardetto/gofuzz"
- ag_require "github.com/stretchr/testify/require"
- "strconv"
- "testing"
-)
-
-func TestEncodeDecode_TransferOwnership(t *testing.T) {
- fu := ag_gofuzz.New().NilChance(0)
- for i := 0; i < 1; i++ {
- t.Run("TransferOwnership"+strconv.Itoa(i), func(t *testing.T) {
- {
- params := new(TransferOwnership)
- fu.Fuzz(params)
- params.AccountMetaSlice = nil
- buf := new(bytes.Buffer)
- err := encodeT(*params, buf)
- ag_require.NoError(t, err)
- //
- got := new(TransferOwnership)
- err = decodeT(got, buf.Bytes())
- got.AccountMetaSlice = nil
- ag_require.NoError(t, err)
- ag_require.Equal(t, params, got)
- }
- })
- }
-}
diff --git a/contracts/generated/access_controller/accounts.go b/contracts/generated/access_controller/accounts.go
index dedada59d..7504d0b5b 100644
--- a/contracts/generated/access_controller/accounts.go
+++ b/contracts/generated/access_controller/accounts.go
@@ -9,9 +9,8 @@ import (
)
type AccessController struct {
- Owner ag_solanago.PublicKey
- ProposedOwner ag_solanago.PublicKey
- AccessList AccessList
+ Owner ag_solanago.PublicKey
+ AccessList AccessList
}
var AccessControllerDiscriminator = [8]byte{143, 45, 12, 204, 220, 20, 114, 87}
@@ -27,11 +26,6 @@ func (obj AccessController) MarshalWithEncoder(encoder *ag_binary.Encoder) (err
if err != nil {
return err
}
- // Serialize `ProposedOwner` param:
- err = encoder.Encode(obj.ProposedOwner)
- if err != nil {
- return err
- }
// Serialize `AccessList` param:
err = encoder.Encode(obj.AccessList)
if err != nil {
@@ -59,11 +53,6 @@ func (obj *AccessController) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (e
if err != nil {
return err
}
- // Deserialize `ProposedOwner`:
- err = decoder.Decode(&obj.ProposedOwner)
- if err != nil {
- return err
- }
// Deserialize `AccessList`:
err = decoder.Decode(&obj.AccessList)
if err != nil {
diff --git a/contracts/generated/access_controller/instructions.go b/contracts/generated/access_controller/instructions.go
index c5488cafe..f49f70d92 100644
--- a/contracts/generated/access_controller/instructions.go
+++ b/contracts/generated/access_controller/instructions.go
@@ -30,10 +30,6 @@ func init() {
var (
Instruction_Initialize = ag_binary.TypeID([8]byte{175, 175, 109, 31, 13, 152, 155, 237})
- Instruction_TransferOwnership = ag_binary.TypeID([8]byte{65, 177, 215, 73, 53, 45, 99, 47})
-
- Instruction_AcceptOwnership = ag_binary.TypeID([8]byte{172, 23, 43, 13, 238, 213, 85, 150})
-
Instruction_AddAccess = ag_binary.TypeID([8]byte{151, 189, 105, 24, 113, 60, 99, 138})
Instruction_RemoveAccess = ag_binary.TypeID([8]byte{92, 172, 70, 124, 83, 45, 88, 22})
@@ -44,10 +40,6 @@ func InstructionIDToName(id ag_binary.TypeID) string {
switch id {
case Instruction_Initialize:
return "Initialize"
- case Instruction_TransferOwnership:
- return "TransferOwnership"
- case Instruction_AcceptOwnership:
- return "AcceptOwnership"
case Instruction_AddAccess:
return "AddAccess"
case Instruction_RemoveAccess:
@@ -75,12 +67,6 @@ var InstructionImplDef = ag_binary.NewVariantDefinition(
{
"initialize", (*Initialize)(nil),
},
- {
- "transfer_ownership", (*TransferOwnership)(nil),
- },
- {
- "accept_ownership", (*AcceptOwnership)(nil),
- },
{
"add_access", (*AddAccess)(nil),
},
diff --git a/contracts/generated/store/Query.go b/contracts/generated/store/Query.go
index 01f11e98c..4ead698f3 100644
--- a/contracts/generated/store/Query.go
+++ b/contracts/generated/store/Query.go
@@ -16,13 +16,15 @@ type Query struct {
Scope Scope
// [0] = [] feed
+ //
+ // [1] = [WRITE] buffer
ag_solanago.AccountMetaSlice `bin:"-" borsh_skip:"true"`
}
// NewQueryInstructionBuilder creates a new `Query` instruction builder.
func NewQueryInstructionBuilder() *Query {
nd := &Query{
- AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 1),
+ AccountMetaSlice: make(ag_solanago.AccountMetaSlice, 2),
}
return nd
}
@@ -44,6 +46,17 @@ func (inst *Query) GetFeedAccount() *ag_solanago.AccountMeta {
return inst.AccountMetaSlice[0]
}
+// SetBufferAccount sets the "buffer" account.
+func (inst *Query) SetBufferAccount(buffer ag_solanago.PublicKey) *Query {
+ inst.AccountMetaSlice[1] = ag_solanago.Meta(buffer).WRITE()
+ return inst
+}
+
+// GetBufferAccount gets the "buffer" account.
+func (inst *Query) GetBufferAccount() *ag_solanago.AccountMeta {
+ return inst.AccountMetaSlice[1]
+}
+
func (inst Query) Build() *Instruction {
return &Instruction{BaseVariant: ag_binary.BaseVariant{
Impl: inst,
@@ -74,6 +87,9 @@ func (inst *Query) Validate() error {
if inst.AccountMetaSlice[0] == nil {
return errors.New("accounts.Feed is not set")
}
+ if inst.AccountMetaSlice[1] == nil {
+ return errors.New("accounts.Buffer is not set")
+ }
}
return nil
}
@@ -92,8 +108,9 @@ func (inst *Query) EncodeToTree(parent ag_treeout.Branches) {
})
// Accounts of the instruction:
- instructionBranch.Child("Accounts[len=1]").ParentFunc(func(accountsBranch ag_treeout.Branches) {
- accountsBranch.Child(ag_format.Meta("feed", inst.AccountMetaSlice[0]))
+ instructionBranch.Child("Accounts[len=2]").ParentFunc(func(accountsBranch ag_treeout.Branches) {
+ accountsBranch.Child(ag_format.Meta(" feed", inst.AccountMetaSlice[0]))
+ accountsBranch.Child(ag_format.Meta("buffer", inst.AccountMetaSlice[1]))
})
})
})
@@ -104,13 +121,13 @@ func (obj Query) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) {
{
tmp := scopeContainer{}
switch realvalue := obj.Scope.(type) {
- case *Version:
+ case *Version_:
tmp.Enum = 0
tmp.Version = *realvalue
- case *Decimals:
+ case *Decimals_:
tmp.Enum = 1
tmp.Decimals = *realvalue
- case *Description:
+ case *Description_:
tmp.Enum = 2
tmp.Description = *realvalue
case *RoundData:
@@ -140,11 +157,11 @@ func (obj *Query) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) {
}
switch tmp.Enum {
case 0:
- obj.Scope = (*Version)(&tmp.Enum)
+ obj.Scope = (*Version_)(&tmp.Enum)
case 1:
- obj.Scope = (*Decimals)(&tmp.Enum)
+ obj.Scope = (*Decimals_)(&tmp.Enum)
case 2:
- obj.Scope = (*Description)(&tmp.Enum)
+ obj.Scope = (*Description_)(&tmp.Enum)
case 3:
obj.Scope = &tmp.RoundData
case 4:
@@ -163,8 +180,10 @@ func NewQueryInstruction(
// Parameters:
scope Scope,
// Accounts:
- feed ag_solanago.PublicKey) *Query {
+ feed ag_solanago.PublicKey,
+ buffer ag_solanago.PublicKey) *Query {
return NewQueryInstructionBuilder().
SetScope(scope).
- SetFeedAccount(feed)
+ SetFeedAccount(feed).
+ SetBufferAccount(buffer)
}
diff --git a/contracts/generated/store/accounts.go b/contracts/generated/store/accounts.go
index 5b95f08f8..624a1298b 100644
--- a/contracts/generated/store/accounts.go
+++ b/contracts/generated/store/accounts.go
@@ -72,6 +72,174 @@ func (obj *Round) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) {
return nil
}
+type Decimals struct {
+ Decimals uint8
+}
+
+var DecimalsDiscriminator = [8]byte{253, 194, 3, 180, 138, 94, 7, 187}
+
+func (obj Decimals) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) {
+ // Write account discriminator:
+ err = encoder.WriteBytes(DecimalsDiscriminator[:], false)
+ if err != nil {
+ return err
+ }
+ // Serialize `Decimals` param:
+ err = encoder.Encode(obj.Decimals)
+ if err != nil {
+ return err
+ }
+ return nil
+}
+
+func (obj *Decimals) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) {
+ // Read and check account discriminator:
+ {
+ discriminator, err := decoder.ReadTypeID()
+ if err != nil {
+ return err
+ }
+ if !discriminator.Equal(DecimalsDiscriminator[:]) {
+ return fmt.Errorf(
+ "wrong discriminator: wanted %s, got %s",
+ "[253 194 3 180 138 94 7 187]",
+ fmt.Sprint(discriminator[:]))
+ }
+ }
+ // Deserialize `Decimals`:
+ err = decoder.Decode(&obj.Decimals)
+ if err != nil {
+ return err
+ }
+ return nil
+}
+
+type Version struct {
+ Version uint8
+}
+
+var VersionDiscriminator = [8]byte{234, 4, 254, 42, 242, 196, 136, 199}
+
+func (obj Version) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) {
+ // Write account discriminator:
+ err = encoder.WriteBytes(VersionDiscriminator[:], false)
+ if err != nil {
+ return err
+ }
+ // Serialize `Version` param:
+ err = encoder.Encode(obj.Version)
+ if err != nil {
+ return err
+ }
+ return nil
+}
+
+func (obj *Version) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) {
+ // Read and check account discriminator:
+ {
+ discriminator, err := decoder.ReadTypeID()
+ if err != nil {
+ return err
+ }
+ if !discriminator.Equal(VersionDiscriminator[:]) {
+ return fmt.Errorf(
+ "wrong discriminator: wanted %s, got %s",
+ "[234 4 254 42 242 196 136 199]",
+ fmt.Sprint(discriminator[:]))
+ }
+ }
+ // Deserialize `Version`:
+ err = decoder.Decode(&obj.Version)
+ if err != nil {
+ return err
+ }
+ return nil
+}
+
+type Description struct {
+ Description string
+}
+
+var DescriptionDiscriminator = [8]byte{193, 246, 248, 165, 137, 194, 190, 15}
+
+func (obj Description) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) {
+ // Write account discriminator:
+ err = encoder.WriteBytes(DescriptionDiscriminator[:], false)
+ if err != nil {
+ return err
+ }
+ // Serialize `Description` param:
+ err = encoder.Encode(obj.Description)
+ if err != nil {
+ return err
+ }
+ return nil
+}
+
+func (obj *Description) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) {
+ // Read and check account discriminator:
+ {
+ discriminator, err := decoder.ReadTypeID()
+ if err != nil {
+ return err
+ }
+ if !discriminator.Equal(DescriptionDiscriminator[:]) {
+ return fmt.Errorf(
+ "wrong discriminator: wanted %s, got %s",
+ "[193 246 248 165 137 194 190 15]",
+ fmt.Sprint(discriminator[:]))
+ }
+ }
+ // Deserialize `Description`:
+ err = decoder.Decode(&obj.Description)
+ if err != nil {
+ return err
+ }
+ return nil
+}
+
+type Address struct {
+ Address ag_solanago.PublicKey
+}
+
+var AddressDiscriminator = [8]byte{33, 141, 133, 70, 148, 151, 68, 172}
+
+func (obj Address) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) {
+ // Write account discriminator:
+ err = encoder.WriteBytes(AddressDiscriminator[:], false)
+ if err != nil {
+ return err
+ }
+ // Serialize `Address` param:
+ err = encoder.Encode(obj.Address)
+ if err != nil {
+ return err
+ }
+ return nil
+}
+
+func (obj *Address) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) {
+ // Read and check account discriminator:
+ {
+ discriminator, err := decoder.ReadTypeID()
+ if err != nil {
+ return err
+ }
+ if !discriminator.Equal(AddressDiscriminator[:]) {
+ return fmt.Errorf(
+ "wrong discriminator: wanted %s, got %s",
+ "[33 141 133 70 148 151 68 172]",
+ fmt.Sprint(discriminator[:]))
+ }
+ }
+ // Deserialize `Address`:
+ err = decoder.Decode(&obj.Address)
+ if err != nil {
+ return err
+ }
+ return nil
+}
+
type Store struct {
Owner ag_solanago.PublicKey
ProposedOwner ag_solanago.PublicKey
diff --git a/contracts/generated/store/types.go b/contracts/generated/store/types.go
index 22dafb119..7d6c25220 100644
--- a/contracts/generated/store/types.go
+++ b/contracts/generated/store/types.go
@@ -79,49 +79,49 @@ type Scope interface {
type scopeContainer struct {
Enum ag_binary.BorshEnum `borsh_enum:"true"`
- Version Version
- Decimals Decimals
- Description Description
+ Version Version_
+ Decimals Decimals_
+ Description Description_
RoundData RoundData
LatestRoundData LatestRoundData
Aggregator Aggregator
}
-type Version uint8
+type Version_ uint8
-func (obj Version) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) {
+func (obj Version_) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) {
return nil
}
-func (obj *Version) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) {
+func (obj *Version_) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) {
return nil
}
-func (_ *Version) isScope() {}
+func (_ *Version_) isScope() {}
-type Decimals uint8
+type Decimals_ uint8
-func (obj Decimals) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) {
+func (obj Decimals_) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) {
return nil
}
-func (obj *Decimals) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) {
+func (obj *Decimals_) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) {
return nil
}
-func (_ *Decimals) isScope() {}
+func (_ *Decimals_) isScope() {}
-type Description uint8
+type Description_ uint8
-func (obj Description) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) {
+func (obj Description_) MarshalWithEncoder(encoder *ag_binary.Encoder) (err error) {
return nil
}
-func (obj *Description) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) {
+func (obj *Description_) UnmarshalWithDecoder(decoder *ag_binary.Decoder) (err error) {
return nil
}
-func (_ *Description) isScope() {}
+func (_ *Description_) isScope() {}
type RoundData struct {
RoundId uint32
diff --git a/contracts/package.json b/contracts/package.json
index 2db1317cf..2bcf2976e 100644
--- a/contracts/package.json
+++ b/contracts/package.json
@@ -1,7 +1,6 @@
{
"dependencies": {
"@project-serum/anchor": "^0.20.0",
- "borsh": "^0.7.0",
"@solana/spl-token": "^0.1.8",
"@solana/web3.js": "1.30.2",
"@types/chai": "^4.2.22",
@@ -14,7 +13,7 @@
"mocha": "^9.0.0",
"secp256k1": "^4.0.2",
"ts-mocha": "^8.0.0",
- "typescript": "^4.5.4"
+ "typescript": "^4.4.4"
},
"scripts": {
"test": "ts-mocha -t 1000000 tests/*.ts"
diff --git a/contracts/programs/store/src/lib.rs b/contracts/programs/store/src/lib.rs
index f9ae3f054..ec06365e3 100644
--- a/contracts/programs/store/src/lib.rs
+++ b/contracts/programs/store/src/lib.rs
@@ -45,6 +45,22 @@ pub struct Round {
pub timestamp: u64,
pub answer: i128,
}
+#[account]
+pub struct Decimals {
+ pub decimals: u8,
+}
+#[account]
+pub struct Version {
+ pub version: u8,
+}
+#[account]
+pub struct Description {
+ pub description: String,
+}
+#[account]
+pub struct Address {
+ pub address: Pubkey,
+}
#[program]
pub mod store {
@@ -210,21 +226,29 @@ pub mod store {
/// The query instruction takes a `Query` and serializes the response in a fixed format. That way queries
/// are not bound to the underlying layout.
pub fn query(ctx: Context, scope: Scope) -> ProgramResult {
- use std::io::Cursor;
-
- let mut buf = Cursor::new(Vec::with_capacity(128)); // TODO: calculate max size
- let header = &ctx.accounts.feed;
+ use std::ops::DerefMut;
+ // NOTE: try_serialize will also write the account discriminator, serialize doesn't
match scope {
Scope::Version => {
- let data = header.version;
- data.serialize(&mut buf)?;
+ let header = &ctx.accounts.feed;
+
+ let data = Version {
+ version: header.version,
+ };
+ data.try_serialize(ctx.accounts.buffer.try_borrow_mut_data()?.deref_mut())?;
}
Scope::Decimals => {
- let data = header.decimals;
- data.serialize(&mut buf)?;
+ let header = &ctx.accounts.feed;
+
+ let data = Decimals {
+ decimals: header.decimals,
+ };
+ data.try_serialize(ctx.accounts.buffer.try_borrow_mut_data()?.deref_mut())?;
}
Scope::Description => {
+ let header = &ctx.accounts.feed;
+
// Look for the first null byte
let end = header
.description
@@ -235,8 +259,8 @@ pub mod store {
let description = String::from_utf8(header.description[..end].to_vec())
.map_err(|_err| ErrorCode::InvalidInput)?;
- let data = description;
- data.serialize(&mut buf)?;
+ let data = Description { description };
+ data.try_serialize(ctx.accounts.buffer.try_borrow_mut_data()?.deref_mut())?;
}
Scope::RoundData { round_id } => {
let round = with_store(&mut ctx.accounts.feed, |store| store.fetch(round_id))?
@@ -247,7 +271,7 @@ pub mod store {
answer: round.answer,
timestamp: round.timestamp,
};
- data.serialize(&mut buf)?;
+ data.try_serialize(ctx.accounts.buffer.try_borrow_mut_data()?.deref_mut())?;
}
Scope::LatestRoundData => {
let round = with_store(&mut ctx.accounts.feed, |store| store.latest())?
@@ -260,16 +284,19 @@ pub mod store {
answer: round.answer,
timestamp: round.timestamp,
};
+ // TODO: use an enum to wrap all possible response types?
- data.serialize(&mut buf)?;
+ data.try_serialize(ctx.accounts.buffer.try_borrow_mut_data()?.deref_mut())?;
}
Scope::Aggregator => {
- let data = header.writer;
- data.serialize(&mut buf)?;
+ let header = &ctx.accounts.feed;
+
+ let data = Address {
+ address: header.writer,
+ };
+ data.try_serialize(ctx.accounts.buffer.try_borrow_mut_data()?.deref_mut())?;
}
}
-
- anchor_lang::solana_program::program::set_return_data(buf.get_ref());
Ok(())
}
}
@@ -323,69 +350,6 @@ fn has_lowering_access(
Ok(())
}
-#[cfg(feature = "cpi")]
-pub mod accessors {
- use crate::cpi::{self, accounts::Query};
- use crate::{Round, Scope};
- use anchor_lang::prelude::*;
- use anchor_lang::solana_program;
-
- fn query<'info, T: AnchorDeserialize>(
- program_id: AccountInfo<'info>,
- feed: AccountInfo<'info>,
- scope: Scope,
- ) -> Result {
- let cpi = CpiContext::new(program_id, Query { feed });
- cpi::query(cpi, scope)?;
- let (_key, data) = solana_program::program::get_return_data().unwrap();
- let data = T::try_from_slice(&data)?;
- Ok(data)
- }
-
- pub fn version<'info>(
- program_id: AccountInfo<'info>,
- feed: AccountInfo<'info>,
- ) -> Result {
- query(program_id, feed, Scope::Version)
- }
-
- pub fn decimals<'info>(
- program_id: AccountInfo<'info>,
- feed: AccountInfo<'info>,
- ) -> Result {
- query(program_id, feed, Scope::Decimals)
- }
-
- pub fn description<'info>(
- program_id: AccountInfo<'info>,
- feed: AccountInfo<'info>,
- ) -> Result {
- query(program_id, feed, Scope::Description)
- }
-
- pub fn round_data<'info>(
- program_id: AccountInfo<'info>,
- feed: AccountInfo<'info>,
- round_id: u32,
- ) -> Result {
- query(program_id, feed, Scope::RoundData { round_id })
- }
-
- pub fn latest_round_data<'info>(
- program_id: AccountInfo<'info>,
- feed: AccountInfo<'info>,
- ) -> Result {
- query(program_id, feed, Scope::LatestRoundData)
- }
-
- pub fn aggregator<'info>(
- program_id: AccountInfo<'info>,
- feed: AccountInfo<'info>,
- ) -> Result {
- query(program_id, feed, Scope::Aggregator)
- }
-}
-
#[error]
pub enum ErrorCode {
#[msg("Unauthorized")]
@@ -479,4 +443,8 @@ pub struct Submit<'info> {
#[derive(Accounts)]
pub struct Query<'info> {
pub feed: Account<'info, Transmissions>,
+ // TODO: we could allow reusing query buffers if we also required an authority and marked the buffer with it.
+ // That way someone else couldn't hijack the buffer and use it instead.
+ #[account(zero)]
+ pub buffer: AccountInfo<'info>,
}
diff --git a/contracts/tests/ocr2.spec.ts b/contracts/tests/ocr2.spec.ts
index 9bcd6cf75..026185559 100644
--- a/contracts/tests/ocr2.spec.ts
+++ b/contracts/tests/ocr2.spec.ts
@@ -1,6 +1,5 @@
import * as anchor from "@project-serum/anchor";
import { ProgramError, BN } from "@project-serum/anchor";
-import * as borsh from "borsh";
import {
SYSVAR_RENT_PUBKEY,
PublicKey,
@@ -35,17 +34,6 @@ const Scope = {
Aggregator: { aggregator: {} },
};
-
-class Assignable {
- constructor(properties) {
- Object.keys(properties).map((key) => {
- this[key] = properties[key];
- });
- }
-}
-class Round extends Assignable {
-}
-
describe('ocr2', async () => {
// Configure the client to use the local cluster.
const provider = anchor.Provider.env();
@@ -89,29 +77,6 @@ describe('ocr2', async () => {
// if the owner == payer then we can fit 19
const n = 19; // min: 3 * f + 1;
- let query = async (feed: PublicKey, scope: any, schema: borsh.Schema, classType: any): Promise => {
- let tx = await workspace.Store.rpc.query(
- scope,
- {
- accounts: { feed },
- options: { commitment: "confirmed" },
- }
- );
- // await provider.connection.confirmTransaction(tx);
- let t = await provider.connection.getConfirmedTransaction(tx, "confirmed");
-
- // "Program return: "
- const prefix = "Program return: ";
- let log = t.meta.logMessages.find((log) => log.startsWith(prefix));
- log = log.slice(prefix.length);
- let [_key, data] = log.split(" ", 2);
- // TODO: validate key
- let buf = Buffer.from(data, "base64");
- console.log(buf);
-
- return borsh.deserialize(schema, classType, buf);
- };
-
// transmits a single round
let transmit = async (epoch: number, round: number, answer: BN) => {
let account = await program.account.state.fetch(state.publicKey);
@@ -637,36 +602,82 @@ describe('ocr2', async () => {
assert.ok(account.leftoverPayments.len == 0);
});
- const roundSchema = new Map([[Round, { kind: 'struct', fields: [
- ['roundId', 'u32'],
- // ['slot', 'u64'],
- // ['timestamp', 'u32'],
- ['timestamp', 'u64'],
- ['answer', [16]], // i128
- ]}]]);
it('Can call query', async () => {
- let round = await query(transmissions.publicKey, Scope.LatestRoundData, roundSchema, Round);
- console.log(round);
-
- const versionSchema = new Map([[Round, { kind: 'struct', fields: [
- ['version', 'u8'],
- ]}]]);
- let data = await query(transmissions.publicKey, Scope.Version, versionSchema, Round);
- assert.ok(data.version == 1);
-
- const descriptionSchema = new Map([[Round, { kind: 'struct', fields: [
- ['description', 'string'],
- ]}]]);
- data = await query(transmissions.publicKey, Scope.Description, descriptionSchema, Round);
- assert.ok(data.description == 'ETH/BTC');
+ let buffer = Keypair.generate();
+ await workspace.Store.rpc.query(
+ Scope.Version,
+ {
+ accounts: {
+ feed: transmissions.publicKey,
+ buffer: buffer.publicKey,
+ },
+ preInstructions: [
+ SystemProgram.createAccount({
+ fromPubkey: provider.wallet.publicKey,
+ newAccountPubkey: buffer.publicKey,
+ lamports: await provider.connection.getMinimumBalanceForRentExemption(256),
+ space: 256,
+ programId: workspace.Store.programId,
+ })
+ ],
+ signers: [buffer]
+ }
+ );
+
+ let account = await workspace.Store.account.version.fetch(buffer.publicKey);
+ assert.ok(account.version == 1);
+
+ buffer = Keypair.generate();
+ await workspace.Store.rpc.query(
+ Scope.Description,
+ {
+ accounts: {
+ feed: transmissions.publicKey,
+ buffer: buffer.publicKey,
+ },
+ preInstructions: [
+ SystemProgram.createAccount({
+ fromPubkey: provider.wallet.publicKey,
+ newAccountPubkey: buffer.publicKey,
+ lamports: await provider.connection.getMinimumBalanceForRentExemption(256),
+ space: 256,
+ programId: workspace.Store.programId,
+ })
+ ],
+ signers: [buffer]
+ }
+ );
+ account = await workspace.Store.account.description.fetch(buffer.publicKey);
+ assert.ok(account.description == 'ETH/BTC');
});
it("Transmit a bunch of rounds to check ringbuffer wraparound", async () => {
for (let i = 3; i < 15; i++) {
await transmit(i, i, new BN(i));
- let round = await query(transmissions.publicKey, Scope.LatestRoundData, roundSchema, Round);
- assert.ok(new BN(round.answer, 10, 'le').toNumber() == i)
+ let buffer = Keypair.generate();
+ await workspace.Store.rpc.query(
+ Scope.LatestRoundData,
+ {
+ accounts: {
+ feed: transmissions.publicKey,
+ buffer: buffer.publicKey,
+ },
+ preInstructions: [
+ SystemProgram.createAccount({
+ fromPubkey: provider.wallet.publicKey,
+ newAccountPubkey: buffer.publicKey,
+ lamports: await provider.connection.getMinimumBalanceForRentExemption(256),
+ space: 256,
+ programId: workspace.Store.programId,
+ })
+ ],
+ signers: [buffer]
+ }
+ );
+
+ let account = await workspace.Store.account.round.fetch(buffer.publicKey);
+ assert.ok(account.answer.toNumber() == i)
}
});
diff --git a/contracts/yarn.lock b/contracts/yarn.lock
index 1677e6538..072bbed3d 100644
--- a/contracts/yarn.lock
+++ b/contracts/yarn.lock
@@ -286,15 +286,6 @@ borsh@^0.4.0:
bs58 "^4.0.0"
text-encoding-utf-8 "^1.0.2"
-borsh@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a"
- integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==
- dependencies:
- bn.js "^5.2.0"
- bs58 "^4.0.0"
- text-encoding-utf-8 "^1.0.2"
-
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -1330,7 +1321,7 @@ type-detect@^4.0.0, type-detect@^4.0.5:
resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
-typescript@^4.5.4:
+typescript@^4.4.4:
version "4.5.4"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.4.tgz#a17d3a0263bf5c8723b9c52f43c5084edf13c2e8"
integrity sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==
diff --git a/flake.lock b/flake.lock
index 7c7d99beb..b665640b3 100644
--- a/flake.lock
+++ b/flake.lock
@@ -47,11 +47,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1642281915,
- "narHash": "sha256-jcMsXmmO1knyf99o242A+2cy1A0eKa9afly0cwBknPA=",
+ "lastModified": 1642104392,
+ "narHash": "sha256-m71b7MgMh9FDv4MnI5sg9MiBVW6DhE1zq+d/KlLWSC8=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "d5dae6569ea9952f1ae4e727946d93a71c507821",
+ "rev": "5aaed40d22f0d9376330b6fa413223435ad6fee5",
"type": "github"
},
"original": {
@@ -107,11 +107,11 @@
"nixpkgs": "nixpkgs_2"
},
"locked": {
- "lastModified": 1642559502,
- "narHash": "sha256-Dy3ziFejnG1jSsMem19nxDySzGCWbWujUDRQFIDT7BE=",
+ "lastModified": 1642387353,
+ "narHash": "sha256-CmpIo2whHN1ESXuKl9lL9CRJVK8YuEfV2JURFqmWNmw=",
"owner": "oxalica",
"repo": "rust-overlay",
- "rev": "308ac16f932e52394ca3d35dbd6cda1940aaa0f5",
+ "rev": "c76db6730b6bc150c49c9dcefc2323785516d1dc",
"type": "github"
},
"original": {
diff --git a/gauntlet/packages/gauntlet-solana-contracts/artifacts/schemas/store.json b/gauntlet/packages/gauntlet-solana-contracts/artifacts/schemas/store.json
index 02152b0a1..c0b9f9c40 100644
--- a/gauntlet/packages/gauntlet-solana-contracts/artifacts/schemas/store.json
+++ b/gauntlet/packages/gauntlet-solana-contracts/artifacts/schemas/store.json
@@ -260,6 +260,11 @@
"name": "feed",
"isMut": false,
"isSigner": false
+ },
+ {
+ "name": "buffer",
+ "isMut": true,
+ "isSigner": false
}
],
"args": [
@@ -293,6 +298,54 @@
]
}
},
+ {
+ "name": "Decimals",
+ "type": {
+ "kind": "struct",
+ "fields": [
+ {
+ "name": "decimals",
+ "type": "u8"
+ }
+ ]
+ }
+ },
+ {
+ "name": "Version",
+ "type": {
+ "kind": "struct",
+ "fields": [
+ {
+ "name": "version",
+ "type": "u8"
+ }
+ ]
+ }
+ },
+ {
+ "name": "Description",
+ "type": {
+ "kind": "struct",
+ "fields": [
+ {
+ "name": "description",
+ "type": "string"
+ }
+ ]
+ }
+ },
+ {
+ "name": "Address",
+ "type": {
+ "kind": "struct",
+ "fields": [
+ {
+ "name": "address",
+ "type": "publicKey"
+ }
+ ]
+ }
+ },
{
"name": "Store",
"type": {
diff --git a/shell.nix b/shell.nix
index be5957be1..1b3f12509 100644
--- a/shell.nix
+++ b/shell.nix
@@ -22,7 +22,6 @@ pkgs.mkShell {
golangci-lint
# NodeJS + TS
- nodePackages.typescript
nodePackages.typescript-language-server
nodejs-14_x
(yarn.override { nodejs = nodejs-14_x; })