diff --git a/Anchor.toml b/Anchor.toml index c07250ca..3971c2cb 100644 --- a/Anchor.toml +++ b/Anchor.toml @@ -2,31 +2,31 @@ anchor_version = "0.28.0" [programs.localnet] -rfq = "EMFRxsc7FSavsUVKuwNiywXixYthe2Mo5GUNaUvnvBva" -risk_engine = "F3o2hWqv61TavHuZYuStvW2Zd3M1JnoqBmmgGU77LRTr" -spot_instrument = "4A9M7iojGDPc4n4YDGnTmsYsNKUohG1zM1nrAqVMMmrm" -psyoptions_european_instrument = "6B7TdBNAF7tWWz5sZbbBZj8jH1ix7QWAchtkvMHveEuW" -psyoptions_american_instrument = "HGmSFSRfVAG8RC8Ae4G1JFSHK7Au5GrGskDxncG3JRok" -hxro_print_trade_provider = "4WbVwc5Edfo3oB1n16bVC9qrghYHSNh1qAECbSCyiT95" -vault_operator = "5Qnp9VdXtRvmR9wBcAdvqTRsBHzpZ4jU3ZKtn3BaYWUM" +rfq = "FqAhTZg86EKEzeWMLtutVDRXJuLWrey7oDHr3Au6RFdo" +risk_engine = "CtfTi4TstqJaxEh8giQ7kK8CKXsJyF9CuwdcVoqGrEi1" +spot_instrument = "BMXWVaYPVJ4G8g2MMJt51CDgjHHuoirPMvsTUadv3s3v" +psyoptions_european_instrument = "4KC8MQi2zQGr7LhTCVTMhbKuP4KcpTmdZjxsDBWrTSVf" +psyoptions_american_instrument = "HpmyVA3t3uNGgdx86AuwZww7gnAWB57vepnk3732vEr9" +hxro_print_trade_provider = "6zyXbd44vYHhpC1gxZr2BhM6m7jThqsBphn2GD36bUi3" +vault_operator = "DftT8Q74YPqwrtJzy6g97XLzouG2YWaWZfRad6yK2GvA" [programs.devnet] -rfq = "EMFRxsc7FSavsUVKuwNiywXixYthe2Mo5GUNaUvnvBva" -risk_engine = "F3o2hWqv61TavHuZYuStvW2Zd3M1JnoqBmmgGU77LRTr" -spot_instrument = "4A9M7iojGDPc4n4YDGnTmsYsNKUohG1zM1nrAqVMMmrm" -psyoptions_european_instrument = "6B7TdBNAF7tWWz5sZbbBZj8jH1ix7QWAchtkvMHveEuW" -psyoptions_american_instrument = "HGmSFSRfVAG8RC8Ae4G1JFSHK7Au5GrGskDxncG3JRok" -hxro_print_trade_provider = "4WbVwc5Edfo3oB1n16bVC9qrghYHSNh1qAECbSCyiT95" -vault_operator = "5Qnp9VdXtRvmR9wBcAdvqTRsBHzpZ4jU3ZKtn3BaYWUM" +rfq = "FqAhTZg86EKEzeWMLtutVDRXJuLWrey7oDHr3Au6RFdo" +risk_engine = "CtfTi4TstqJaxEh8giQ7kK8CKXsJyF9CuwdcVoqGrEi1" +spot_instrument = "BMXWVaYPVJ4G8g2MMJt51CDgjHHuoirPMvsTUadv3s3v" +psyoptions_european_instrument = "4KC8MQi2zQGr7LhTCVTMhbKuP4KcpTmdZjxsDBWrTSVf" +psyoptions_american_instrument = "HpmyVA3t3uNGgdx86AuwZww7gnAWB57vepnk3732vEr9" +hxro_print_trade_provider = "6zyXbd44vYHhpC1gxZr2BhM6m7jThqsBphn2GD36bUi3" +vault_operator = "DftT8Q74YPqwrtJzy6g97XLzouG2YWaWZfRad6yK2GvA" [programs.mainnet] -rfq = "EMFRxsc7FSavsUVKuwNiywXixYthe2Mo5GUNaUvnvBva" -risk_engine = "F3o2hWqv61TavHuZYuStvW2Zd3M1JnoqBmmgGU77LRTr" -spot_instrument = "4A9M7iojGDPc4n4YDGnTmsYsNKUohG1zM1nrAqVMMmrm" -psyoptions_european_instrument = "6B7TdBNAF7tWWz5sZbbBZj8jH1ix7QWAchtkvMHveEuW" -psyoptions_american_instrument = "HGmSFSRfVAG8RC8Ae4G1JFSHK7Au5GrGskDxncG3JRok" -hxro_print_trade_provider = "4WbVwc5Edfo3oB1n16bVC9qrghYHSNh1qAECbSCyiT95" -vault_operator = "5Qnp9VdXtRvmR9wBcAdvqTRsBHzpZ4jU3ZKtn3BaYWUM" +rfq = "FqAhTZg86EKEzeWMLtutVDRXJuLWrey7oDHr3Au6RFdo" +risk_engine = "CtfTi4TstqJaxEh8giQ7kK8CKXsJyF9CuwdcVoqGrEi1" +spot_instrument = "BMXWVaYPVJ4G8g2MMJt51CDgjHHuoirPMvsTUadv3s3v" +psyoptions_european_instrument = "4KC8MQi2zQGr7LhTCVTMhbKuP4KcpTmdZjxsDBWrTSVf" +psyoptions_american_instrument = "HpmyVA3t3uNGgdx86AuwZww7gnAWB57vepnk3732vEr9" +hxro_print_trade_provider = "6zyXbd44vYHhpC1gxZr2BhM6m7jThqsBphn2GD36bUi3" +vault_operator = "DftT8Q74YPqwrtJzy6g97XLzouG2YWaWZfRad6yK2GvA" [registry] url = "https://anchor.projectserum.com" diff --git a/hxro-print-trade-provider/js/.solitarc.js b/hxro-print-trade-provider/js/.solitarc.js index bec8a1c9..e94159bd 100644 --- a/hxro-print-trade-provider/js/.solitarc.js +++ b/hxro-print-trade-provider/js/.solitarc.js @@ -8,7 +8,7 @@ const binaryInstallDir = path.join(__dirname, ".crates"); module.exports = { idlGenerator: "anchor", programName: "hxro_print_trade_provider", - programId: "4WbVwc5Edfo3oB1n16bVC9qrghYHSNh1qAECbSCyiT95", + programId: "6zyXbd44vYHhpC1gxZr2BhM6m7jThqsBphn2GD36bUi3", idlDir, sdkDir, binaryInstallDir, diff --git a/hxro-print-trade-provider/js/package.json b/hxro-print-trade-provider/js/package.json index b4a15b9a..3c3fa47a 100644 --- a/hxro-print-trade-provider/js/package.json +++ b/hxro-print-trade-provider/js/package.json @@ -1,6 +1,6 @@ { "name": "@convergence-rfq/hxro-print-trade-provider", - "version": "3.8.0", + "version": "3.9.0", "license": "MIT", "publishConfig": { "access": "public", diff --git a/hxro-print-trade-provider/program/src/lib.rs b/hxro-print-trade-provider/program/src/lib.rs index c1df32c3..c1a05e46 100644 --- a/hxro-print-trade-provider/program/src/lib.rs +++ b/hxro-print-trade-provider/program/src/lib.rs @@ -23,7 +23,7 @@ mod errors; mod helpers; mod state; -declare_id!("4WbVwc5Edfo3oB1n16bVC9qrghYHSNh1qAECbSCyiT95"); +declare_id!("6zyXbd44vYHhpC1gxZr2BhM6m7jThqsBphn2GD36bUi3"); #[program] pub mod hxro_print_trade_provider { diff --git a/infra/sync.sh b/infra/sync.sh index aa47cf2e..c434b542 100755 --- a/infra/sync.sh +++ b/infra/sync.sh @@ -3,5 +3,9 @@ SCRIPT_PATH=$(readlink -f "$0") CPL_PATH=$(dirname $(dirname $SCRIPT_PATH)) -rsync -r $CPL_PATH --exclude='.anchor' --exclude='.git' --exclude='node_modules' --exclude='target/bpfel-unknown-unknown' \ - --exclude='target/release' --exclude='target/debug' root@159.223.108.86:/root/ +rsync -r $CPL_PATH --exclude='.anchor' --exclude='.git' --exclude='node_modules' \ + -e "ssh -i ~/.ssh/id_ed25519_pindaroso" \ + --exclude='target' \ + root@152.42.173.249:/root + +#scp -r -i ~/.ssh/id_ed25519_pindaroso root@146.190.86.237:/root/convergence-program-library-v3/target/idl idl diff --git a/psyoptions-american-instrument/js/.solitarc.js b/psyoptions-american-instrument/js/.solitarc.js index 91e395c8..9043784f 100644 --- a/psyoptions-american-instrument/js/.solitarc.js +++ b/psyoptions-american-instrument/js/.solitarc.js @@ -8,7 +8,7 @@ const binaryInstallDir = path.join(__dirname, ".crates"); module.exports = { idlGenerator: "anchor", programName: "psyoptions_american_instrument", - programId: "HGmSFSRfVAG8RC8Ae4G1JFSHK7Au5GrGskDxncG3JRok", + programId: "HpmyVA3t3uNGgdx86AuwZww7gnAWB57vepnk3732vEr9", idlDir, sdkDir, binaryInstallDir, diff --git a/psyoptions-american-instrument/js/package.json b/psyoptions-american-instrument/js/package.json index 3daaf4a8..34d92723 100644 --- a/psyoptions-american-instrument/js/package.json +++ b/psyoptions-american-instrument/js/package.json @@ -1,6 +1,6 @@ { "name": "@convergence-rfq/psyoptions-american-instrument", - "version": "3.8.0", + "version": "3.9.0", "license": "MIT", "publishConfig": { "access": "public", diff --git a/psyoptions-american-instrument/program/src/lib.rs b/psyoptions-american-instrument/program/src/lib.rs index deed50cd..21bbd5cc 100644 --- a/psyoptions-american-instrument/program/src/lib.rs +++ b/psyoptions-american-instrument/program/src/lib.rs @@ -14,7 +14,7 @@ mod errors; mod instructions; mod state; -declare_id!("HGmSFSRfVAG8RC8Ae4G1JFSHK7Au5GrGskDxncG3JRok"); +declare_id!("HpmyVA3t3uNGgdx86AuwZww7gnAWB57vepnk3732vEr9"); const ESCROW_SEED: &str = "escrow"; #[program] diff --git a/psyoptions-european-instrument/js/.solitarc.js b/psyoptions-european-instrument/js/.solitarc.js index 247d4f72..45215aad 100644 --- a/psyoptions-european-instrument/js/.solitarc.js +++ b/psyoptions-european-instrument/js/.solitarc.js @@ -8,7 +8,7 @@ const binaryInstallDir = path.join(__dirname, ".crates"); module.exports = { idlGenerator: "anchor", programName: "psyoptions_european_instrument", - programId: "6B7TdBNAF7tWWz5sZbbBZj8jH1ix7QWAchtkvMHveEuW", + programId: "4KC8MQi2zQGr7LhTCVTMhbKuP4KcpTmdZjxsDBWrTSVf", idlDir, sdkDir, binaryInstallDir, diff --git a/psyoptions-european-instrument/js/package.json b/psyoptions-european-instrument/js/package.json index 10a3eb61..9a9d0698 100644 --- a/psyoptions-european-instrument/js/package.json +++ b/psyoptions-european-instrument/js/package.json @@ -1,6 +1,6 @@ { "name": "@convergence-rfq/psyoptions-european-instrument", - "version": "3.8.0", + "version": "3.9.0", "license": "MIT", "publishConfig": { "access": "public", diff --git a/psyoptions-european-instrument/program/src/lib.rs b/psyoptions-european-instrument/program/src/lib.rs index c08969dc..a5b530db 100644 --- a/psyoptions-european-instrument/program/src/lib.rs +++ b/psyoptions-european-instrument/program/src/lib.rs @@ -15,7 +15,7 @@ mod errors; mod euro_options; mod state; -declare_id!("6B7TdBNAF7tWWz5sZbbBZj8jH1ix7QWAchtkvMHveEuW"); +declare_id!("4KC8MQi2zQGr7LhTCVTMhbKuP4KcpTmdZjxsDBWrTSVf"); const ESCROW_SEED: &str = "escrow"; diff --git a/rfq/js/.solitarc.js b/rfq/js/.solitarc.js index 0b06f1f8..da6a8de1 100644 --- a/rfq/js/.solitarc.js +++ b/rfq/js/.solitarc.js @@ -8,7 +8,7 @@ const binaryInstallDir = path.join(__dirname, ".crates"); module.exports = { idlGenerator: "anchor", programName: "rfq", - programId: "EMFRxsc7FSavsUVKuwNiywXixYthe2Mo5GUNaUvnvBva", + programId: "FqAhTZg86EKEzeWMLtutVDRXJuLWrey7oDHr3Au6RFdo", idlDir, sdkDir, binaryInstallDir, diff --git a/rfq/js/package.json b/rfq/js/package.json index 11b32384..cb3cf21e 100644 --- a/rfq/js/package.json +++ b/rfq/js/package.json @@ -1,6 +1,6 @@ { "name": "@convergence-rfq/rfq", - "version": "3.8.0", + "version": "3.9.0", "license": "MIT", "publishConfig": { "access": "public", diff --git a/rfq/program/src/lib.rs b/rfq/program/src/lib.rs index 1acb9143..48d86e50 100644 --- a/rfq/program/src/lib.rs +++ b/rfq/program/src/lib.rs @@ -66,7 +66,7 @@ security_txt! { auditors: "None" } -declare_id!("EMFRxsc7FSavsUVKuwNiywXixYthe2Mo5GUNaUvnvBva"); +declare_id!("FqAhTZg86EKEzeWMLtutVDRXJuLWrey7oDHr3Au6RFdo"); /// Request for quote (RFQ) protocol module. #[program] diff --git a/risk-engine/js/.solitarc.js b/risk-engine/js/.solitarc.js index 1ed3aae5..d8a90f08 100644 --- a/risk-engine/js/.solitarc.js +++ b/risk-engine/js/.solitarc.js @@ -8,7 +8,7 @@ const binaryInstallDir = path.join(__dirname, ".crates"); module.exports = { idlGenerator: "anchor", programName: "risk_engine", - programId: "F3o2hWqv61TavHuZYuStvW2Zd3M1JnoqBmmgGU77LRTr", + programId: "CtfTi4TstqJaxEh8giQ7kK8CKXsJyF9CuwdcVoqGrEi1", idlDir, sdkDir, binaryInstallDir, diff --git a/risk-engine/js/package.json b/risk-engine/js/package.json index 3267a816..113da7e3 100644 --- a/risk-engine/js/package.json +++ b/risk-engine/js/package.json @@ -1,6 +1,6 @@ { "name": "@convergence-rfq/risk-engine", - "version": "3.8.0", + "version": "3.9.0", "license": "MIT", "publishConfig": { "access": "public", diff --git a/risk-engine/program/src/lib.rs b/risk-engine/program/src/lib.rs index 6514076b..58488e07 100644 --- a/risk-engine/program/src/lib.rs +++ b/risk-engine/program/src/lib.rs @@ -23,7 +23,7 @@ pub mod scenarios; pub mod state; pub mod utils; -declare_id!("F3o2hWqv61TavHuZYuStvW2Zd3M1JnoqBmmgGU77LRTr"); +declare_id!("CtfTi4TstqJaxEh8giQ7kK8CKXsJyF9CuwdcVoqGrEi1"); pub const CONFIG_SEED: &str = "config"; diff --git a/spot-instrument/js/.solitarc.js b/spot-instrument/js/.solitarc.js index a850e703..dcc819c9 100644 --- a/spot-instrument/js/.solitarc.js +++ b/spot-instrument/js/.solitarc.js @@ -8,7 +8,7 @@ const binaryInstallDir = path.join(__dirname, ".crates"); module.exports = { idlGenerator: "anchor", programName: "spot_instrument", - programId: "4A9M7iojGDPc4n4YDGnTmsYsNKUohG1zM1nrAqVMMmrm", + programId: "BMXWVaYPVJ4G8g2MMJt51CDgjHHuoirPMvsTUadv3s3v", idlDir, sdkDir, binaryInstallDir, diff --git a/spot-instrument/js/package.json b/spot-instrument/js/package.json index 10cd32ff..422b997e 100644 --- a/spot-instrument/js/package.json +++ b/spot-instrument/js/package.json @@ -1,6 +1,6 @@ { "name": "@convergence-rfq/spot-instrument", - "version": "3.8.0", + "version": "3.9.0", "license": "MIT", "publishConfig": { "access": "public", diff --git a/spot-instrument/program/src/lib.rs b/spot-instrument/program/src/lib.rs index bac800cd..13335b4f 100644 --- a/spot-instrument/program/src/lib.rs +++ b/spot-instrument/program/src/lib.rs @@ -14,7 +14,7 @@ use state::Config; mod errors; mod state; -declare_id!("4A9M7iojGDPc4n4YDGnTmsYsNKUohG1zM1nrAqVMMmrm"); +declare_id!("BMXWVaYPVJ4G8g2MMJt51CDgjHHuoirPMvsTUadv3s3v"); const ESCROW_SEED: &str = "escrow"; const CONFIG_SEED: &str = "config"; diff --git a/tests/fixtures/accounts/hxro-print-trade-provider-config.json b/tests/fixtures/accounts/hxro-print-trade-provider-config.json index 2de1c4e9..984d99e9 100644 --- a/tests/fixtures/accounts/hxro-print-trade-provider-config.json +++ b/tests/fixtures/accounts/hxro-print-trade-provider-config.json @@ -1,12 +1,12 @@ { - "pubkey": "GizbUy6geL8B6jWGrnkH7jYvExBhpSpEzMyvx9hZfaho", + "pubkey": "P9Frq2k9Rx1ixDm71eaBcgN5xevWb7NNoPzZJrWWgC3", "account": { "lamports": 1169280, "data": [ "mwyq4B76zILh05IpcF4Uyf+vsSOCQd79Yzo2cN7taTwXsxHuZE4XXw==", "base64" ], - "owner": "4WbVwc5Edfo3oB1n16bVC9qrghYHSNh1qAECbSCyiT95", + "owner": "6zyXbd44vYHhpC1gxZr2BhM6m7jThqsBphn2GD36bUi3", "executable": false, "rentEpoch": 0 } diff --git a/tests/fixtures/accounts/rfq-base-asset-btc.json b/tests/fixtures/accounts/rfq-base-asset-btc.json index ad6e19d7..55de3458 100644 --- a/tests/fixtures/accounts/rfq-base-asset-btc.json +++ b/tests/fixtures/accounts/rfq-base-asset-btc.json @@ -1,12 +1,12 @@ { - "pubkey": "9WJ5B36cb23UVuTGAw3cF3PdkwYcpRd3or9NB2feXob2", + "pubkey": "FrQXf9PvuwisbxSaGwXdFipxu8aCEvAXCMRLcPkX64Ct", "account": { "lamports": 2804880, "data": [ - "A/5kN3P/Bxf+AAABAABujEl3g94AWWT2ktFbxNUQIrF1jMwAhCmERj8Lf9/+nwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAEJUQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "A/5kN3P/Bxf/AAABAABujEl3g94AWWT2ktFbxNUQIrF1jMwAhCmERj8Lf9/+nwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAEJUQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "base64" ], - "owner": "EMFRxsc7FSavsUVKuwNiywXixYthe2Mo5GUNaUvnvBva", + "owner": "FqAhTZg86EKEzeWMLtutVDRXJuLWrey7oDHr3Au6RFdo", "executable": false, "rentEpoch": 0 } diff --git a/tests/fixtures/accounts/rfq-base-asset-eth.json b/tests/fixtures/accounts/rfq-base-asset-eth.json index 895db896..ae1dacff 100644 --- a/tests/fixtures/accounts/rfq-base-asset-eth.json +++ b/tests/fixtures/accounts/rfq-base-asset-eth.json @@ -1,12 +1,12 @@ { - "pubkey": "CtUPSK5cXRmsr1wGo5nCjfHQ9Dca6hsg26FBiZcMsTVp", + "pubkey": "4U5MABcScyet6DtPRreD6auphbrybn6SJni1kNo2Bbk1", "account": { "lamports": 2804880, "data": [ - "A/5kN3P/Bxf8AgABAQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAn0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAEVUSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "A/5kN3P/Bxf/AgABAQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAn0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAEVUSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "base64" ], - "owner": "EMFRxsc7FSavsUVKuwNiywXixYthe2Mo5GUNaUvnvBva", + "owner": "FqAhTZg86EKEzeWMLtutVDRXJuLWrey7oDHr3Au6RFdo", "executable": false, "rentEpoch": 0 } diff --git a/tests/fixtures/accounts/rfq-base-asset-sol.json b/tests/fixtures/accounts/rfq-base-asset-sol.json index 0426f9e1..2b72b9b1 100644 --- a/tests/fixtures/accounts/rfq-base-asset-sol.json +++ b/tests/fixtures/accounts/rfq-base-asset-sol.json @@ -1,12 +1,12 @@ { - "pubkey": "7RMoZT2GLMvT5LiuXL9gSPcHdwEsS9f8Gi116cQ9ydNv", + "pubkey": "4n58twpt2baDXrRoay8Go8kniKBWfEnG1zsenvUUsMyZ", "account": { "lamports": 2804880, "data": [ - "A/5kN3P/Bxf/AQABAgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO8Ni2/aLOukHaFdQJXR2jkqDS+O0MbHvA9M+sjCgLVtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAFNPTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "A/5kN3P/Bxf8AQABAgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO8Ni2/aLOukHaFdQJXR2jkqDS+O0MbHvA9M+sjCgLVtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAFNPTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "base64" ], - "owner": "EMFRxsc7FSavsUVKuwNiywXixYthe2Mo5GUNaUvnvBva", + "owner": "FqAhTZg86EKEzeWMLtutVDRXJuLWrey7oDHr3Au6RFdo", "executable": false, "rentEpoch": 0 } diff --git a/tests/fixtures/accounts/rfq-collateral-info-dao.json b/tests/fixtures/accounts/rfq-collateral-info-dao.json index 7299a545..b4dd6952 100644 --- a/tests/fixtures/accounts/rfq-collateral-info-dao.json +++ b/tests/fixtures/accounts/rfq-collateral-info-dao.json @@ -1,12 +1,12 @@ { - "pubkey": "ADSmGasDML6HXpRxACYjAqWz8icFib4hztZ6YF3vNtH6", + "pubkey": "Fr2tKpuV7Jvo51wpBU4so7qv1AmUc4uBh62ZUAy5oevy", "account": { "lamports": 3062400, "data": [ - "o0RSJdyyEpn9ZJJsMbdIfexWonT9yyqMxu1HHDD0uX9BX7OXjafeIJn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "o0RSJdyyEpn/ZJJsMbdIfexWonT9yyqMxu1HHDD0uX9BX7OXjafeIJn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "base64" ], - "owner": "EMFRxsc7FSavsUVKuwNiywXixYthe2Mo5GUNaUvnvBva", + "owner": "FqAhTZg86EKEzeWMLtutVDRXJuLWrey7oDHr3Au6RFdo", "executable": false, "rentEpoch": 0 } diff --git a/tests/fixtures/accounts/rfq-collateral-info-maker.json b/tests/fixtures/accounts/rfq-collateral-info-maker.json index 7790bd8c..0db4781b 100644 --- a/tests/fixtures/accounts/rfq-collateral-info-maker.json +++ b/tests/fixtures/accounts/rfq-collateral-info-maker.json @@ -1,12 +1,12 @@ { - "pubkey": "48qiMm1RzkdLJ4HT63pwB2LXtUo8Z9idwJouQpeTwhfR", + "pubkey": "EiqZBnwa8b7tLvXhXSwTW4zqkcT9UXpZi5ADmsyCKpq4", "account": { "lamports": 3062400, "data": [ - "o0RSJdyyEpn9RGcv6WZ5nR0SQFCdXFvcEqmvImWuWJkw9t9ogVLKIbf9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "o0RSJdyyEpn6RGcv6WZ5nR0SQFCdXFvcEqmvImWuWJkw9t9ogVLKIbf9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "base64" ], - "owner": "EMFRxsc7FSavsUVKuwNiywXixYthe2Mo5GUNaUvnvBva", + "owner": "FqAhTZg86EKEzeWMLtutVDRXJuLWrey7oDHr3Au6RFdo", "executable": false, "rentEpoch": 0 } diff --git a/tests/fixtures/accounts/rfq-collateral-info-taker.json b/tests/fixtures/accounts/rfq-collateral-info-taker.json index f8b04e5a..f4e0c6ca 100644 --- a/tests/fixtures/accounts/rfq-collateral-info-taker.json +++ b/tests/fixtures/accounts/rfq-collateral-info-taker.json @@ -1,12 +1,12 @@ { - "pubkey": "8k1Pv1RjECRindE1PVzBuoVMUZz8mNFxrGj5oSMFiyiu", + "pubkey": "7H6gn5kksiDYRCeMRnyFLd7j8AnaMHrV8UqopTgDucji", "account": { "lamports": 3062400, "data": [ - "o0RSJdyyEpn/yxkDb26bL0vjVHOsyuI/i4PC7QTivY42lYqpvanXNlf+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "o0RSJdyyEpn/yxkDb26bL0vjVHOsyuI/i4PC7QTivY42lYqpvanXNlf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "base64" ], - "owner": "EMFRxsc7FSavsUVKuwNiywXixYthe2Mo5GUNaUvnvBva", + "owner": "FqAhTZg86EKEzeWMLtutVDRXJuLWrey7oDHr3Au6RFdo", "executable": false, "rentEpoch": 0 } diff --git a/tests/fixtures/accounts/rfq-collateral-token-dao.json b/tests/fixtures/accounts/rfq-collateral-token-dao.json index 8d507d16..bcab8f2b 100644 --- a/tests/fixtures/accounts/rfq-collateral-token-dao.json +++ b/tests/fixtures/accounts/rfq-collateral-token-dao.json @@ -1,9 +1,9 @@ { - "pubkey": "Bc7HGjyAymBhA1xHPZpnGMnaju6jiYThMvvbo8qWpVE8", + "pubkey": "DYj8vXUBpTxrptvRm2j2sCNAo7xPmPDidyp925YKNPZ", "account": { "lamports": 2039280, "data": [ - "aRq5Tm95/2xFlF3S5PgBarK9se95mD6qo+5+Z1sAZumI6UhbtanKC+A8hLXGGONU15fCDohQWp9tIILPO2Z8qQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "aRq5Tm95/2xFlF3S5PgBarK9se95mD6qo+5+Z1sAZunckzU36JNeZ0cuJugU4hoQzl4D+ki3sLko821orBQWngAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "base64" ], "owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", diff --git a/tests/fixtures/accounts/rfq-collateral-token-maker.json b/tests/fixtures/accounts/rfq-collateral-token-maker.json index 0ab4cc3f..448a2d66 100644 --- a/tests/fixtures/accounts/rfq-collateral-token-maker.json +++ b/tests/fixtures/accounts/rfq-collateral-token-maker.json @@ -1,9 +1,9 @@ { - "pubkey": "Eu5Ckc6jV6MMPtQLkNWMr3g3kd1oTXhfYL5nqTdH8hqy", + "pubkey": "HZoNij3PMue4MPar4SUydqENTF6CNDAC7CXN4HaX5gYr", "account": { "lamports": 2039280, "data": [ - "aRq5Tm95/2xFlF3S5PgBarK9se95mD6qo+5+Z1sAZukulTTcGjEatA0bElqKOcJgF7+0QBWQ98HZ9bcSzFhZxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "aRq5Tm95/2xFlF3S5PgBarK9se95mD6qo+5+Z1sAZunL36T6x1fNwTdU5P415pUA2qfI32G+dg9HMfsT+wEqfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "base64" ], "owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", diff --git a/tests/fixtures/accounts/rfq-collateral-token-taker.json b/tests/fixtures/accounts/rfq-collateral-token-taker.json index 926239dd..1fbf3225 100644 --- a/tests/fixtures/accounts/rfq-collateral-token-taker.json +++ b/tests/fixtures/accounts/rfq-collateral-token-taker.json @@ -1,9 +1,9 @@ { - "pubkey": "4Ebb8C6qYMYa9Cup7fHsWkdU8J5qxXfXoUoPcgAqYJ8c", + "pubkey": "HAWway8wsxpxT4Fds8HvNgS8QGkDLJQubjT9DK1VcdfF", "account": { "lamports": 2039280, "data": [ - "aRq5Tm95/2xFlF3S5PgBarK9se95mD6qo+5+Z1sAZulzBjrf5+5kFb4+wKYfJ3Z82zackn0hmZ6o+dj/AnA8ZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "aRq5Tm95/2xFlF3S5PgBarK9se95mD6qo+5+Z1sAZuldRdft+TMCmnE85e5qnNbYqpofKWjoeC78RHFerxuv2QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "base64" ], "owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", diff --git a/tests/fixtures/accounts/rfq-mint-info-btc.json b/tests/fixtures/accounts/rfq-mint-info-btc.json index b2b8db09..671d27f0 100644 --- a/tests/fixtures/accounts/rfq-mint-info-btc.json +++ b/tests/fixtures/accounts/rfq-mint-info-btc.json @@ -1,12 +1,12 @@ { - "pubkey": "CCGguC4YFVLr17tM317mbqvechmgZvH1To5BcKi43GXX", + "pubkey": "Erqa3YWCcmzRRUbimK2WryFyGXW1xmBWDeCvo1tKmd3R", "account": { "lamports": 2324640, "data": [ - "x3PV3dsdh67/1QdAbyji9GYRbBJEIDGa7a7Ri6BXDdP2m5O+Zgs5buYJAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "x3PV3dsdh67+1QdAbyji9GYRbBJEIDGa7a7Ri6BXDdP2m5O+Zgs5buYJAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "base64" ], - "owner": "EMFRxsc7FSavsUVKuwNiywXixYthe2Mo5GUNaUvnvBva", + "owner": "FqAhTZg86EKEzeWMLtutVDRXJuLWrey7oDHr3Au6RFdo", "executable": false, "rentEpoch": 0 } diff --git a/tests/fixtures/accounts/rfq-mint-info-eth.json b/tests/fixtures/accounts/rfq-mint-info-eth.json index 0a108111..17a3d96b 100644 --- a/tests/fixtures/accounts/rfq-mint-info-eth.json +++ b/tests/fixtures/accounts/rfq-mint-info-eth.json @@ -1,12 +1,12 @@ { - "pubkey": "F74ZnvhTmF9JRJ9LCQ6kxfkSUXaLfHy9dxMnavpGWkBT", + "pubkey": "BKf1HuUftLk5mLX9hHNbJdUPRapGEJaaedZK1NNzewhH", "account": { "lamports": 2324640, "data": [ "x3PV3dsdh67+KOeZ7XiJHyjoRFaYKs+85ejjnJrjfLSWJ2Uf3N+pjqwJAQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "base64" ], - "owner": "EMFRxsc7FSavsUVKuwNiywXixYthe2Mo5GUNaUvnvBva", + "owner": "FqAhTZg86EKEzeWMLtutVDRXJuLWrey7oDHr3Au6RFdo", "executable": false, "rentEpoch": 0 } diff --git a/tests/fixtures/accounts/rfq-mint-info-sol.json b/tests/fixtures/accounts/rfq-mint-info-sol.json index 4ecc6e38..392e1916 100644 --- a/tests/fixtures/accounts/rfq-mint-info-sol.json +++ b/tests/fixtures/accounts/rfq-mint-info-sol.json @@ -1,12 +1,12 @@ { - "pubkey": "4foY3PJTrLUt4nPJuuQy7WuRKz6kJXCuLBwxXdmSYgP2", + "pubkey": "7kuX93pjSAfd3nraBqdCHzrzwW3L1JM9no8SjEwuzYYt", "account": { "lamports": 2324640, "data": [ - "x3PV3dsdh67+KOWejuQHeNYncgTtjfJmQZMafgdeEmJ0ZWn5c9DFHpsJAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "x3PV3dsdh67/KOWejuQHeNYncgTtjfJmQZMafgdeEmJ0ZWn5c9DFHpsJAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "base64" ], - "owner": "EMFRxsc7FSavsUVKuwNiywXixYthe2Mo5GUNaUvnvBva", + "owner": "FqAhTZg86EKEzeWMLtutVDRXJuLWrey7oDHr3Au6RFdo", "executable": false, "rentEpoch": 0 } diff --git a/tests/fixtures/accounts/rfq-mint-info-usd-quote.json b/tests/fixtures/accounts/rfq-mint-info-usd-quote.json index d12db638..0a6326c5 100644 --- a/tests/fixtures/accounts/rfq-mint-info-usd-quote.json +++ b/tests/fixtures/accounts/rfq-mint-info-usd-quote.json @@ -1,12 +1,12 @@ { - "pubkey": "3UV85jwjPmdL71q2kXiPZQbnz8N9CiYbvKadzaNhxX6W", + "pubkey": "5Atpbyw3tBjjc8EYrbjE1a4FNqyLUszFGsNo3R5bR3y8", "account": { "lamports": 2324640, "data": [ "x3PV3dsdh67/e2UTGuRioXUH1thtTs+0Qj7hdyxRnoHwm55RQpy8WkYJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "base64" ], - "owner": "EMFRxsc7FSavsUVKuwNiywXixYthe2Mo5GUNaUvnvBva", + "owner": "FqAhTZg86EKEzeWMLtutVDRXJuLWrey7oDHr3Au6RFdo", "executable": false, "rentEpoch": 0 } diff --git a/tests/fixtures/accounts/rfq-protocol.json b/tests/fixtures/accounts/rfq-protocol.json index a7af7d43..a95d5ff3 100644 --- a/tests/fixtures/accounts/rfq-protocol.json +++ b/tests/fixtures/accounts/rfq-protocol.json @@ -1,12 +1,12 @@ { - "pubkey": "GjDjkE8YnpE4ugQGg2E7qbDnFn1eb6DP9FEWbT22UPxy", + "pubkey": "AinWDnZWiEkWrNGH9jbvS2JXaBFZwnRE5ssNGyop882L", "account": { "lamports": 35245440, "data": [ - "ITOthiOMw/hkkmwxt0h97FaidP3LKozG7UccMPS5f0Ffs5eNp94gmf8BAC0xAQAAAACAlpgAAAAAAADh9QUAAAAAAGXNHQAAAADQutL19LeRkX2pDq//ZKenRFnb6euxETuTU5Jt1XnnzWkauU5vef9sRZRd0uT4AWqyvbHveZg+qqPufmdbAGbpAQAAADQn6ZFuvjtDiVsOoxh64YjkrChPKmO+L68J8EWlRROEAgEDAAAALuq50RD25+XaanAnJ+aMkEeElLwt95Vm39LCpn1oGNYBAQEHBQMEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABM4YvEy7sm/n6dRhS0YyinN5+xEyNX+eTyt9D/sMg3UQEAAgcDAwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPHE8jZWWx+0DKPG8mlku8p0YsMeTFUt2dJYH3yGio9fAQADBwMDBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "ITOthiOMw/hkkmwxt0h97FaidP3LKozG7UccMPS5f0Ffs5eNp94gmf8BAC0xAQAAAACAlpgAAAAAAADh9QUAAAAAAGXNHQAAAACwrKo0HjaL9oUZ0AwE1p+JHVKTcs55/kDE/lmUTMVgNmkauU5vef9sRZRd0uT4AWqyvbHveZg+qqPufmdbAGbpAQAAAFkkdOYAxksuBzNIiEuhu5wGIxiDQ20QOBuM8uqkVCV4AgEDAAAAmdb7REiKg21M9/FtGIfsOSsD/K7ESsZyfHJz4tbXUJEBAQEHBQMEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxPBiuESphc/9eTxK0v5lWq0Fhl+Dq4uMncfvyoe62wgEAAgcDAwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPn4JBeNNnKrn93HANn5Iinun1iYe6VXbwyivBDfV0QOAQADBwMDBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", "base64" ], - "owner": "EMFRxsc7FSavsUVKuwNiywXixYthe2Mo5GUNaUvnvBva", + "owner": "FqAhTZg86EKEzeWMLtutVDRXJuLWrey7oDHr3Au6RFdo", "executable": false, "rentEpoch": 0 } diff --git a/tests/fixtures/accounts/risk-engine-config.json b/tests/fixtures/accounts/risk-engine-config.json index fa808390..43d8a2ca 100644 --- a/tests/fixtures/accounts/risk-engine-config.json +++ b/tests/fixtures/accounts/risk-engine-config.json @@ -1,12 +1,12 @@ { - "pubkey": "66TqCm7S1tEjC96TEggh2EpcYdmAppZy3qHLapP3peX", + "pubkey": "63zhouVc9DsAWsvp9CaJ7EY12CDK984Yt7heVbTsJxcN", "account": { "lamports": 9744000, "data": [ "mwyq4B76zIIAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPMEgAAAAB7FK5H4XqEPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "base64" ], - "owner": "F3o2hWqv61TavHuZYuStvW2Zd3M1JnoqBmmgGU77LRTr", + "owner": "CtfTi4TstqJaxEh8giQ7kK8CKXsJyF9CuwdcVoqGrEi1", "executable": false, "rentEpoch": 0 } diff --git a/tests/fixtures/accounts/spot-instrument-config.json b/tests/fixtures/accounts/spot-instrument-config.json index c527ef43..c9514238 100644 --- a/tests/fixtures/accounts/spot-instrument-config.json +++ b/tests/fixtures/accounts/spot-instrument-config.json @@ -1,12 +1,12 @@ { - "pubkey": "ETU5oAWiE1pembP8LGvtB3Jung9XnMNc5B9Qjiasqign", + "pubkey": "7J21igTMpQa18YueGJGNmp54m1VxsBHz4LEjiV6P28DJ", "account": { "lamports": 1002240, "data": [ "mwyq4B76zIKAlpgAAAAAAA==", "base64" ], - "owner": "4A9M7iojGDPc4n4YDGnTmsYsNKUohG1zM1nrAqVMMmrm", + "owner": "BMXWVaYPVJ4G8g2MMJt51CDgjHHuoirPMvsTUadv3s3v", "executable": false, "rentEpoch": 0 } diff --git a/tests/fixtures/pubkey-naming.json b/tests/fixtures/pubkey-naming.json index 9e3a6363..c9966218 100644 --- a/tests/fixtures/pubkey-naming.json +++ b/tests/fixtures/pubkey-naming.json @@ -2,34 +2,34 @@ "7mbGUAWCyC2NRpx9LsGNyAQbcp9VdRunZrjVvFQUYMNY": "account-dao", "5c1yzmnQg2bL8bdbUeBdgZ2RB5CAcjWN1yz6P1B8ccf8": "account-maker", "EfotJvuqAdsPx4RFTNsnEABBuAyACNnjEKKR5zyE4HVx": "account-taker", - "4WbVwc5Edfo3oB1n16bVC9qrghYHSNh1qAECbSCyiT95": "hxro-print-trade-provider", - "GizbUy6geL8B6jWGrnkH7jYvExBhpSpEzMyvx9hZfaho": "hxro-print-trade-provider-config", + "6zyXbd44vYHhpC1gxZr2BhM6m7jThqsBphn2GD36bUi3": "hxro-print-trade-provider", + "P9Frq2k9Rx1ixDm71eaBcgN5xevWb7NNoPzZJrWWgC3": "hxro-print-trade-provider-config", "FLaFgJ3Qa3bSGxUhiPCF3cgU1XhpTZKaSev7RUMbFYJZ": "mint-btc", "3kg8xjMx3EWdAuGcm6gqgXFXbgQKk5b88N6AeAo26CbM": "mint-eth", "3kePJGX9JBSMqqmLMBYZaJh6XksemDQA5EV2D1HR5w9L": "mint-sol", "85HShAwuaknk3srchNcfmg4SZU9PsNzPvECnaqH62PDa": "mint-usd-collateral", "9JgYBxL6w11XJ4xtvEicRhXGse6A1akPgZJaKjM1JnZB": "mint-usd-quote", - "HGmSFSRfVAG8RC8Ae4G1JFSHK7Au5GrGskDxncG3JRok": "psyoptions-american-instrument", - "6B7TdBNAF7tWWz5sZbbBZj8jH1ix7QWAchtkvMHveEuW": "psyoptions-european-instrument", - "EMFRxsc7FSavsUVKuwNiywXixYthe2Mo5GUNaUvnvBva": "rfq", - "9WJ5B36cb23UVuTGAw3cF3PdkwYcpRd3or9NB2feXob2": "rfq-base-asset-btc", - "CtUPSK5cXRmsr1wGo5nCjfHQ9Dca6hsg26FBiZcMsTVp": "rfq-base-asset-eth", - "7RMoZT2GLMvT5LiuXL9gSPcHdwEsS9f8Gi116cQ9ydNv": "rfq-base-asset-sol", - "ADSmGasDML6HXpRxACYjAqWz8icFib4hztZ6YF3vNtH6": "rfq-collateral-info-dao", - "48qiMm1RzkdLJ4HT63pwB2LXtUo8Z9idwJouQpeTwhfR": "rfq-collateral-info-maker", - "8k1Pv1RjECRindE1PVzBuoVMUZz8mNFxrGj5oSMFiyiu": "rfq-collateral-info-taker", - "Bc7HGjyAymBhA1xHPZpnGMnaju6jiYThMvvbo8qWpVE8": "rfq-collateral-token-dao", - "Eu5Ckc6jV6MMPtQLkNWMr3g3kd1oTXhfYL5nqTdH8hqy": "rfq-collateral-token-maker", - "4Ebb8C6qYMYa9Cup7fHsWkdU8J5qxXfXoUoPcgAqYJ8c": "rfq-collateral-token-taker", - "CCGguC4YFVLr17tM317mbqvechmgZvH1To5BcKi43GXX": "rfq-mint-info-btc", - "F74ZnvhTmF9JRJ9LCQ6kxfkSUXaLfHy9dxMnavpGWkBT": "rfq-mint-info-eth", - "4foY3PJTrLUt4nPJuuQy7WuRKz6kJXCuLBwxXdmSYgP2": "rfq-mint-info-sol", - "3UV85jwjPmdL71q2kXiPZQbnz8N9CiYbvKadzaNhxX6W": "rfq-mint-info-usd-quote", - "GjDjkE8YnpE4ugQGg2E7qbDnFn1eb6DP9FEWbT22UPxy": "rfq-protocol", - "F3o2hWqv61TavHuZYuStvW2Zd3M1JnoqBmmgGU77LRTr": "risk-engine", - "66TqCm7S1tEjC96TEggh2EpcYdmAppZy3qHLapP3peX": "risk-engine-config", - "4A9M7iojGDPc4n4YDGnTmsYsNKUohG1zM1nrAqVMMmrm": "spot-instrument", - "ETU5oAWiE1pembP8LGvtB3Jung9XnMNc5B9Qjiasqign": "spot-instrument-config", + "HpmyVA3t3uNGgdx86AuwZww7gnAWB57vepnk3732vEr9": "psyoptions-american-instrument", + "4KC8MQi2zQGr7LhTCVTMhbKuP4KcpTmdZjxsDBWrTSVf": "psyoptions-european-instrument", + "FqAhTZg86EKEzeWMLtutVDRXJuLWrey7oDHr3Au6RFdo": "rfq", + "FrQXf9PvuwisbxSaGwXdFipxu8aCEvAXCMRLcPkX64Ct": "rfq-base-asset-btc", + "4U5MABcScyet6DtPRreD6auphbrybn6SJni1kNo2Bbk1": "rfq-base-asset-eth", + "4n58twpt2baDXrRoay8Go8kniKBWfEnG1zsenvUUsMyZ": "rfq-base-asset-sol", + "Fr2tKpuV7Jvo51wpBU4so7qv1AmUc4uBh62ZUAy5oevy": "rfq-collateral-info-dao", + "EiqZBnwa8b7tLvXhXSwTW4zqkcT9UXpZi5ADmsyCKpq4": "rfq-collateral-info-maker", + "7H6gn5kksiDYRCeMRnyFLd7j8AnaMHrV8UqopTgDucji": "rfq-collateral-info-taker", + "DYj8vXUBpTxrptvRm2j2sCNAo7xPmPDidyp925YKNPZ": "rfq-collateral-token-dao", + "HZoNij3PMue4MPar4SUydqENTF6CNDAC7CXN4HaX5gYr": "rfq-collateral-token-maker", + "HAWway8wsxpxT4Fds8HvNgS8QGkDLJQubjT9DK1VcdfF": "rfq-collateral-token-taker", + "Erqa3YWCcmzRRUbimK2WryFyGXW1xmBWDeCvo1tKmd3R": "rfq-mint-info-btc", + "BKf1HuUftLk5mLX9hHNbJdUPRapGEJaaedZK1NNzewhH": "rfq-mint-info-eth", + "7kuX93pjSAfd3nraBqdCHzrzwW3L1JM9no8SjEwuzYYt": "rfq-mint-info-sol", + "5Atpbyw3tBjjc8EYrbjE1a4FNqyLUszFGsNo3R5bR3y8": "rfq-mint-info-usd-quote", + "AinWDnZWiEkWrNGH9jbvS2JXaBFZwnRE5ssNGyop882L": "rfq-protocol", + "CtfTi4TstqJaxEh8giQ7kK8CKXsJyF9CuwdcVoqGrEi1": "risk-engine", + "63zhouVc9DsAWsvp9CaJ7EY12CDK984Yt7heVbTsJxcN": "risk-engine-config", + "BMXWVaYPVJ4G8g2MMJt51CDgjHHuoirPMvsTUadv3s3v": "spot-instrument", + "7J21igTMpQa18YueGJGNmp54m1VxsBHz4LEjiV6P28DJ": "spot-instrument-config", "CBVMytnrNLSMZR4kRBwpp87iNeuexMehJFMTcizW86Yy": "token-account-btc-dao", "24z1PN6o4swFd1ztLevjSbM6hnLd96wd65BVv3QkeCrU": "token-account-btc-maker", "EB25yJhPe4X4ZWkDoeTm8HRpKgtqZGWKZAS58ifBkmGV": "token-account-btc-taker", @@ -45,5 +45,5 @@ "7t4TQvMCkpJj23t2XVWhcJZu5kPoyMvvTR4dDVPQ8WsA": "token-account-usd-quote-dao", "G47NrfrvTpdiUc3m9jZn6x98qQYkuD6nYy98tmUMMuvn": "token-account-usd-quote-maker", "7Q4CtjBBJJwXbuFstgsjpPKcupaRahgoAVPuDy6MjgQF": "token-account-usd-quote-taker", - "5Qnp9VdXtRvmR9wBcAdvqTRsBHzpZ4jU3ZKtn3BaYWUM": "vault-operator" + "DftT8Q74YPqwrtJzy6g97XLzouG2YWaWZfRad6yK2GvA": "vault-operator" } \ No newline at end of file diff --git a/tests/integration/vaultOperator.spec.ts b/tests/integration/vaultOperator.spec.ts index 7f5c7e2a..339e8046 100644 --- a/tests/integration/vaultOperator.spec.ts +++ b/tests/integration/vaultOperator.spec.ts @@ -3,6 +3,7 @@ import { TokenChangeMeasurer, attachImprovedLogDisplay, runInParallelWithWait, + sleep, toAbsolutePrice, toLegMultiplier, withTokenDecimals, @@ -26,6 +27,27 @@ describe("Vault operator", () => { maker = context.maker.publicKey; }); + it("Create a sell vault operator, active window ends and tokens are withdrawn", async () => { + let tokenMeasurer = await TokenChangeMeasurer.takeDefaultSnapshot(context); + + const vault = await context.createVaultOperatorRfq({ + orderType: OrderType.Sell, + fixedSize: FixedSize.getBaseAsset(toLegMultiplier(2)), + acceptableLimitPrice: 48_000, + activeWindow: 1, + }); + + await sleep(1.5); + await vault.withdrawTokens(); + + await tokenMeasurer.expectChange([ + { token: "asset", user: taker, delta: withTokenDecimals(0) }, + { token: "asset", user: maker, delta: withTokenDecimals(0) }, + { token: "quote", user: taker, delta: withTokenDecimals(0) }, + { token: "quote", user: maker, delta: withTokenDecimals(0) }, + ]); + }); + it("Create and settle a sell vault operator", async () => { let tokenMeasurer = await TokenChangeMeasurer.takeDefaultSnapshot(context); diff --git a/tests/unit/vaultOperator.ts b/tests/unit/vaultOperator.ts index 41e49923..f5e2c191 100644 --- a/tests/unit/vaultOperator.ts +++ b/tests/unit/vaultOperator.ts @@ -7,6 +7,7 @@ import { } from "../utilities/helpers"; import { Context, getContext } from "../utilities/wrappers"; import { AuthoritySide, FixedSize, OrderType, Quote } from "../utilities/types"; +import { expect } from "chai"; describe("Vault operator", () => { let context: Context; @@ -98,4 +99,37 @@ describe("Vault operator", () => { await response.cleanUp(); await expectError(vault.withdrawTokens({ withdrawTo: context.dao.publicKey }), "WrongCreatorAddress"); }); + + it("Tokens withdrawn field works as expected", async () => { + const vault = await context.createVaultOperatorRfq({ + orderType: OrderType.Sell, + fixedSize: FixedSize.getBaseAsset(toLegMultiplier(2)), + acceptableLimitPrice: 48_000, + }); + + const response = await vault.rfq.respond({ bid: Quote.getFixedSize(toAbsolutePrice(withTokenDecimals(48_000))) }); + await vault.confirmResponse(response); + + await vault.prepareToSettle(); + await response.prepareEscrowSettlement(AuthoritySide.Maker); + await response.settleEscrow(vault.operator, [context.maker.publicKey]); + + await response.cleanUp(); + + const vaultDataBefore = await vault.getData(); + expect(vaultDataBefore.tokensWithdrawn).to.be.false; + await vault.withdrawTokens(); + const vaultDataAfter = await vault.getData(); + expect(vaultDataAfter.tokensWithdrawn).to.be.true; + }); + + it("Can't withdraw tokens without confirmation while rfq is active", async () => { + const vault = await context.createVaultOperatorRfq({ + orderType: OrderType.Sell, + fixedSize: FixedSize.getBaseAsset(toLegMultiplier(2)), + acceptableLimitPrice: 48_000, + }); + + await expectError(vault.withdrawTokens(), "ActiveWindowHasNotFinished"); + }); }); diff --git a/tests/utilities/wrappers/vaultOperator.ts b/tests/utilities/wrappers/vaultOperator.ts index 6589d797..4b6689d8 100644 --- a/tests/utilities/wrappers/vaultOperator.ts +++ b/tests/utilities/wrappers/vaultOperator.ts @@ -82,10 +82,6 @@ export class VaultOperator { } async withdrawTokens({ withdrawTo = this.context.taker.publicKey }: { withdrawTo?: PublicKey } = {}) { - if (this.response === undefined) { - throw new Error("Not yet confirmed!"); - } - if (this.rfq.content.type !== "instrument") { throw new Error("Unexpected RFQ type"); } @@ -109,9 +105,13 @@ export class VaultOperator { quoteVault: quoteMint.getAssociatedAddress(this.operator), quoteTokens: quoteMint.getAssociatedAddress(withdrawTo), quoteMint: quoteMint.publicKey, - response: this.response.account, + response: this.response?.account ?? PublicKey.default, tokenProgram: TOKEN_PROGRAM_ID, }) .rpc(); } + + async getData() { + return this.context.vaultOperatorProgram.account.vaultParams.fetch(this.account); + } } diff --git a/vault-operator/js/.solitarc.js b/vault-operator/js/.solitarc.js index 0b1b57d5..e87fd27f 100644 --- a/vault-operator/js/.solitarc.js +++ b/vault-operator/js/.solitarc.js @@ -8,7 +8,7 @@ const binaryInstallDir = path.join(__dirname, ".crates"); module.exports = { idlGenerator: "anchor", programName: "vault_operator", - programId: "5Qnp9VdXtRvmR9wBcAdvqTRsBHzpZ4jU3ZKtn3BaYWUM", + programId: "DftT8Q74YPqwrtJzy6g97XLzouG2YWaWZfRad6yK2GvA", idlDir, sdkDir, binaryInstallDir, diff --git a/vault-operator/js/package.json b/vault-operator/js/package.json index f0ef496e..7fae26b1 100644 --- a/vault-operator/js/package.json +++ b/vault-operator/js/package.json @@ -1,6 +1,6 @@ { "name": "@convergence-rfq/vault-operator", - "version": "3.8.0", + "version": "3.9.0", "license": "MIT", "publishConfig": { "access": "public", diff --git a/vault-operator/program/src/errors.rs b/vault-operator/program/src/errors.rs index 7da9c9cd..9c0114d8 100644 --- a/vault-operator/program/src/errors.rs +++ b/vault-operator/program/src/errors.rs @@ -24,4 +24,6 @@ pub enum VaultError { WrongCreatorTokenAddress, #[msg("Response still exist. Remove it to withdraw tokens")] ResponseStillExist, + #[msg("Can't withdraw tokens without a confirmed response until active window ends")] + ActiveWindowHasNotFinished, } diff --git a/vault-operator/program/src/lib.rs b/vault-operator/program/src/lib.rs index c5201b17..c2038baa 100644 --- a/vault-operator/program/src/lib.rs +++ b/vault-operator/program/src/lib.rs @@ -28,7 +28,7 @@ pub mod errors; pub mod seeds; pub mod state; -declare_id!("5Qnp9VdXtRvmR9wBcAdvqTRsBHzpZ4jU3ZKtn3BaYWUM"); +declare_id!("DftT8Q74YPqwrtJzy6g97XLzouG2YWaWZfRad6yK2GvA"); pub const CONFIG_SEED: &str = "config"; @@ -81,6 +81,8 @@ pub mod vault_operator { vault_params.set_inner(VaultParams { creator: creator.key(), rfq: rfq.key(), + active_window_expiration: Clock::get()?.unix_timestamp + active_window as i64, + tokens_withdrawn: false, acceptable_price_limit, confirmed_response: Pubkey::default(), }); @@ -363,7 +365,16 @@ pub mod vault_operator { quote_tokens.key(), VaultError::WrongCreatorTokenAddress ); - require!(response.data_is_empty(), VaultError::ResponseStillExist); + if vault_params.confirmed_response == Pubkey::default() { + require!( + Clock::get()?.unix_timestamp >= vault_params.active_window_expiration, + VaultError::ActiveWindowHasNotFinished + ); + } else { + require!(response.data_is_empty(), VaultError::ResponseStillExist); + } + + vault_params.tokens_withdrawn = true; let vault_params_key = vault_params.key(); let bump_seed = [*ctx.bumps.get("operator").unwrap()]; @@ -512,7 +523,7 @@ pub struct WithdrawVaultTokensAccounts<'info> { #[account(mut, constraint = creator.key() == vault_params.creator @ VaultError::WrongCreatorAddress)] pub creator: UncheckedAccount<'info>, - #[account(mut, close = creator)] + #[account(mut)] pub vault_params: Account<'info, VaultParams>, /// CHECK: empty PDA account #[account(mut, seeds = [OPERATOR_SEED.as_bytes(), vault_params.key().as_ref()], bump)] @@ -530,7 +541,7 @@ pub struct WithdrawVaultTokensAccounts<'info> { pub quote_mint: Box>, /// CHECK: can already be deleted - #[account(mut, constraint = response.key() == vault_params.confirmed_response @ VaultError::WrongResponse)] + #[account(constraint = response.key() == vault_params.confirmed_response @ VaultError::WrongResponse)] pub response: UncheckedAccount<'info>, pub token_program: Program<'info, Token>, diff --git a/vault-operator/program/src/state.rs b/vault-operator/program/src/state.rs index 600f0c70..4a0c7c41 100644 --- a/vault-operator/program/src/state.rs +++ b/vault-operator/program/src/state.rs @@ -5,6 +5,8 @@ use anchor_lang::prelude::*; pub struct VaultParams { pub creator: Pubkey, pub rfq: Pubkey, + pub active_window_expiration: i64, + pub tokens_withdrawn: bool, pub acceptable_price_limit: u128, // the same decimals as in Quote price_bps pub confirmed_response: Pubkey, // default pubkey means no confirmation yet }