diff --git a/Cargo.toml b/Cargo.toml
index b3874be4..4202093f 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -10,7 +10,6 @@ members = [
"contracts/subdaos/cwd-subdao-timelock-single",
"contracts/tokenomics/reserve",
"contracts/tokenomics/distribution",
- "contracts/misc/rescueeer",
"packages/*",
]
diff --git a/contracts/misc/rescueeer/.cargo/config b/contracts/misc/rescueeer/.cargo/config
deleted file mode 100644
index 336b618a..00000000
--- a/contracts/misc/rescueeer/.cargo/config
+++ /dev/null
@@ -1,4 +0,0 @@
-[alias]
-wasm = "build --release --target wasm32-unknown-unknown"
-unit-test = "test --lib"
-schema = "run --example schema"
diff --git a/contracts/misc/rescueeer/.gitignore b/contracts/misc/rescueeer/.gitignore
deleted file mode 100644
index dfdaaa6b..00000000
--- a/contracts/misc/rescueeer/.gitignore
+++ /dev/null
@@ -1,15 +0,0 @@
-# Build results
-/target
-
-# Cargo+Git helper file (https://github.com/rust-lang/cargo/blob/0.44.1/src/cargo/sources/git/utils.rs#L320-L327)
-.cargo-ok
-
-# Text file backups
-**/*.rs.bk
-
-# macOS
-.DS_Store
-
-# IDEs
-*.iml
-.idea
diff --git a/contracts/misc/rescueeer/Cargo.toml b/contracts/misc/rescueeer/Cargo.toml
deleted file mode 100644
index 317a588a..00000000
--- a/contracts/misc/rescueeer/Cargo.toml
+++ /dev/null
@@ -1,32 +0,0 @@
-[package]
-name = "rescueeer"
-version = "0.2.0"
-authors = ["oldremez"]
-edition = "2021"
-repository = "https://github.com/neutron-org/neutron-dao"
-description = "rescuer"
-
-[lib]
-crate-type = ["cdylib", "rlib"]
-
-[features]
-# for more explicit tests, cargo test --features=backtraces
-backtraces = ["cosmwasm-std/backtraces"]
-# use library feature to disable all instantiate/execute/query exports
-library = []
-
-[dependencies]
-cosmwasm-schema = { version = "1.1.3" }
-cosmwasm-std = { version = "1.1.3" }
-cosmwasm-storage = { version = "1.1.3" }
-cw-storage-plus = "1.0.1"
-cw-utils = "1.0.1"
-cw-controllers = "1.0.1"
-schemars = "0.8"
-serde = { version = "1.0.147", default-features = false, features = ["derive"] }
-thiserror = { version = "1.0" }
-neutron_bindings = { package = "neutron-sdk", version = "0.4.0" }
-
-[dev-dependencies]
-cw-multi-test = "0.16.2"
-anyhow = "1.0.57"
diff --git a/contracts/misc/rescueeer/README.md b/contracts/misc/rescueeer/README.md
deleted file mode 100644
index 9c55c40a..00000000
--- a/contracts/misc/rescueeer/README.md
+++ /dev/null
@@ -1,98 +0,0 @@
-# Rescueeer
-
-
-
-# The purpose
-
-The only purpose of the Rescueeer is to fix possible misconfigurations between **the chain launch** and the **TGE start** without necessarily resorting to a chain halt. Ideally, the Rescueeer will self-destruct without ever having been used.
-
-Neutron’s launch event and DAO infrastructure is a large, complex piece of code. We have created automated solutions to help configure them properly for launch, but any mistake left unattended could result in a misconfiguration. For the sake of safety and liveness, the Rescueeer provides a simple way to fix any remaining problem after launch, before users funds are at risk.
-
-# The details
-
-It has 3 parameters:
-
-1. Owner (the Multisig)
-2. True Admin (the DAO)
-3. End of Life (13 days after launch)
-
-During its lifetime, the Rescueeer executes any message sent by the Owner.
-
-```
-┌────────────┐ ┌────────────┐
-│ Multisig │ │ Literally │
-│ │ │ anyone │
-└──────┬─────┘ └────────────┘
- │
- │Execute(Msg)
- │
-┌──────▼─────┐ ┌────────────┐
-│ Rescueeer │ Msg │ DAO │
-│ ├────────►│ │
-└────────────┘ └────────────┘
-```
-
-**Once end of life is reached**, anyone can force Rescueeer to transfer its admin rights to the True Admin (e.g. the DAO).
-
-```
-┌────────────┐ ┌────────────┐
-│ Multisig │ │ Literally │
-│ │ ┌────┤ anyone │
-└────────────┘ │ └────────────┘
- │
- ┌─────────┘
- │ TransferAdmin(DAO)
- │
-┌───────▼────┐ ┌────────────┐
-│ Rescueeer ├────────►│ DAO │
-│ │ Migrate │ │
-└────────────┘ Admin( └────────────┘
- DAO)
-```
-
-In an ideal scenario, all tests are successful and all contracts are properly configured. The Rescueeer is never used (it never executes any message from the multisig). Then, once the End of Life is reached, a third party triggers the return of admin powers to the Neutron Core DAO.
-
-If the Owner (the multisig) wants to explicitly drop the admin power before the End of Life, it can just “commit suicide”: e.g. update itself to brick the non-upgradable contract (Rescueeer will permissionlessly return admin rights to the DAO once the End of Life is reached anyway).
-
-```
-┌────────────┐ ┌────────────┐
-│ Multisig │ │ Literally │
-│ │ │ anyone │
-└─┬────────▲─┘ └────────────┘
- │ │
- └────────┘
- Suicide
-
-┌────────────┐ ┌────────────┐
-│ Rescueeer │ │ DAO │
-│ │ │ │
-└────────────┘ └────────────┘
-```
-
-### Recap
-
-1. If everything is properly configured, the Owner does nothing in regard to DAO. It may commit suicide and Rescueeer will return admin rights without it once the End of Life is reached.
-2. If there’s a reason to do something, the Owner is able to do that.
-
-3 possible scenarios:
-
-1. Nothing happens. End of Life comes and *someone* issues the transaction to transfer DAO admin back to DAO. Multisig never ever touched either DAO or Rescueeer.
- 1. The same but Multisig decides that there’s no need of having the admin power. Then it just commits suicide before the End of Life.
-2. If something happens, then Multisig is able to do stuff until the End of Life.
-
-# Transferring the Rescueeer’s powers to the DAO
-
-To transfer admin rights back to the DAO once the End of Life is reached, the following message has to be sent to the Rescueeer.
-
-```
-{
- transfer_admin: {
- address: "neutron1suhgf5svhu4usrurvxzlgn54ksxmn8gljarjtxqnapv8kjnp4nrstdxvff"
- }
-}
-```
-
-Where `neutron1suhgf5svhu4usrurvxzlgn54ksxmn8gljarjtxqnapv8kjnp4nrstdxvff` is the DAO core module address.
diff --git a/contracts/misc/rescueeer/examples/schema.rs b/contracts/misc/rescueeer/examples/schema.rs
deleted file mode 100644
index be05d587..00000000
--- a/contracts/misc/rescueeer/examples/schema.rs
+++ /dev/null
@@ -1,16 +0,0 @@
-use std::env::current_dir;
-use std::fs::create_dir_all;
-
-use cosmwasm_schema::{export_schema, remove_schemas, schema_for};
-use rescueeer::msg::{ExecuteMsg, InstantiateMsg, MigrateMsg};
-
-fn main() {
- let mut out_dir = current_dir().unwrap();
- out_dir.push("schema");
- create_dir_all(&out_dir).unwrap();
- remove_schemas(&out_dir).unwrap();
-
- export_schema(&schema_for!(InstantiateMsg), &out_dir);
- export_schema(&schema_for!(ExecuteMsg), &out_dir);
- export_schema(&schema_for!(MigrateMsg), &out_dir);
-}
diff --git a/contracts/misc/rescueeer/schema/execute_msg.json b/contracts/misc/rescueeer/schema/execute_msg.json
deleted file mode 100644
index 76e2fb87..00000000
--- a/contracts/misc/rescueeer/schema/execute_msg.json
+++ /dev/null
@@ -1,1667 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "ExecuteMsg",
- "oneOf": [
- {
- "type": "object",
- "required": [
- "execute"
- ],
- "properties": {
- "execute": {
- "type": "object",
- "required": [
- "msgs"
- ],
- "properties": {
- "msgs": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/CosmosMsg_for_NeutronMsg"
- }
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "type": "object",
- "required": [
- "transfer_admin"
- ],
- "properties": {
- "transfer_admin": {
- "type": "object",
- "required": [
- "address"
- ],
- "properties": {
- "address": {
- "type": "string"
- }
- }
- }
- },
- "additionalProperties": false
- }
- ],
- "definitions": {
- "AdminProposal": {
- "description": "AdminProposal defines the struct for various proposals which Neutron's Admin Module may accept.",
- "oneOf": [
- {
- "type": "object",
- "required": [
- "param_change_proposal"
- ],
- "properties": {
- "param_change_proposal": {
- "$ref": "#/definitions/ParamChangeProposal"
- }
- },
- "additionalProperties": false
- },
- {
- "type": "object",
- "required": [
- "software_upgrade_proposal"
- ],
- "properties": {
- "software_upgrade_proposal": {
- "$ref": "#/definitions/SoftwareUpgradeProposal"
- }
- },
- "additionalProperties": false
- },
- {
- "type": "object",
- "required": [
- "cancel_software_upgrade_proposal"
- ],
- "properties": {
- "cancel_software_upgrade_proposal": {
- "$ref": "#/definitions/CancelSoftwareUpgradeProposal"
- }
- },
- "additionalProperties": false
- },
- {
- "type": "object",
- "required": [
- "upgrade_proposal"
- ],
- "properties": {
- "upgrade_proposal": {
- "$ref": "#/definitions/UpgradeProposal"
- }
- },
- "additionalProperties": false
- },
- {
- "type": "object",
- "required": [
- "client_update_proposal"
- ],
- "properties": {
- "client_update_proposal": {
- "$ref": "#/definitions/ClientUpdateProposal"
- }
- },
- "additionalProperties": false
- },
- {
- "type": "object",
- "required": [
- "pin_codes_proposal"
- ],
- "properties": {
- "pin_codes_proposal": {
- "$ref": "#/definitions/PinCodesProposal"
- }
- },
- "additionalProperties": false
- },
- {
- "type": "object",
- "required": [
- "unpin_codes_proposal"
- ],
- "properties": {
- "unpin_codes_proposal": {
- "$ref": "#/definitions/UnpinCodesProposal"
- }
- },
- "additionalProperties": false
- },
- {
- "type": "object",
- "required": [
- "sudo_contract_proposal"
- ],
- "properties": {
- "sudo_contract_proposal": {
- "$ref": "#/definitions/SudoContractProposal"
- }
- },
- "additionalProperties": false
- },
- {
- "type": "object",
- "required": [
- "update_admin_proposal"
- ],
- "properties": {
- "update_admin_proposal": {
- "$ref": "#/definitions/UpdateAdminProposal"
- }
- },
- "additionalProperties": false
- },
- {
- "type": "object",
- "required": [
- "clear_admin_proposal"
- ],
- "properties": {
- "clear_admin_proposal": {
- "$ref": "#/definitions/ClearAdminProposal"
- }
- },
- "additionalProperties": false
- }
- ]
- },
- "BankMsg": {
- "description": "The message types of the bank module.\n\nSee https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/bank/v1beta1/tx.proto",
- "oneOf": [
- {
- "description": "Sends native tokens from the contract to the given address.\n\nThis is translated to a [MsgSend](https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/bank/v1beta1/tx.proto#L19-L28). `from_address` is automatically filled with the current contract's address.",
- "type": "object",
- "required": [
- "send"
- ],
- "properties": {
- "send": {
- "type": "object",
- "required": [
- "amount",
- "to_address"
- ],
- "properties": {
- "amount": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/Coin"
- }
- },
- "to_address": {
- "type": "string"
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "description": "This will burn the given coins from the contract's account. There is no Cosmos SDK message that performs this, but it can be done by calling the bank keeper. Important if a contract controls significant token supply that must be retired.",
- "type": "object",
- "required": [
- "burn"
- ],
- "properties": {
- "burn": {
- "type": "object",
- "required": [
- "amount"
- ],
- "properties": {
- "amount": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/Coin"
- }
- }
- }
- }
- },
- "additionalProperties": false
- }
- ]
- },
- "Binary": {
- "description": "Binary is a wrapper around Vec to add base64 de/serialization with serde. It also adds some helper methods to help encode inline.\n\nThis is only needed as serde-json-{core,wasm} has a horrible encoding for Vec. See also .",
- "type": "string"
- },
- "CancelSoftwareUpgradeProposal": {
- "description": "CancelSoftwareUpgradeProposal defines the struct for cancel software upgrade proposal.",
- "type": "object",
- "required": [
- "description",
- "title"
- ],
- "properties": {
- "description": {
- "description": "*description** is a text description of proposal. Non unique.",
- "type": "string"
- },
- "title": {
- "description": "*title** is a text title of proposal. Non unique.",
- "type": "string"
- }
- }
- },
- "ClearAdminProposal": {
- "description": "SudoContractProposal defines the struct for clear admin proposal.",
- "type": "object",
- "required": [
- "contract",
- "description",
- "title"
- ],
- "properties": {
- "contract": {
- "description": "*contract** is an address of contract admin will be removed.",
- "type": "string"
- },
- "description": {
- "description": "*description** is a text description of proposal.",
- "type": "string"
- },
- "title": {
- "description": "*title** is a text title of proposal.",
- "type": "string"
- }
- }
- },
- "ClientUpdateProposal": {
- "description": "ClientUpdateProposal defines the struct for client update proposal.",
- "type": "object",
- "required": [
- "description",
- "subject_client_id",
- "substitute_client_id",
- "title"
- ],
- "properties": {
- "description": {
- "description": "*description** is a text description of proposal. Non unique.",
- "type": "string"
- },
- "subject_client_id": {
- "description": "*subject_client_id** is a subject client id.",
- "type": "string"
- },
- "substitute_client_id": {
- "description": "*substitute_client_id** is a substitute client id.",
- "type": "string"
- },
- "title": {
- "description": "*title** is a text title of proposal.",
- "type": "string"
- }
- }
- },
- "Coin": {
- "type": "object",
- "required": [
- "amount",
- "denom"
- ],
- "properties": {
- "amount": {
- "$ref": "#/definitions/Uint128"
- },
- "denom": {
- "type": "string"
- }
- }
- },
- "CosmosMsg_for_NeutronMsg": {
- "oneOf": [
- {
- "type": "object",
- "required": [
- "bank"
- ],
- "properties": {
- "bank": {
- "$ref": "#/definitions/BankMsg"
- }
- },
- "additionalProperties": false
- },
- {
- "type": "object",
- "required": [
- "custom"
- ],
- "properties": {
- "custom": {
- "$ref": "#/definitions/NeutronMsg"
- }
- },
- "additionalProperties": false
- },
- {
- "type": "object",
- "required": [
- "staking"
- ],
- "properties": {
- "staking": {
- "$ref": "#/definitions/StakingMsg"
- }
- },
- "additionalProperties": false
- },
- {
- "type": "object",
- "required": [
- "distribution"
- ],
- "properties": {
- "distribution": {
- "$ref": "#/definitions/DistributionMsg"
- }
- },
- "additionalProperties": false
- },
- {
- "description": "A Stargate message encoded the same way as a protobuf [Any](https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/any.proto). This is the same structure as messages in `TxBody` from [ADR-020](https://github.com/cosmos/cosmos-sdk/blob/master/docs/architecture/adr-020-protobuf-transaction-encoding.md)",
- "type": "object",
- "required": [
- "stargate"
- ],
- "properties": {
- "stargate": {
- "type": "object",
- "required": [
- "type_url",
- "value"
- ],
- "properties": {
- "type_url": {
- "type": "string"
- },
- "value": {
- "$ref": "#/definitions/Binary"
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "type": "object",
- "required": [
- "ibc"
- ],
- "properties": {
- "ibc": {
- "$ref": "#/definitions/IbcMsg"
- }
- },
- "additionalProperties": false
- },
- {
- "type": "object",
- "required": [
- "wasm"
- ],
- "properties": {
- "wasm": {
- "$ref": "#/definitions/WasmMsg"
- }
- },
- "additionalProperties": false
- },
- {
- "type": "object",
- "required": [
- "gov"
- ],
- "properties": {
- "gov": {
- "$ref": "#/definitions/GovMsg"
- }
- },
- "additionalProperties": false
- }
- ]
- },
- "DistributionMsg": {
- "description": "The message types of the distribution module.\n\nSee https://github.com/cosmos/cosmos-sdk/blob/v0.42.4/proto/cosmos/distribution/v1beta1/tx.proto",
- "oneOf": [
- {
- "description": "This is translated to a [MsgSetWithdrawAddress](https://github.com/cosmos/cosmos-sdk/blob/v0.42.4/proto/cosmos/distribution/v1beta1/tx.proto#L29-L37). `delegator_address` is automatically filled with the current contract's address.",
- "type": "object",
- "required": [
- "set_withdraw_address"
- ],
- "properties": {
- "set_withdraw_address": {
- "type": "object",
- "required": [
- "address"
- ],
- "properties": {
- "address": {
- "description": "The `withdraw_address`",
- "type": "string"
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "description": "This is translated to a [[MsgWithdrawDelegatorReward](https://github.com/cosmos/cosmos-sdk/blob/v0.42.4/proto/cosmos/distribution/v1beta1/tx.proto#L42-L50). `delegator_address` is automatically filled with the current contract's address.",
- "type": "object",
- "required": [
- "withdraw_delegator_reward"
- ],
- "properties": {
- "withdraw_delegator_reward": {
- "type": "object",
- "required": [
- "validator"
- ],
- "properties": {
- "validator": {
- "description": "The `validator_address`",
- "type": "string"
- }
- }
- }
- },
- "additionalProperties": false
- }
- ]
- },
- "GovMsg": {
- "description": "This message type allows the contract interact with the [x/gov] module in order to cast votes.\n\n[x/gov]: https://github.com/cosmos/cosmos-sdk/tree/v0.45.12/x/gov\n\n## Examples\n\nCast a simple vote:\n\n``` # use cosmwasm_std::{ # HexBinary, # Storage, Api, Querier, DepsMut, Deps, entry_point, Env, StdError, MessageInfo, # Response, QueryResponse, # }; # type ExecuteMsg = (); use cosmwasm_std::{GovMsg, VoteOption};\n\n#[entry_point] pub fn execute( deps: DepsMut, env: Env, info: MessageInfo, msg: ExecuteMsg, ) -> Result { // ... Ok(Response::new().add_message(GovMsg::Vote { proposal_id: 4, vote: VoteOption::Yes, })) } ```\n\nCast a weighted vote:\n\n``` # use cosmwasm_std::{ # HexBinary, # Storage, Api, Querier, DepsMut, Deps, entry_point, Env, StdError, MessageInfo, # Response, QueryResponse, # }; # type ExecuteMsg = (); # #[cfg(feature = \"cosmwasm_1_2\")] use cosmwasm_std::{Decimal, GovMsg, VoteOption, WeightedVoteOption};\n\n# #[cfg(feature = \"cosmwasm_1_2\")] #[entry_point] pub fn execute( deps: DepsMut, env: Env, info: MessageInfo, msg: ExecuteMsg, ) -> Result { // ... Ok(Response::new().add_message(GovMsg::VoteWeighted { proposal_id: 4, options: vec![ WeightedVoteOption { option: VoteOption::Yes, weight: Decimal::percent(65), }, WeightedVoteOption { option: VoteOption::Abstain, weight: Decimal::percent(35), }, ], })) } ```",
- "oneOf": [
- {
- "description": "This maps directly to [MsgVote](https://github.com/cosmos/cosmos-sdk/blob/v0.42.5/proto/cosmos/gov/v1beta1/tx.proto#L46-L56) in the Cosmos SDK with voter set to the contract address.",
- "type": "object",
- "required": [
- "vote"
- ],
- "properties": {
- "vote": {
- "type": "object",
- "required": [
- "proposal_id",
- "vote"
- ],
- "properties": {
- "proposal_id": {
- "type": "integer",
- "format": "uint64",
- "minimum": 0.0
- },
- "vote": {
- "description": "The vote option.\n\nThis should be called \"option\" for consistency with Cosmos SDK. Sorry for that. See .",
- "allOf": [
- {
- "$ref": "#/definitions/VoteOption"
- }
- ]
- }
- }
- }
- },
- "additionalProperties": false
- }
- ]
- },
- "IbcFee": {
- "description": "IbcFee defines struct for fees that refund the relayer for `SudoMsg` messages submission. Unused fee kind will be returned back to message sender. Please refer to these links for more information: IBC transaction structure - https://docs.neutron.org/neutron/interchain-txs/messages/#msgsubmittx General mechanics of fee payments - https://docs.neutron.org/neutron/feerefunder/overview/#general-mechanics",
- "type": "object",
- "required": [
- "ack_fee",
- "recv_fee",
- "timeout_fee"
- ],
- "properties": {
- "ack_fee": {
- "description": "*ack_fee** is an amount of coins to refund relayer for submitting ack message for a particular IBC packet.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/Coin"
- }
- },
- "recv_fee": {
- "description": "**recv_fee** currently is used for compatibility with ICS-29 interface only and must be set to zero (i.e. 0untrn), because Neutron's fee module can't refund relayer for submission of Recv IBC packets due to compatibility with target chains.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/Coin"
- }
- },
- "timeout_fee": {
- "description": "*timeout_fee** amount of coins to refund relayer for submitting timeout message for a particular IBC packet.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/Coin"
- }
- }
- }
- },
- "IbcMsg": {
- "description": "These are messages in the IBC lifecycle. Only usable by IBC-enabled contracts (contracts that directly speak the IBC protocol via 6 entry points)",
- "oneOf": [
- {
- "description": "Sends bank tokens owned by the contract to the given address on another chain. The channel must already be established between the ibctransfer module on this chain and a matching module on the remote chain. We cannot select the port_id, this is whatever the local chain has bound the ibctransfer module to.",
- "type": "object",
- "required": [
- "transfer"
- ],
- "properties": {
- "transfer": {
- "type": "object",
- "required": [
- "amount",
- "channel_id",
- "timeout",
- "to_address"
- ],
- "properties": {
- "amount": {
- "description": "packet data only supports one coin https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/ibc/applications/transfer/v1/transfer.proto#L11-L20",
- "allOf": [
- {
- "$ref": "#/definitions/Coin"
- }
- ]
- },
- "channel_id": {
- "description": "exisiting channel to send the tokens over",
- "type": "string"
- },
- "timeout": {
- "description": "when packet times out, measured on remote chain",
- "allOf": [
- {
- "$ref": "#/definitions/IbcTimeout"
- }
- ]
- },
- "to_address": {
- "description": "address on the remote chain to receive these tokens",
- "type": "string"
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "description": "Sends an IBC packet with given data over the existing channel. Data should be encoded in a format defined by the channel version, and the module on the other side should know how to parse this.",
- "type": "object",
- "required": [
- "send_packet"
- ],
- "properties": {
- "send_packet": {
- "type": "object",
- "required": [
- "channel_id",
- "data",
- "timeout"
- ],
- "properties": {
- "channel_id": {
- "type": "string"
- },
- "data": {
- "$ref": "#/definitions/Binary"
- },
- "timeout": {
- "description": "when packet times out, measured on remote chain",
- "allOf": [
- {
- "$ref": "#/definitions/IbcTimeout"
- }
- ]
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "description": "This will close an existing channel that is owned by this contract. Port is auto-assigned to the contract's IBC port",
- "type": "object",
- "required": [
- "close_channel"
- ],
- "properties": {
- "close_channel": {
- "type": "object",
- "required": [
- "channel_id"
- ],
- "properties": {
- "channel_id": {
- "type": "string"
- }
- }
- }
- },
- "additionalProperties": false
- }
- ]
- },
- "IbcTimeout": {
- "description": "In IBC each package must set at least one type of timeout: the timestamp or the block height. Using this rather complex enum instead of two timeout fields we ensure that at least one timeout is set.",
- "type": "object",
- "properties": {
- "block": {
- "anyOf": [
- {
- "$ref": "#/definitions/IbcTimeoutBlock"
- },
- {
- "type": "null"
- }
- ]
- },
- "timestamp": {
- "anyOf": [
- {
- "$ref": "#/definitions/Timestamp"
- },
- {
- "type": "null"
- }
- ]
- }
- }
- },
- "IbcTimeoutBlock": {
- "description": "IBCTimeoutHeight Height is a monotonically increasing data type that can be compared against another Height for the purposes of updating and freezing clients. Ordering is (revision_number, timeout_height)",
- "type": "object",
- "required": [
- "height",
- "revision"
- ],
- "properties": {
- "height": {
- "description": "block height after which the packet times out. the height within the given revision",
- "type": "integer",
- "format": "uint64",
- "minimum": 0.0
- },
- "revision": {
- "description": "the version that the client is currently on (eg. after reseting the chain this could increment 1 as height drops to 0)",
- "type": "integer",
- "format": "uint64",
- "minimum": 0.0
- }
- }
- },
- "KVKey": {
- "description": "Describes a KV key for which you want to get value from the storage on remote chain",
- "type": "object",
- "required": [
- "key",
- "path"
- ],
- "properties": {
- "key": {
- "description": "*key** is a key you want to read from the storage",
- "allOf": [
- {
- "$ref": "#/definitions/Binary"
- }
- ]
- },
- "path": {
- "description": "*path** is a path to the storage (storage prefix) where you want to read value by key (usually name of cosmos-packages module: 'staking', 'bank', etc.)",
- "type": "string"
- }
- }
- },
- "MsgExecuteContract": {
- "description": "MsgExecuteContract defines a call to the contract execution",
- "type": "object",
- "required": [
- "contract",
- "msg"
- ],
- "properties": {
- "contract": {
- "description": "*contract** is a contract address that will be called",
- "type": "string"
- },
- "msg": {
- "description": "*msg** is a contract call message",
- "type": "string"
- }
- }
- },
- "NeutronMsg": {
- "description": "A number of Custom messages that can call into the Neutron bindings.",
- "oneOf": [
- {
- "description": "RegisterInterchainAccount registers an interchain account on remote chain.",
- "type": "object",
- "required": [
- "register_interchain_account"
- ],
- "properties": {
- "register_interchain_account": {
- "type": "object",
- "required": [
- "connection_id",
- "interchain_account_id"
- ],
- "properties": {
- "connection_id": {
- "description": "*connection_id** is an IBC connection identifier between Neutron and remote chain.",
- "type": "string"
- },
- "interchain_account_id": {
- "description": "**interchain_account_id** is an identifier of your new interchain account. Can be any string. This identifier allows contracts to have multiple interchain accounts on remote chains.",
- "type": "string"
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "description": "SubmitTx starts the process of executing any Cosmos-SDK *msgs* on remote chain.",
- "type": "object",
- "required": [
- "submit_tx"
- ],
- "properties": {
- "submit_tx": {
- "type": "object",
- "required": [
- "connection_id",
- "fee",
- "interchain_account_id",
- "memo",
- "msgs",
- "timeout"
- ],
- "properties": {
- "connection_id": {
- "description": "*connection_id** is an IBC connection identifier between Neutron and remote chain.",
- "type": "string"
- },
- "fee": {
- "description": "**fee** is an ibc fee for the transaction.",
- "allOf": [
- {
- "$ref": "#/definitions/IbcFee"
- }
- ]
- },
- "interchain_account_id": {
- "description": "*interchain_account_id** is an identifier of your interchain account from which you want to execute msgs.",
- "type": "string"
- },
- "memo": {
- "description": "*memo** is a memo you want to attach to your interchain transaction.It behaves like a memo in usual Cosmos transaction.",
- "type": "string"
- },
- "msgs": {
- "description": "*msgs** is a list of protobuf encoded Cosmos-SDK messages you want to execute on remote chain.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ProtobufAny"
- }
- },
- "timeout": {
- "description": "*timeout** is a timeout in seconds after which the packet times out.",
- "type": "integer",
- "format": "uint64",
- "minimum": 0.0
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "description": "RegisterInterchainQuery registers an interchain query.",
- "type": "object",
- "required": [
- "register_interchain_query"
- ],
- "properties": {
- "register_interchain_query": {
- "type": "object",
- "required": [
- "connection_id",
- "keys",
- "query_type",
- "transactions_filter",
- "update_period"
- ],
- "properties": {
- "connection_id": {
- "description": "*connection_id** is an IBC connection identifier between Neutron and remote chain.",
- "type": "string"
- },
- "keys": {
- "description": "*keys** is the KV-storage keys for which we want to get values from remote chain.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/KVKey"
- }
- },
- "query_type": {
- "description": "*query_type** is a query type identifier ('tx' or 'kv' for now).",
- "type": "string"
- },
- "transactions_filter": {
- "description": "*transactions_filter** is the filter for transaction search ICQ.",
- "type": "string"
- },
- "update_period": {
- "description": "*update_period** is used to say how often the query must be updated.",
- "type": "integer",
- "format": "uint64",
- "minimum": 0.0
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "description": "RegisterInterchainQuery updates an interchain query.",
- "type": "object",
- "required": [
- "update_interchain_query"
- ],
- "properties": {
- "update_interchain_query": {
- "type": "object",
- "required": [
- "query_id"
- ],
- "properties": {
- "new_keys": {
- "description": "*new_keys** is the new query keys to retrive.",
- "type": [
- "array",
- "null"
- ],
- "items": {
- "$ref": "#/definitions/KVKey"
- }
- },
- "new_transactions_filter": {
- "description": "*new_transactions_filter** is a new transactions filter of the query.",
- "type": [
- "string",
- "null"
- ]
- },
- "new_update_period": {
- "description": "*new_update_period** is a new update period of the query.",
- "type": [
- "integer",
- "null"
- ],
- "format": "uint64",
- "minimum": 0.0
- },
- "query_id": {
- "description": "*query_id** is the ID of the query we want to update.",
- "type": "integer",
- "format": "uint64",
- "minimum": 0.0
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "description": "RemoveInterchainQuery removes as interchain query.",
- "type": "object",
- "required": [
- "remove_interchain_query"
- ],
- "properties": {
- "remove_interchain_query": {
- "type": "object",
- "required": [
- "query_id"
- ],
- "properties": {
- "query_id": {
- "description": "*query_id** is ID of the query we want to remove.",
- "type": "integer",
- "format": "uint64",
- "minimum": 0.0
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "description": "IbcTransfer sends a fungible token packet over IBC.",
- "type": "object",
- "required": [
- "ibc_transfer"
- ],
- "properties": {
- "ibc_transfer": {
- "type": "object",
- "required": [
- "fee",
- "memo",
- "receiver",
- "sender",
- "source_channel",
- "source_port",
- "timeout_height",
- "timeout_timestamp",
- "token"
- ],
- "properties": {
- "fee": {
- "$ref": "#/definitions/IbcFee"
- },
- "memo": {
- "type": "string"
- },
- "receiver": {
- "type": "string"
- },
- "sender": {
- "type": "string"
- },
- "source_channel": {
- "type": "string"
- },
- "source_port": {
- "type": "string"
- },
- "timeout_height": {
- "$ref": "#/definitions/RequestPacketTimeoutHeight"
- },
- "timeout_timestamp": {
- "type": "integer",
- "format": "uint64",
- "minimum": 0.0
- },
- "token": {
- "$ref": "#/definitions/Coin"
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "description": "SubmitAdminProposal sends a proposal to neutron's Admin module. This type of messages can be only executed by Neutron DAO.",
- "type": "object",
- "required": [
- "submit_admin_proposal"
- ],
- "properties": {
- "submit_admin_proposal": {
- "type": "object",
- "required": [
- "admin_proposal"
- ],
- "properties": {
- "admin_proposal": {
- "$ref": "#/definitions/AdminProposal"
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "description": "AddSchedule adds new schedule with a given `name`. Until schedule is removed it will execute all `msgs` every `period` blocks. First execution is at least on `current_block + period` block. [Permissioned - DAO Only]",
- "type": "object",
- "required": [
- "add_schedule"
- ],
- "properties": {
- "add_schedule": {
- "type": "object",
- "required": [
- "msgs",
- "name",
- "period"
- ],
- "properties": {
- "msgs": {
- "description": "list of cosmwasm messages to be executed",
- "type": "array",
- "items": {
- "$ref": "#/definitions/MsgExecuteContract"
- }
- },
- "name": {
- "description": "Name of a new schedule. Needed to be able to `RemoveSchedule` and to log information about it",
- "type": "string"
- },
- "period": {
- "description": "period in blocks with which `msgs` will be executed",
- "type": "integer",
- "format": "uint64",
- "minimum": 0.0
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "description": "RemoveSchedule removes the schedule with a given `name`. [Permissioned - DAO or Security DAO only]",
- "type": "object",
- "required": [
- "remove_schedule"
- ],
- "properties": {
- "remove_schedule": {
- "type": "object",
- "required": [
- "name"
- ],
- "properties": {
- "name": {
- "type": "string"
- }
- }
- }
- },
- "additionalProperties": false
- }
- ]
- },
- "ParamChange": {
- "description": "ParamChange defines the struct for parameter change request.",
- "type": "object",
- "required": [
- "key",
- "subspace",
- "value"
- ],
- "properties": {
- "key": {
- "description": "*key** is a name of parameter. Unique for subspace.",
- "type": "string"
- },
- "subspace": {
- "description": "*subspace** is a key of module to which the parameter to change belongs. Unique for each module.",
- "type": "string"
- },
- "value": {
- "description": "*value** is a new value for given parameter. Non unique.",
- "type": "string"
- }
- }
- },
- "ParamChangeProposal": {
- "description": "ParamChangeProposal defines the struct for single parameter change proposal.",
- "type": "object",
- "required": [
- "description",
- "param_changes",
- "title"
- ],
- "properties": {
- "description": {
- "description": "*description** is a text description of proposal. Non unique.",
- "type": "string"
- },
- "param_changes": {
- "description": "*param_changes** is a vector of params to be changed. Non unique.",
- "type": "array",
- "items": {
- "$ref": "#/definitions/ParamChange"
- }
- },
- "title": {
- "description": "*title** is a text title of proposal. Non unique.",
- "type": "string"
- }
- }
- },
- "PinCodesProposal": {
- "description": "PinCodesProposal defines the struct for pin contract codes proposal.",
- "type": "object",
- "required": [
- "code_ids",
- "description",
- "title"
- ],
- "properties": {
- "code_ids": {
- "description": "*code_ids** is an array of codes to be pined.",
- "type": "array",
- "items": {
- "type": "integer",
- "format": "uint64",
- "minimum": 0.0
- }
- },
- "description": {
- "description": "*description** is a text description of proposal.",
- "type": "string"
- },
- "title": {
- "description": "*title** is a text title of proposal.",
- "type": "string"
- }
- }
- },
- "Plan": {
- "description": "Plan defines the struct for planned upgrade.",
- "type": "object",
- "required": [
- "height",
- "info",
- "name"
- ],
- "properties": {
- "height": {
- "description": "*height** is a height at which the upgrade must be performed",
- "type": "integer",
- "format": "int64"
- },
- "info": {
- "description": "*info** is any application specific upgrade info to be included on-chain",
- "type": "string"
- },
- "name": {
- "description": "*name** is a name for the upgrade",
- "type": "string"
- }
- }
- },
- "ProtobufAny": {
- "description": "Type for wrapping any protobuf message",
- "type": "object",
- "required": [
- "type_url",
- "value"
- ],
- "properties": {
- "type_url": {
- "description": "*type_url** describes the type of the serialized message",
- "type": "string"
- },
- "value": {
- "description": "*value** must be a valid serialized protocol buffer of the above specified type",
- "allOf": [
- {
- "$ref": "#/definitions/Binary"
- }
- ]
- }
- }
- },
- "RequestPacketTimeoutHeight": {
- "type": "object",
- "properties": {
- "revision_height": {
- "type": [
- "integer",
- "null"
- ],
- "format": "uint64",
- "minimum": 0.0
- },
- "revision_number": {
- "type": [
- "integer",
- "null"
- ],
- "format": "uint64",
- "minimum": 0.0
- }
- }
- },
- "SoftwareUpgradeProposal": {
- "description": "SoftwareUpgradeProposal defines the struct for software upgrade proposal.",
- "type": "object",
- "required": [
- "description",
- "plan",
- "title"
- ],
- "properties": {
- "description": {
- "description": "*description** is a text description of proposal. Non unique.",
- "type": "string"
- },
- "plan": {
- "description": "*plan** is a plan of upgrade.",
- "allOf": [
- {
- "$ref": "#/definitions/Plan"
- }
- ]
- },
- "title": {
- "description": "*title** is a text title of proposal. Non unique.",
- "type": "string"
- }
- }
- },
- "StakingMsg": {
- "description": "The message types of the staking module.\n\nSee https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/staking/v1beta1/tx.proto",
- "oneOf": [
- {
- "description": "This is translated to a [MsgDelegate](https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/staking/v1beta1/tx.proto#L81-L90). `delegator_address` is automatically filled with the current contract's address.",
- "type": "object",
- "required": [
- "delegate"
- ],
- "properties": {
- "delegate": {
- "type": "object",
- "required": [
- "amount",
- "validator"
- ],
- "properties": {
- "amount": {
- "$ref": "#/definitions/Coin"
- },
- "validator": {
- "type": "string"
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "description": "This is translated to a [MsgUndelegate](https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/staking/v1beta1/tx.proto#L112-L121). `delegator_address` is automatically filled with the current contract's address.",
- "type": "object",
- "required": [
- "undelegate"
- ],
- "properties": {
- "undelegate": {
- "type": "object",
- "required": [
- "amount",
- "validator"
- ],
- "properties": {
- "amount": {
- "$ref": "#/definitions/Coin"
- },
- "validator": {
- "type": "string"
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "description": "This is translated to a [MsgBeginRedelegate](https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/staking/v1beta1/tx.proto#L95-L105). `delegator_address` is automatically filled with the current contract's address.",
- "type": "object",
- "required": [
- "redelegate"
- ],
- "properties": {
- "redelegate": {
- "type": "object",
- "required": [
- "amount",
- "dst_validator",
- "src_validator"
- ],
- "properties": {
- "amount": {
- "$ref": "#/definitions/Coin"
- },
- "dst_validator": {
- "type": "string"
- },
- "src_validator": {
- "type": "string"
- }
- }
- }
- },
- "additionalProperties": false
- }
- ]
- },
- "SudoContractProposal": {
- "description": "SudoContractProposal defines the struct for sudo execution proposal.",
- "type": "object",
- "required": [
- "contract",
- "description",
- "msg",
- "title"
- ],
- "properties": {
- "contract": {
- "description": "*contract** is an address of contract to be executed.",
- "type": "string"
- },
- "description": {
- "description": "*description** is a text description of proposal.",
- "type": "string"
- },
- "msg": {
- "description": "**msg*** is a sudo message.",
- "allOf": [
- {
- "$ref": "#/definitions/Binary"
- }
- ]
- },
- "title": {
- "description": "*title** is a text title of proposal.",
- "type": "string"
- }
- }
- },
- "Timestamp": {
- "description": "A point in time in nanosecond precision.\n\nThis type can represent times from 1970-01-01T00:00:00Z to 2554-07-21T23:34:33Z.\n\n## Examples\n\n``` # use cosmwasm_std::Timestamp; let ts = Timestamp::from_nanos(1_000_000_202); assert_eq!(ts.nanos(), 1_000_000_202); assert_eq!(ts.seconds(), 1); assert_eq!(ts.subsec_nanos(), 202);\n\nlet ts = ts.plus_seconds(2); assert_eq!(ts.nanos(), 3_000_000_202); assert_eq!(ts.seconds(), 3); assert_eq!(ts.subsec_nanos(), 202); ```",
- "allOf": [
- {
- "$ref": "#/definitions/Uint64"
- }
- ]
- },
- "Uint128": {
- "description": "A thin wrapper around u128 that is using strings for JSON encoding/decoding, such that the full u128 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances of this and `u128` to get the value out:\n\n``` # use cosmwasm_std::Uint128; let a = Uint128::from(123u128); assert_eq!(a.u128(), 123);\n\nlet b = Uint128::from(42u64); assert_eq!(b.u128(), 42);\n\nlet c = Uint128::from(70u32); assert_eq!(c.u128(), 70); ```",
- "type": "string"
- },
- "Uint64": {
- "description": "A thin wrapper around u64 that is using strings for JSON encoding/decoding, such that the full u64 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances of this and `u64` to get the value out:\n\n``` # use cosmwasm_std::Uint64; let a = Uint64::from(42u64); assert_eq!(a.u64(), 42);\n\nlet b = Uint64::from(70u32); assert_eq!(b.u64(), 70); ```",
- "type": "string"
- },
- "UnpinCodesProposal": {
- "description": "UnpinCodesProposal defines the struct for unpin contract codes proposal.",
- "type": "object",
- "required": [
- "code_ids",
- "description",
- "title"
- ],
- "properties": {
- "code_ids": {
- "description": "*code_ids** is an array of codes to be unpined.",
- "type": "array",
- "items": {
- "type": "integer",
- "format": "uint64",
- "minimum": 0.0
- }
- },
- "description": {
- "description": "*description** is a text description of proposal.",
- "type": "string"
- },
- "title": {
- "description": "*title** is a text title of proposal.",
- "type": "string"
- }
- }
- },
- "UpdateAdminProposal": {
- "description": "UpdateAdminProposal defines the struct for update admin proposal.",
- "type": "object",
- "required": [
- "contract",
- "description",
- "new_admin",
- "title"
- ],
- "properties": {
- "contract": {
- "description": "*contract** is an address of contract to update admin.",
- "type": "string"
- },
- "description": {
- "description": "*description** is a text description of proposal.",
- "type": "string"
- },
- "new_admin": {
- "description": "**new_admin*** is an address of new admin",
- "type": "string"
- },
- "title": {
- "description": "*title** is a text title of proposal.",
- "type": "string"
- }
- }
- },
- "UpgradeProposal": {
- "description": "UpgradeProposal defines the struct for upgrade proposal.",
- "type": "object",
- "required": [
- "description",
- "plan",
- "title",
- "upgraded_client_state"
- ],
- "properties": {
- "description": {
- "description": "*description** is a text description of proposal.",
- "type": "string"
- },
- "plan": {
- "description": "*plan** is a plan of upgrade.",
- "allOf": [
- {
- "$ref": "#/definitions/Plan"
- }
- ]
- },
- "title": {
- "description": "*title** is a text title of proposal.",
- "type": "string"
- },
- "upgraded_client_state": {
- "description": "*upgraded_client_state** is an upgraded client state.",
- "allOf": [
- {
- "$ref": "#/definitions/ProtobufAny"
- }
- ]
- }
- }
- },
- "VoteOption": {
- "type": "string",
- "enum": [
- "yes",
- "no",
- "abstain",
- "no_with_veto"
- ]
- },
- "WasmMsg": {
- "description": "The message types of the wasm module.\n\nSee https://github.com/CosmWasm/wasmd/blob/v0.14.0/x/wasm/internal/types/tx.proto",
- "oneOf": [
- {
- "description": "Dispatches a call to another contract at a known address (with known ABI).\n\nThis is translated to a [MsgExecuteContract](https://github.com/CosmWasm/wasmd/blob/v0.14.0/x/wasm/internal/types/tx.proto#L68-L78). `sender` is automatically filled with the current contract's address.",
- "type": "object",
- "required": [
- "execute"
- ],
- "properties": {
- "execute": {
- "type": "object",
- "required": [
- "contract_addr",
- "funds",
- "msg"
- ],
- "properties": {
- "contract_addr": {
- "type": "string"
- },
- "funds": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/Coin"
- }
- },
- "msg": {
- "description": "msg is the json-encoded ExecuteMsg struct (as raw Binary)",
- "allOf": [
- {
- "$ref": "#/definitions/Binary"
- }
- ]
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "description": "Instantiates a new contracts from previously uploaded Wasm code.\n\nThe contract address is non-predictable. But it is guaranteed that when emitting the same Instantiate message multiple times, multiple instances on different addresses will be generated. See also Instantiate2.\n\nThis is translated to a [MsgInstantiateContract](https://github.com/CosmWasm/wasmd/blob/v0.29.2/proto/cosmwasm/wasm/v1/tx.proto#L53-L71). `sender` is automatically filled with the current contract's address.",
- "type": "object",
- "required": [
- "instantiate"
- ],
- "properties": {
- "instantiate": {
- "type": "object",
- "required": [
- "code_id",
- "funds",
- "label",
- "msg"
- ],
- "properties": {
- "admin": {
- "type": [
- "string",
- "null"
- ]
- },
- "code_id": {
- "type": "integer",
- "format": "uint64",
- "minimum": 0.0
- },
- "funds": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/Coin"
- }
- },
- "label": {
- "description": "A human-readbale label for the contract",
- "type": "string"
- },
- "msg": {
- "description": "msg is the JSON-encoded InstantiateMsg struct (as raw Binary)",
- "allOf": [
- {
- "$ref": "#/definitions/Binary"
- }
- ]
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "description": "Migrates a given contracts to use new wasm code. Passes a MigrateMsg to allow us to customize behavior.\n\nOnly the contract admin (as defined in wasmd), if any, is able to make this call.\n\nThis is translated to a [MsgMigrateContract](https://github.com/CosmWasm/wasmd/blob/v0.14.0/x/wasm/internal/types/tx.proto#L86-L96). `sender` is automatically filled with the current contract's address.",
- "type": "object",
- "required": [
- "migrate"
- ],
- "properties": {
- "migrate": {
- "type": "object",
- "required": [
- "contract_addr",
- "msg",
- "new_code_id"
- ],
- "properties": {
- "contract_addr": {
- "type": "string"
- },
- "msg": {
- "description": "msg is the json-encoded MigrateMsg struct that will be passed to the new code",
- "allOf": [
- {
- "$ref": "#/definitions/Binary"
- }
- ]
- },
- "new_code_id": {
- "description": "the code_id of the new logic to place in the given contract",
- "type": "integer",
- "format": "uint64",
- "minimum": 0.0
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "description": "Sets a new admin (for migrate) on the given contract. Fails if this contract is not currently admin of the target contract.",
- "type": "object",
- "required": [
- "update_admin"
- ],
- "properties": {
- "update_admin": {
- "type": "object",
- "required": [
- "admin",
- "contract_addr"
- ],
- "properties": {
- "admin": {
- "type": "string"
- },
- "contract_addr": {
- "type": "string"
- }
- }
- }
- },
- "additionalProperties": false
- },
- {
- "description": "Clears the admin on the given contract, so no more migration possible. Fails if this contract is not currently admin of the target contract.",
- "type": "object",
- "required": [
- "clear_admin"
- ],
- "properties": {
- "clear_admin": {
- "type": "object",
- "required": [
- "contract_addr"
- ],
- "properties": {
- "contract_addr": {
- "type": "string"
- }
- }
- }
- },
- "additionalProperties": false
- }
- ]
- }
- }
-}
diff --git a/contracts/misc/rescueeer/schema/instantiate_msg.json b/contracts/misc/rescueeer/schema/instantiate_msg.json
deleted file mode 100644
index 25c54571..00000000
--- a/contracts/misc/rescueeer/schema/instantiate_msg.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "InstantiateMsg",
- "type": "object",
- "required": [
- "eol",
- "owner",
- "true_admin"
- ],
- "properties": {
- "eol": {
- "type": "integer",
- "format": "uint64",
- "minimum": 0.0
- },
- "owner": {
- "type": "string"
- },
- "true_admin": {
- "type": "string"
- }
- }
-}
diff --git a/contracts/misc/rescueeer/schema/migrate_msg.json b/contracts/misc/rescueeer/schema/migrate_msg.json
deleted file mode 100644
index 87b18ea7..00000000
--- a/contracts/misc/rescueeer/schema/migrate_msg.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "MigrateMsg",
- "type": "object"
-}
diff --git a/contracts/misc/rescueeer/src/contract.rs b/contracts/misc/rescueeer/src/contract.rs
deleted file mode 100644
index 8ee3723e..00000000
--- a/contracts/misc/rescueeer/src/contract.rs
+++ /dev/null
@@ -1,77 +0,0 @@
-#[cfg(not(feature = "library"))]
-use cosmwasm_std::entry_point;
-use cosmwasm_std::{CosmosMsg, DepsMut, Env, MessageInfo, Response, WasmMsg};
-use neutron_bindings::bindings::msg::NeutronMsg;
-
-use crate::error::ContractError;
-use crate::msg::{ExecuteMsg, InstantiateMsg, MigrateMsg};
-use crate::state::{Config, CONFIG};
-
-#[cfg_attr(not(feature = "library"), entry_point)]
-pub fn instantiate(
- deps: DepsMut,
- _env: Env,
- _info: MessageInfo,
- msg: InstantiateMsg,
-) -> Result {
- let config = Config {
- owner: deps.api.addr_validate(msg.owner.as_str())?,
- true_admin: deps.api.addr_validate(msg.true_admin.as_str())?,
- eol: msg.eol,
- };
-
- CONFIG.save(deps.storage, &config)?;
-
- Ok(Response::default())
-}
-
-#[cfg_attr(not(feature = "library"), entry_point)]
-pub fn execute(
- deps: DepsMut,
- env: Env,
- info: MessageInfo,
- msg: ExecuteMsg,
-) -> Result, ContractError> {
- match msg {
- ExecuteMsg::Execute { msgs } => execute_execute(deps, info, msgs),
- ExecuteMsg::TransferAdmin { address } => execute_transfer_admin(deps, env, info, address),
- }
-}
-
-pub fn execute_execute(
- deps: DepsMut,
- info: MessageInfo,
- msgs: Vec>,
-) -> Result, ContractError> {
- let config: Config = CONFIG.load(deps.storage)?;
- if info.sender != config.owner {
- return Err(ContractError::Unauthorized {});
- }
-
- Ok(Response::default().add_messages(msgs))
-}
-
-pub fn execute_transfer_admin(
- deps: DepsMut,
- env: Env,
- _info: MessageInfo,
- address: String,
-) -> Result, ContractError> {
- let config: Config = CONFIG.load(deps.storage)?;
- if env.block.time.seconds() < config.eol {
- return Err(ContractError::TooSoon {});
- }
- let addr = deps.api.addr_validate(address.as_str())?;
-
- Ok(
- Response::default().add_message(CosmosMsg::Wasm(WasmMsg::UpdateAdmin {
- contract_addr: addr.to_string(),
- admin: config.true_admin.to_string(),
- })),
- )
-}
-
-#[cfg_attr(not(feature = "library"), entry_point)]
-pub fn migrate(_deps: DepsMut, _env: Env, _msg: MigrateMsg) -> Result {
- Ok(Response::default())
-}
diff --git a/contracts/misc/rescueeer/src/error.rs b/contracts/misc/rescueeer/src/error.rs
deleted file mode 100644
index cd5e8bad..00000000
--- a/contracts/misc/rescueeer/src/error.rs
+++ /dev/null
@@ -1,14 +0,0 @@
-use cosmwasm_std::StdError;
-use thiserror::Error;
-
-#[derive(Error, Debug)]
-pub enum ContractError {
- #[error("{0}")]
- Std(#[from] StdError),
-
- #[error("Unauthorized")]
- Unauthorized {},
-
- #[error("End of life hasn't reached yet")]
- TooSoon {},
-}
diff --git a/contracts/misc/rescueeer/src/lib.rs b/contracts/misc/rescueeer/src/lib.rs
deleted file mode 100644
index dfedc9dc..00000000
--- a/contracts/misc/rescueeer/src/lib.rs
+++ /dev/null
@@ -1,6 +0,0 @@
-pub mod contract;
-mod error;
-pub mod msg;
-pub mod state;
-
-pub use crate::error::ContractError;
diff --git a/contracts/misc/rescueeer/src/msg.rs b/contracts/misc/rescueeer/src/msg.rs
deleted file mode 100644
index 135d7c56..00000000
--- a/contracts/misc/rescueeer/src/msg.rs
+++ /dev/null
@@ -1,21 +0,0 @@
-use cosmwasm_std::CosmosMsg;
-use neutron_bindings::bindings::msg::NeutronMsg;
-use schemars::JsonSchema;
-use serde::{Deserialize, Serialize};
-
-#[derive(Serialize, Deserialize, JsonSchema, Debug, Clone)]
-pub struct InstantiateMsg {
- pub owner: String,
- pub true_admin: String,
- pub eol: u64,
-}
-
-#[derive(Serialize, Deserialize, JsonSchema, Debug, Clone)]
-#[serde(rename_all = "snake_case")]
-pub enum ExecuteMsg {
- Execute { msgs: Vec> },
- TransferAdmin { address: String },
-}
-
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
-pub struct MigrateMsg {}
diff --git a/contracts/misc/rescueeer/src/state.rs b/contracts/misc/rescueeer/src/state.rs
deleted file mode 100644
index 724125ad..00000000
--- a/contracts/misc/rescueeer/src/state.rs
+++ /dev/null
@@ -1,13 +0,0 @@
-use cosmwasm_std::Addr;
-use cw_storage_plus::Item;
-use schemars::JsonSchema;
-use serde::{Deserialize, Serialize};
-
-#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, JsonSchema, Debug)]
-pub struct Config {
- pub owner: Addr,
- pub true_admin: Addr,
- pub eol: u64,
-}
-
-pub const CONFIG: Item = Item::new("config");