@hyperlane-xyz/sdk 3.0.0-beta0 → 3.1.0-beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/MultiProtocolApp.d.ts +9 -1
- package/dist/app/MultiProtocolApp.d.ts.map +1 -1
- package/dist/app/MultiProtocolApp.js +21 -1
- package/dist/app/MultiProtocolApp.js.map +1 -1
- package/dist/app/MultiProtocolApp.test.js +2 -0
- package/dist/app/MultiProtocolApp.test.js.map +1 -1
- package/dist/consts/chainMetadata.d.ts +2 -0
- package/dist/consts/chainMetadata.d.ts.map +1 -1
- package/dist/consts/chainMetadata.js +63 -1
- package/dist/consts/chainMetadata.js.map +1 -1
- package/dist/consts/chains.d.ts +2 -0
- package/dist/consts/chains.d.ts.map +1 -1
- package/dist/consts/chains.js +4 -0
- package/dist/consts/chains.js.map +1 -1
- package/dist/consts/environments/index.d.ts +5 -1080
- package/dist/consts/environments/index.d.ts.map +1 -1
- package/dist/consts/environments/mainnet.json +0 -671
- package/dist/consts/environments/testnet.json +16 -359
- package/dist/core/HyperlaneCore.d.ts.map +1 -1
- package/dist/core/HyperlaneCore.js +0 -1
- package/dist/core/HyperlaneCore.js.map +1 -1
- package/dist/core/MultiProtocolCore.d.ts.map +1 -1
- package/dist/core/MultiProtocolCore.js +3 -0
- package/dist/core/MultiProtocolCore.js.map +1 -1
- package/dist/core/MultiProtocolCore.test.js +2 -1
- package/dist/core/MultiProtocolCore.test.js.map +1 -1
- package/dist/core/adapters/CosmWasmCoreAdapter.d.ts +39 -0
- package/dist/core/adapters/CosmWasmCoreAdapter.d.ts.map +1 -0
- package/dist/core/adapters/CosmWasmCoreAdapter.js +125 -0
- package/dist/core/adapters/CosmWasmCoreAdapter.js.map +1 -0
- package/dist/core/adapters/CosmWasmIgpAdapter.d.ts +27 -0
- package/dist/core/adapters/CosmWasmIgpAdapter.d.ts.map +1 -0
- package/dist/core/adapters/CosmWasmIgpAdapter.js +93 -0
- package/dist/core/adapters/CosmWasmIgpAdapter.js.map +1 -0
- package/dist/core/adapters/CosmWasmIgpAdapter.test.d.ts +10 -0
- package/dist/core/adapters/CosmWasmIgpAdapter.test.d.ts.map +1 -0
- package/dist/core/adapters/CosmWasmIgpAdapter.test.js +71 -0
- package/dist/core/adapters/CosmWasmIgpAdapter.test.js.map +1 -0
- package/dist/cw-types/Cw20Base.types.d.ts +198 -0
- package/dist/cw-types/Cw20Base.types.d.ts.map +1 -0
- package/dist/cw-types/Cw20Base.types.js +8 -0
- package/dist/cw-types/Cw20Base.types.js.map +1 -0
- package/dist/cw-types/HookAggregate.types.d.ts +79 -0
- package/dist/cw-types/HookAggregate.types.d.ts.map +1 -0
- package/dist/cw-types/HookAggregate.types.js +8 -0
- package/dist/cw-types/HookAggregate.types.js.map +1 -0
- package/dist/cw-types/HookMerkle.types.d.ts +163 -0
- package/dist/cw-types/HookMerkle.types.d.ts.map +1 -0
- package/dist/cw-types/HookMerkle.types.js +8 -0
- package/dist/cw-types/HookMerkle.types.js.map +1 -0
- package/dist/cw-types/HookPausable.types.d.ts +82 -0
- package/dist/cw-types/HookPausable.types.d.ts.map +1 -0
- package/dist/cw-types/HookPausable.types.js +8 -0
- package/dist/cw-types/HookPausable.types.js.map +1 -0
- package/dist/cw-types/HookRouting.types.d.ts +109 -0
- package/dist/cw-types/HookRouting.types.d.ts.map +1 -0
- package/dist/cw-types/HookRouting.types.js +8 -0
- package/dist/cw-types/HookRouting.types.js.map +1 -0
- package/dist/cw-types/HookRoutingCustom.types.d.ts +149 -0
- package/dist/cw-types/HookRoutingCustom.types.d.ts.map +1 -0
- package/dist/cw-types/HookRoutingCustom.types.js +8 -0
- package/dist/cw-types/HookRoutingCustom.types.js.map +1 -0
- package/dist/cw-types/HookRoutingFallback.types.d.ts +113 -0
- package/dist/cw-types/HookRoutingFallback.types.d.ts.map +1 -0
- package/dist/cw-types/HookRoutingFallback.types.js +8 -0
- package/dist/cw-types/HookRoutingFallback.types.js.map +1 -0
- package/dist/cw-types/Igp.types.d.ts +184 -0
- package/dist/cw-types/Igp.types.d.ts.map +1 -0
- package/dist/cw-types/Igp.types.js +8 -0
- package/dist/cw-types/Igp.types.js.map +1 -0
- package/dist/cw-types/IgpOracle.types.d.ts +61 -0
- package/dist/cw-types/IgpOracle.types.d.ts.map +1 -0
- package/dist/cw-types/IgpOracle.types.js +8 -0
- package/dist/cw-types/IgpOracle.types.js.map +1 -0
- package/dist/cw-types/IsmAggregate.types.d.ts +76 -0
- package/dist/cw-types/IsmAggregate.types.d.ts.map +1 -0
- package/dist/cw-types/IsmAggregate.types.js +8 -0
- package/dist/cw-types/IsmAggregate.types.js.map +1 -0
- package/dist/cw-types/IsmMultisig.types.d.ts +102 -0
- package/dist/cw-types/IsmMultisig.types.d.ts.map +1 -0
- package/dist/cw-types/IsmMultisig.types.js +8 -0
- package/dist/cw-types/IsmMultisig.types.js.map +1 -0
- package/dist/cw-types/IsmRouting.types.d.ts +81 -0
- package/dist/cw-types/IsmRouting.types.d.ts.map +1 -0
- package/dist/cw-types/IsmRouting.types.js +8 -0
- package/dist/cw-types/IsmRouting.types.js.map +1 -0
- package/dist/cw-types/Mailbox.types.d.ts +131 -0
- package/dist/cw-types/Mailbox.types.d.ts.map +1 -0
- package/dist/cw-types/Mailbox.types.js +8 -0
- package/dist/cw-types/Mailbox.types.js.map +1 -0
- package/dist/cw-types/ValidatorAnnounce.types.d.ts +31 -0
- package/dist/cw-types/ValidatorAnnounce.types.d.ts.map +1 -0
- package/dist/cw-types/ValidatorAnnounce.types.js +8 -0
- package/dist/cw-types/ValidatorAnnounce.types.js.map +1 -0
- package/dist/cw-types/WarpCw20.types.d.ts +217 -0
- package/dist/cw-types/WarpCw20.types.d.ts.map +1 -0
- package/dist/cw-types/WarpCw20.types.js +8 -0
- package/dist/cw-types/WarpCw20.types.js.map +1 -0
- package/dist/cw-types/WarpNative.types.d.ts +197 -0
- package/dist/cw-types/WarpNative.types.d.ts.map +1 -0
- package/dist/cw-types/WarpNative.types.js +8 -0
- package/dist/cw-types/WarpNative.types.js.map +1 -0
- package/dist/hook/HyperlaneHookDeployer.d.ts +2 -2
- package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.js +19 -4
- package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
- package/dist/hook/types.d.ts +7 -8
- package/dist/hook/types.d.ts.map +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -3
- package/dist/index.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.d.ts +2 -1
- package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.js +59 -37
- package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
- package/dist/ism/adapters/CosmWasmMultisigAdapter.d.ts +24 -0
- package/dist/ism/adapters/CosmWasmMultisigAdapter.d.ts.map +1 -0
- package/dist/ism/adapters/CosmWasmMultisigAdapter.js +75 -0
- package/dist/ism/adapters/CosmWasmMultisigAdapter.js.map +1 -0
- package/dist/ism/types.d.ts +12 -3
- package/dist/ism/types.d.ts.map +1 -1
- package/dist/ism/types.js.map +1 -1
- package/dist/metadata/ChainMetadataManager.d.ts +3 -3
- package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
- package/dist/metadata/ChainMetadataManager.js +14 -13
- package/dist/metadata/ChainMetadataManager.js.map +1 -1
- package/dist/metadata/agentConfig.d.ts +195 -133
- package/dist/metadata/agentConfig.d.ts.map +1 -1
- package/dist/metadata/agentConfig.js +1 -1
- package/dist/metadata/agentConfig.js.map +1 -1
- package/dist/metadata/chainMetadata.test.js +16 -0
- package/dist/metadata/chainMetadata.test.js.map +1 -1
- package/dist/metadata/chainMetadataTypes.d.ts +570 -4
- package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
- package/dist/metadata/chainMetadataTypes.js +50 -4
- package/dist/metadata/chainMetadataTypes.js.map +1 -1
- package/dist/providers/MultiProtocolProvider.d.ts +4 -1
- package/dist/providers/MultiProtocolProvider.d.ts.map +1 -1
- package/dist/providers/MultiProtocolProvider.js +16 -20
- package/dist/providers/MultiProtocolProvider.js.map +1 -1
- package/dist/providers/ProviderType.d.ts +45 -8
- package/dist/providers/ProviderType.d.ts.map +1 -1
- package/dist/providers/ProviderType.js +2 -0
- package/dist/providers/ProviderType.js.map +1 -1
- package/dist/providers/providerBuilders.d.ts +3 -1
- package/dist/providers/providerBuilders.d.ts.map +1 -1
- package/dist/providers/providerBuilders.js +24 -1
- package/dist/providers/providerBuilders.js.map +1 -1
- package/dist/router/MultiProtocolRouterApps.d.ts.map +1 -1
- package/dist/router/MultiProtocolRouterApps.js +1 -0
- package/dist/router/MultiProtocolRouterApps.js.map +1 -1
- package/dist/token/adapters/CosmWasmTokenAdapter.d.ts +107 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.d.ts.map +1 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.js +285 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.js.map +1 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.test.d.ts +14 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.test.d.ts.map +1 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.test.js +283 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.test.js.map +1 -0
- package/dist/token/adapters/CosmosTokenAdapter.d.ts +67 -0
- package/dist/token/adapters/CosmosTokenAdapter.d.ts.map +1 -0
- package/dist/token/adapters/CosmosTokenAdapter.js +113 -0
- package/dist/token/adapters/CosmosTokenAdapter.js.map +1 -0
- package/dist/token/adapters/SealevelTokenAdapter.d.ts +1 -1
- package/dist/token/adapters/SealevelTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/SealevelTokenAdapter.js +1 -2
- package/dist/token/adapters/SealevelTokenAdapter.js.map +1 -1
- package/dist/token/deploy.hardhat-test.d.ts +2 -0
- package/dist/token/deploy.hardhat-test.d.ts.map +1 -0
- package/dist/token/deploy.hardhat-test.js +41 -0
- package/dist/token/deploy.hardhat-test.js.map +1 -0
- package/dist/utils/wagmi.d.ts +1 -1
- package/dist/utils/wagmi.d.ts.map +1 -1
- package/dist/utils/wagmi.js +3 -2
- package/dist/utils/wagmi.js.map +1 -1
- package/package.json +7 -3
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CwHypCollateralAdapter = exports.CwHypNativeAdapter = exports.CwHypSyntheticAdapter = exports.CwTokenAdapter = exports.CwNativeTokenAdapter = void 0;
|
|
7
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
|
+
const utils_1 = require("@hyperlane-xyz/utils");
|
|
9
|
+
const MultiProtocolApp_1 = require("../../app/MultiProtocolApp");
|
|
10
|
+
// Interacts with IBC denom tokens in CosmWasm
|
|
11
|
+
class CwNativeTokenAdapter extends MultiProtocolApp_1.BaseCosmWasmAdapter {
|
|
12
|
+
constructor(chainName, multiProvider, addresses, ibcDenom = 'untrn') {
|
|
13
|
+
super(chainName, multiProvider, addresses);
|
|
14
|
+
this.chainName = chainName;
|
|
15
|
+
this.multiProvider = multiProvider;
|
|
16
|
+
this.addresses = addresses;
|
|
17
|
+
this.ibcDenom = ibcDenom;
|
|
18
|
+
}
|
|
19
|
+
async getBalance(address) {
|
|
20
|
+
const provider = await this.getProvider();
|
|
21
|
+
const balance = await provider.getBalance(address, this.ibcDenom);
|
|
22
|
+
return balance.amount;
|
|
23
|
+
}
|
|
24
|
+
async getMetadata() {
|
|
25
|
+
throw new Error('Metadata not available to native tokens');
|
|
26
|
+
}
|
|
27
|
+
async populateApproveTx(_params) {
|
|
28
|
+
throw new Error('Approve not required for native tokens');
|
|
29
|
+
}
|
|
30
|
+
async populateTransferTx({ recipient, weiAmountOrId, }) {
|
|
31
|
+
// TODO: check if this works with execute instruction? (contract type, empty message)
|
|
32
|
+
return {
|
|
33
|
+
contractAddress: recipient,
|
|
34
|
+
msg: {},
|
|
35
|
+
funds: [
|
|
36
|
+
{
|
|
37
|
+
amount: weiAmountOrId.toString(),
|
|
38
|
+
denom: this.ibcDenom,
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.CwNativeTokenAdapter = CwNativeTokenAdapter;
|
|
45
|
+
// Interacts with CW20/721 contracts
|
|
46
|
+
class CwTokenAdapter extends MultiProtocolApp_1.BaseCosmWasmAdapter {
|
|
47
|
+
constructor(chainName, multiProvider, addresses, denom = 'untrn') {
|
|
48
|
+
super(chainName, multiProvider, addresses);
|
|
49
|
+
this.chainName = chainName;
|
|
50
|
+
this.multiProvider = multiProvider;
|
|
51
|
+
this.addresses = addresses;
|
|
52
|
+
this.denom = denom;
|
|
53
|
+
}
|
|
54
|
+
async queryToken(msg) {
|
|
55
|
+
const provider = await this.getProvider();
|
|
56
|
+
const response = await provider.queryContractSmart(this.addresses.token, msg);
|
|
57
|
+
return response;
|
|
58
|
+
}
|
|
59
|
+
prepareToken(msg, funds) {
|
|
60
|
+
return {
|
|
61
|
+
contractAddress: this.addresses.token,
|
|
62
|
+
msg,
|
|
63
|
+
funds,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
async getBalance(address) {
|
|
67
|
+
const resp = await this.queryToken({
|
|
68
|
+
balance: {
|
|
69
|
+
address,
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
return resp.balance;
|
|
73
|
+
}
|
|
74
|
+
async getMetadata() {
|
|
75
|
+
const resp = await this.queryToken({
|
|
76
|
+
token_info: {},
|
|
77
|
+
});
|
|
78
|
+
return {
|
|
79
|
+
...resp,
|
|
80
|
+
totalSupply: resp.total_supply,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
async populateApproveTx({ weiAmountOrId, recipient, }) {
|
|
84
|
+
// TODO: check existing allowance
|
|
85
|
+
return this.prepareToken({
|
|
86
|
+
increase_allowance: {
|
|
87
|
+
spender: recipient,
|
|
88
|
+
amount: weiAmountOrId.toString(),
|
|
89
|
+
expires: {
|
|
90
|
+
never: {},
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
async populateTransferTx({ weiAmountOrId, recipient, }) {
|
|
96
|
+
return this.prepareToken({
|
|
97
|
+
transfer: {
|
|
98
|
+
recipient,
|
|
99
|
+
amount: weiAmountOrId.toString(),
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.CwTokenAdapter = CwTokenAdapter;
|
|
105
|
+
class CwHypSyntheticAdapter extends CwTokenAdapter {
|
|
106
|
+
constructor(chainName, multiProvider, addresses, gasDenom = 'untrn') {
|
|
107
|
+
super(chainName, multiProvider, addresses);
|
|
108
|
+
this.chainName = chainName;
|
|
109
|
+
this.multiProvider = multiProvider;
|
|
110
|
+
this.addresses = addresses;
|
|
111
|
+
this.gasDenom = gasDenom;
|
|
112
|
+
}
|
|
113
|
+
async queryRouter(msg) {
|
|
114
|
+
const provider = await this.getProvider();
|
|
115
|
+
const response = await provider.queryContractSmart(this.addresses.warpRouter, msg);
|
|
116
|
+
return response;
|
|
117
|
+
}
|
|
118
|
+
prepareRouter(msg, funds) {
|
|
119
|
+
return {
|
|
120
|
+
contractAddress: this.addresses.warpRouter,
|
|
121
|
+
msg,
|
|
122
|
+
funds,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
async tokenType() {
|
|
126
|
+
const resp = await this.queryRouter({
|
|
127
|
+
token_default: {
|
|
128
|
+
token_type: {},
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
return resp.type;
|
|
132
|
+
}
|
|
133
|
+
async interchainSecurityModule() {
|
|
134
|
+
throw new Error('Router does not support ISM config yet.');
|
|
135
|
+
}
|
|
136
|
+
async owner() {
|
|
137
|
+
const resp = await this.queryRouter({
|
|
138
|
+
ownable: {
|
|
139
|
+
get_owner: {},
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
return resp.owner;
|
|
143
|
+
}
|
|
144
|
+
async getDomains() {
|
|
145
|
+
const resp = await this.queryRouter({
|
|
146
|
+
router: {
|
|
147
|
+
domains: {},
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
return resp.domains;
|
|
151
|
+
}
|
|
152
|
+
async getRouterAddress(domain) {
|
|
153
|
+
const resp = await this.queryRouter({
|
|
154
|
+
router: {
|
|
155
|
+
get_route: {
|
|
156
|
+
domain,
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
});
|
|
160
|
+
const route = resp.route.route;
|
|
161
|
+
if (!route) {
|
|
162
|
+
throw new Error(`No route found for domain ${domain}`);
|
|
163
|
+
}
|
|
164
|
+
return Buffer.from(route, 'hex');
|
|
165
|
+
}
|
|
166
|
+
async getAllRouters() {
|
|
167
|
+
const resp = await this.queryRouter({
|
|
168
|
+
router: {
|
|
169
|
+
list_routes: {},
|
|
170
|
+
},
|
|
171
|
+
});
|
|
172
|
+
return resp.routes
|
|
173
|
+
.filter((r) => r.route != null)
|
|
174
|
+
.map((r) => ({
|
|
175
|
+
domain: r.domain,
|
|
176
|
+
address: Buffer.from(r.route, 'hex'),
|
|
177
|
+
}));
|
|
178
|
+
}
|
|
179
|
+
quoteGasPayment(_destination) {
|
|
180
|
+
throw new Error('Method not implemented.');
|
|
181
|
+
}
|
|
182
|
+
populateTransferRemoteTx({ destination, recipient, weiAmountOrId, txValue, }) {
|
|
183
|
+
if (!txValue) {
|
|
184
|
+
throw new Error('txValue is required for native tokens');
|
|
185
|
+
}
|
|
186
|
+
return this.prepareRouter({
|
|
187
|
+
transfer_remote: {
|
|
188
|
+
dest_domain: destination,
|
|
189
|
+
recipient: (0, utils_1.strip0x)((0, utils_1.addressToBytes32)(recipient)),
|
|
190
|
+
amount: weiAmountOrId.toString(),
|
|
191
|
+
},
|
|
192
|
+
}, [
|
|
193
|
+
{
|
|
194
|
+
amount: txValue.toString(),
|
|
195
|
+
denom: this.gasDenom,
|
|
196
|
+
},
|
|
197
|
+
]);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
exports.CwHypSyntheticAdapter = CwHypSyntheticAdapter;
|
|
201
|
+
class CwHypNativeAdapter extends CwNativeTokenAdapter {
|
|
202
|
+
constructor(chainName, multiProvider, addresses, gasDenom = 'untrn') {
|
|
203
|
+
super(chainName, multiProvider, addresses, gasDenom);
|
|
204
|
+
this.chainName = chainName;
|
|
205
|
+
this.multiProvider = multiProvider;
|
|
206
|
+
this.addresses = addresses;
|
|
207
|
+
this.gasDenom = gasDenom;
|
|
208
|
+
this.cw20adapter = new CwHypSyntheticAdapter(chainName, multiProvider, { token: '', warpRouter: addresses.warpRouter }, gasDenom);
|
|
209
|
+
}
|
|
210
|
+
async getBalance(address) {
|
|
211
|
+
const provider = await this.getProvider();
|
|
212
|
+
const denom = await this.denom();
|
|
213
|
+
const balance = await provider.getBalance(address, denom);
|
|
214
|
+
return balance.amount;
|
|
215
|
+
}
|
|
216
|
+
async interchainSecurityModule() {
|
|
217
|
+
return this.cw20adapter.interchainSecurityModule();
|
|
218
|
+
}
|
|
219
|
+
async owner() {
|
|
220
|
+
return this.cw20adapter.owner();
|
|
221
|
+
}
|
|
222
|
+
async getDomains() {
|
|
223
|
+
return this.cw20adapter.getDomains();
|
|
224
|
+
}
|
|
225
|
+
async getRouterAddress(domain) {
|
|
226
|
+
return this.cw20adapter.getRouterAddress(domain);
|
|
227
|
+
}
|
|
228
|
+
async getAllRouters() {
|
|
229
|
+
return this.cw20adapter.getAllRouters();
|
|
230
|
+
}
|
|
231
|
+
quoteGasPayment(destination) {
|
|
232
|
+
return this.cw20adapter.quoteGasPayment(destination);
|
|
233
|
+
}
|
|
234
|
+
async denom() {
|
|
235
|
+
const tokenType = await this.cw20adapter.tokenType();
|
|
236
|
+
if ('native' in tokenType) {
|
|
237
|
+
if ('fungible' in tokenType.native) {
|
|
238
|
+
return tokenType.native.fungible.denom;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
throw new Error(`Token type not supported: ${tokenType}`);
|
|
242
|
+
}
|
|
243
|
+
async populateTransferRemoteTx({ destination, recipient, weiAmountOrId, txValue, }) {
|
|
244
|
+
if (!txValue) {
|
|
245
|
+
throw new Error('txValue is required for native tokens');
|
|
246
|
+
}
|
|
247
|
+
const collateralDenom = await this.denom();
|
|
248
|
+
const funds = collateralDenom === this.gasDenom
|
|
249
|
+
? [
|
|
250
|
+
{
|
|
251
|
+
amount: new bignumber_js_1.default(weiAmountOrId).plus(txValue).toFixed(0),
|
|
252
|
+
denom: collateralDenom,
|
|
253
|
+
},
|
|
254
|
+
]
|
|
255
|
+
: [
|
|
256
|
+
{
|
|
257
|
+
amount: weiAmountOrId.toString(),
|
|
258
|
+
denom: collateralDenom,
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
amount: txValue.toString(),
|
|
262
|
+
denom: this.gasDenom,
|
|
263
|
+
},
|
|
264
|
+
];
|
|
265
|
+
return this.cw20adapter.prepareRouter({
|
|
266
|
+
transfer_remote: {
|
|
267
|
+
dest_domain: destination,
|
|
268
|
+
recipient: (0, utils_1.strip0x)((0, utils_1.addressToBytes32)(recipient)),
|
|
269
|
+
amount: weiAmountOrId.toString(),
|
|
270
|
+
},
|
|
271
|
+
}, funds);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
exports.CwHypNativeAdapter = CwHypNativeAdapter;
|
|
275
|
+
class CwHypCollateralAdapter extends CwHypNativeAdapter {
|
|
276
|
+
constructor(chainName, multiProvider, addresses, gasDenom = 'untrn') {
|
|
277
|
+
super(chainName, multiProvider, addresses, gasDenom);
|
|
278
|
+
this.chainName = chainName;
|
|
279
|
+
this.multiProvider = multiProvider;
|
|
280
|
+
this.addresses = addresses;
|
|
281
|
+
this.gasDenom = gasDenom;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
exports.CwHypCollateralAdapter = CwHypCollateralAdapter;
|
|
285
|
+
//# sourceMappingURL=CosmWasmTokenAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CosmWasmTokenAdapter.js","sourceRoot":"","sources":["../../../src/token/adapters/CosmWasmTokenAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SigningCosmWasmClient } from '@cosmjs/cosmwasm-stargate';
|
|
2
|
+
import { SigningStargateClient } from '@cosmjs/stargate';
|
|
3
|
+
export declare function getSigningClient(pkey: string): Promise<{
|
|
4
|
+
wasm: SigningCosmWasmClient;
|
|
5
|
+
stargate: SigningStargateClient;
|
|
6
|
+
signer: string;
|
|
7
|
+
signer_addr: string;
|
|
8
|
+
signer_pubkey: string;
|
|
9
|
+
}>;
|
|
10
|
+
export declare function rotateHooks(): Promise<void>;
|
|
11
|
+
export declare function rotateAuth(): Promise<void>;
|
|
12
|
+
export declare function summary(): Promise<void>;
|
|
13
|
+
export declare function rotateValidators(): Promise<void>;
|
|
14
|
+
//# sourceMappingURL=CosmWasmTokenAdapter.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CosmWasmTokenAdapter.test.d.ts","sourceRoot":"","sources":["../../../src/token/adapters/CosmWasmTokenAdapter.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,qBAAqB,EACtB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAY,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAiCnE,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM;;;;;;GAqClD;AA+CD,wBAAsB,WAAW,kBAqBhC;AAED,wBAAsB,UAAU,kBAmE/B;AAED,wBAAsB,OAAO,kBA6I5B;AAED,wBAAsB,gBAAgB,kBAiCrC"}
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.rotateValidators = exports.summary = exports.rotateAuth = exports.rotateHooks = exports.getSigningClient = void 0;
|
|
5
|
+
/* eslint-disable no-console */
|
|
6
|
+
const cosmwasm_stargate_1 = require("@cosmjs/cosmwasm-stargate");
|
|
7
|
+
const crypto_1 = require("@cosmjs/crypto");
|
|
8
|
+
const proto_signing_1 = require("@cosmjs/proto-signing");
|
|
9
|
+
const stargate_1 = require("@cosmjs/stargate");
|
|
10
|
+
const tendermint_rpc_1 = require("@cosmjs/tendermint-rpc");
|
|
11
|
+
const chainMetadata_1 = require("../../consts/chainMetadata");
|
|
12
|
+
const chains_1 = require("../../consts/chains");
|
|
13
|
+
const CosmWasmCoreAdapter_1 = require("../../core/adapters/CosmWasmCoreAdapter");
|
|
14
|
+
const CosmWasmMultisigAdapter_1 = require("../../ism/adapters/CosmWasmMultisigAdapter");
|
|
15
|
+
const MultiProtocolProvider_1 = require("../../providers/MultiProtocolProvider");
|
|
16
|
+
const neutronAddresses = {
|
|
17
|
+
mailbox: 'neutron1sjzzd4gwkggy6hrrs8kxxatexzcuz3jecsxm3wqgregkulzj8r7qlnuef4',
|
|
18
|
+
validatorAnnounce: 'neutron17w4q6efzym3p4c6umyp4cjf2ustjtmwfqdhd7rt2fpcpk9fmjzsq0kj0f8',
|
|
19
|
+
};
|
|
20
|
+
const neutron = chainMetadata_1.chainMetadata.neutron;
|
|
21
|
+
const mantapacific = chainMetadata_1.chainMetadata.mantapacific;
|
|
22
|
+
const multiProtocolProvider = new MultiProtocolProvider_1.MultiProtocolProvider();
|
|
23
|
+
const adapter = new CosmWasmCoreAdapter_1.CosmWasmCoreAdapter(chains_1.Chains.neutron, multiProtocolProvider, neutronAddresses);
|
|
24
|
+
async function getSigningClient(pkey) {
|
|
25
|
+
const wallet = await proto_signing_1.DirectSecp256k1Wallet.fromKey(Buffer.from(pkey, 'hex'), neutron.bech32Prefix);
|
|
26
|
+
const [account] = await wallet.getAccounts();
|
|
27
|
+
const clientBase = await tendermint_rpc_1.Tendermint37Client.connect(neutron.rpcUrls[0].http);
|
|
28
|
+
const gasPrice = stargate_1.GasPrice.fromString('0.1untrn');
|
|
29
|
+
const wasm = await cosmwasm_stargate_1.SigningCosmWasmClient.createWithSigner(clientBase, wallet, {
|
|
30
|
+
gasPrice,
|
|
31
|
+
});
|
|
32
|
+
const stargate = await stargate_1.SigningStargateClient.createWithSigner(clientBase, wallet, {
|
|
33
|
+
gasPrice,
|
|
34
|
+
});
|
|
35
|
+
const pubkey = crypto_1.Secp256k1.uncompressPubkey(account.pubkey);
|
|
36
|
+
const ethaddr = (0, crypto_1.keccak256)(pubkey.slice(1)).slice(-20);
|
|
37
|
+
return {
|
|
38
|
+
wasm,
|
|
39
|
+
stargate,
|
|
40
|
+
signer: account.address,
|
|
41
|
+
signer_addr: Buffer.from(ethaddr).toString('hex'),
|
|
42
|
+
signer_pubkey: Buffer.from(account.pubkey).toString('hex'),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
exports.getSigningClient = getSigningClient;
|
|
46
|
+
const initTransferOwner = (address, newOwner, key = 'ownable') => {
|
|
47
|
+
return {
|
|
48
|
+
contractAddress: address,
|
|
49
|
+
msg: {
|
|
50
|
+
[key]: {
|
|
51
|
+
init_ownership_transfer: {
|
|
52
|
+
next_owner: newOwner,
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
const claimTransferOwner = (address, key = 'ownable') => {
|
|
59
|
+
return {
|
|
60
|
+
contractAddress: address,
|
|
61
|
+
msg: {
|
|
62
|
+
[key]: {
|
|
63
|
+
claim_ownership: {},
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
const getOwner = async (provider, address) => {
|
|
69
|
+
const ownableQuery = {
|
|
70
|
+
ownable: { get_owner: {} },
|
|
71
|
+
};
|
|
72
|
+
const ownerResponse = await provider.queryContractSmart(address, ownableQuery);
|
|
73
|
+
return ownerResponse.owner;
|
|
74
|
+
};
|
|
75
|
+
async function rotateHooks() {
|
|
76
|
+
const desiredDefault = 'neutron1e5c2qqquc86rd3q77aj2wyht40z6z3q5pclaq040ue9f5f8yuf7qnpvkzk';
|
|
77
|
+
const desiredRequired = 'neutron19qjplhq7jsmk7haneafqxyyhltgllvvag8c4g7jkmxw6mvd4h8sq7rqh02';
|
|
78
|
+
const safe = await getSigningClient('2ac7230628b8b4a587c4005798184735471b9240fc57fc75d97824e1fb6b5409');
|
|
79
|
+
const tx = await safe.wasm.executeMultiple(safe.signer, [
|
|
80
|
+
adapter.setDefaultHook(desiredDefault),
|
|
81
|
+
adapter.setRequiredHook(desiredRequired),
|
|
82
|
+
], 'auto');
|
|
83
|
+
console.log(tx);
|
|
84
|
+
}
|
|
85
|
+
exports.rotateHooks = rotateHooks;
|
|
86
|
+
async function rotateAuth() {
|
|
87
|
+
const safe = await getSigningClient('2ac7230628b8b4a587c4005798184735471b9240fc57fc75d97824e1fb6b5409');
|
|
88
|
+
const desiredOwner = 'neutron1fqf5mprg3f5hytvzp3t7spmsum6rjrw80mq8zgkc0h6rxga0dtzqws3uu7';
|
|
89
|
+
const addresses = [
|
|
90
|
+
'neutron1sjzzd4gwkggy6hrrs8kxxatexzcuz3jecsxm3wqgregkulzj8r7qlnuef4',
|
|
91
|
+
'neutron17w4q6efzym3p4c6umyp4cjf2ustjtmwfqdhd7rt2fpcpk9fmjzsq0kj0f8',
|
|
92
|
+
'neutron1q75ky8reksqzh0lkhk9k3csvjwv74jjquahrj233xc7dvzz5fv4qtvw0qg',
|
|
93
|
+
'neutron1e5c2qqquc86rd3q77aj2wyht40z6z3q5pclaq040ue9f5f8yuf7qnpvkzk',
|
|
94
|
+
'neutron19qjplhq7jsmk7haneafqxyyhltgllvvag8c4g7jkmxw6mvd4h8sq7rqh02',
|
|
95
|
+
'neutron1ch7x3xgpnj62weyes8vfada35zff6z59kt2psqhnx9gjnt2ttqdqtva3pa', // warp route
|
|
96
|
+
];
|
|
97
|
+
const transferInstructions = [];
|
|
98
|
+
const claimInstructions = [];
|
|
99
|
+
for (const address of addresses) {
|
|
100
|
+
const info = await safe.wasm.getContract(address);
|
|
101
|
+
console.log({ address, info });
|
|
102
|
+
try {
|
|
103
|
+
await getOwner(safe.wasm, address);
|
|
104
|
+
const transferInstruction = initTransferOwner(address, desiredOwner);
|
|
105
|
+
transferInstructions.push(transferInstruction);
|
|
106
|
+
const claimInstruction = claimTransferOwner(address);
|
|
107
|
+
claimInstructions.push(claimInstruction);
|
|
108
|
+
}
|
|
109
|
+
catch (e) {
|
|
110
|
+
if (e.message.includes('unknown variant `ownable`')) {
|
|
111
|
+
console.log(`Skipping ${info.label} (${address}) because it is not ownable`);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
throw e;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// }
|
|
118
|
+
console.log(JSON.stringify({ transferInstructions, claimInstructions }));
|
|
119
|
+
// const tx = await safe.wasm.executeMultiple(
|
|
120
|
+
// safe.signer,
|
|
121
|
+
// transferInstructions,
|
|
122
|
+
// 'auto',
|
|
123
|
+
// );
|
|
124
|
+
// console.log(tx);
|
|
125
|
+
// const claimTx = await safe.wasm.execute(
|
|
126
|
+
// safe.signer,
|
|
127
|
+
// address,
|
|
128
|
+
// claimInstruction.msg,
|
|
129
|
+
// 'auto',
|
|
130
|
+
// );
|
|
131
|
+
// console.log(claimTx);
|
|
132
|
+
const res = await safe.wasm.updateAdmin(safe.signer, address, desiredOwner, 'auto');
|
|
133
|
+
console.log(res);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.rotateAuth = rotateAuth;
|
|
137
|
+
async function summary() {
|
|
138
|
+
const summary = {};
|
|
139
|
+
const provider = await adapter.getProvider();
|
|
140
|
+
const getOwner = async (address) => {
|
|
141
|
+
const ownableQuery = {
|
|
142
|
+
ownable: { get_owner: {} },
|
|
143
|
+
};
|
|
144
|
+
const ownerResponse = await provider.queryContractSmart(address, ownableQuery);
|
|
145
|
+
return ownerResponse.owner;
|
|
146
|
+
};
|
|
147
|
+
const owner = await getOwner(neutronAddresses.mailbox);
|
|
148
|
+
const info = await provider.getContract(neutronAddresses.mailbox);
|
|
149
|
+
const defaultHook = await adapter.defaultHook();
|
|
150
|
+
const requiredHook = await adapter.requiredHook();
|
|
151
|
+
const defaultIsm = await adapter.defaultIsm();
|
|
152
|
+
summary.mailbox = {
|
|
153
|
+
owner,
|
|
154
|
+
...info,
|
|
155
|
+
defaultHook,
|
|
156
|
+
requiredHook,
|
|
157
|
+
defaultIsm,
|
|
158
|
+
};
|
|
159
|
+
const router = 'neutron1ch7x3xgpnj62weyes8vfada35zff6z59kt2psqhnx9gjnt2ttqdqtva3pa';
|
|
160
|
+
summary.warproute = {
|
|
161
|
+
owner: await getOwner(router),
|
|
162
|
+
...(await provider.getContract(router)),
|
|
163
|
+
};
|
|
164
|
+
summary.validatorAnnounce = {
|
|
165
|
+
// owner: await getOwner(neutronAddresses.validatorAnnounce),
|
|
166
|
+
...(await provider.getContract(neutronAddresses.validatorAnnounce)),
|
|
167
|
+
};
|
|
168
|
+
const defaultIsmContract = await provider.getContract(defaultIsm);
|
|
169
|
+
if (defaultIsmContract.label === 'hpl_ism_multisig') {
|
|
170
|
+
const multisigAdapter = new CosmWasmMultisigAdapter_1.CosmWasmMultisigAdapter(neutron.name, multiProtocolProvider, { multisig: defaultIsm });
|
|
171
|
+
const multisigConfig = await multisigAdapter.getConfig(mantapacific.name);
|
|
172
|
+
const owner = await getOwner(defaultIsm);
|
|
173
|
+
summary.defaultIsm = {
|
|
174
|
+
...multisigConfig,
|
|
175
|
+
...defaultIsmContract,
|
|
176
|
+
owner,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
const getMailbox = async (hook) => {
|
|
180
|
+
const merkleMailboxQuery = {
|
|
181
|
+
hook: {
|
|
182
|
+
mailbox: {},
|
|
183
|
+
},
|
|
184
|
+
};
|
|
185
|
+
const merkleMailboxResponse = await provider.queryContractSmart(hook, merkleMailboxQuery);
|
|
186
|
+
return merkleMailboxResponse.mailbox;
|
|
187
|
+
};
|
|
188
|
+
const requiredHookContract = await provider.getContract(requiredHook);
|
|
189
|
+
if (requiredHookContract.label === 'hpl_hook_pausable') {
|
|
190
|
+
summary.requiredHook = {
|
|
191
|
+
...requiredHookContract,
|
|
192
|
+
owner: await getOwner(requiredHook),
|
|
193
|
+
mailbox: await getMailbox(requiredHook),
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
// else if (requiredHookContract.label === 'hpl_hook_aggregate') {
|
|
197
|
+
// const aggregateHookQuery: AggregateQuery = {
|
|
198
|
+
// aggregate_hook: {
|
|
199
|
+
// hooks: {},
|
|
200
|
+
// },
|
|
201
|
+
// };
|
|
202
|
+
// const hooksResponse: HooksResponse = await provider.queryContractSmart(
|
|
203
|
+
// requiredHook,
|
|
204
|
+
// aggregateHookQuery,
|
|
205
|
+
// );
|
|
206
|
+
// summary.requiredHook = {
|
|
207
|
+
// ...requiredHookContract,
|
|
208
|
+
// hooks: hooksResponse.hooks,
|
|
209
|
+
// owner: await getOwner(requiredHook),
|
|
210
|
+
// mailbox: await getMailbox(requiredHook),
|
|
211
|
+
// };
|
|
212
|
+
const defaultHookContract = await provider.getContract(defaultHook);
|
|
213
|
+
if (defaultHookContract.label === 'hpl_hook_merkle') {
|
|
214
|
+
summary.defaultHook = defaultHookContract;
|
|
215
|
+
}
|
|
216
|
+
// for (const hook of hooksResponse.hooks) {
|
|
217
|
+
// const hook = defaultHook;
|
|
218
|
+
// const hookContract = await provider.getContract(hook);
|
|
219
|
+
// if (hookContract.label === 'hpl_hook_merkle') {
|
|
220
|
+
// // summary.requiredHook.merkleHook = {
|
|
221
|
+
// summary.merkleHook = {
|
|
222
|
+
// ...hookContract,
|
|
223
|
+
// mailbox: await getMailbox(hook),
|
|
224
|
+
// owner: await getOwner(hook),
|
|
225
|
+
// };
|
|
226
|
+
// }
|
|
227
|
+
// } else if (hookContract.label === 'hpl_igp') {
|
|
228
|
+
// const igpAdapter = new CosmWasmIgpAdapter(
|
|
229
|
+
// neutron.name,
|
|
230
|
+
// multiProtocolProvider,
|
|
231
|
+
// { igp: hook },
|
|
232
|
+
// );
|
|
233
|
+
// const oracles = await igpAdapter.getOracles();
|
|
234
|
+
// const defaultGas = await igpAdapter.defaultGas();
|
|
235
|
+
// const beneficiary = await igpAdapter.beneficiary();
|
|
236
|
+
// const mantaData = await igpAdapter.getOracleData(mantapacific.name);
|
|
237
|
+
// const igpOracle = oracles[mantapacific.name];
|
|
238
|
+
// summary.requiredHook.igpHook = {
|
|
239
|
+
// oracles,
|
|
240
|
+
// mantaOracle: {
|
|
241
|
+
// ...mantaData,
|
|
242
|
+
// owner: await getOwner(igpOracle),
|
|
243
|
+
// ...(await provider.getContract(igpOracle)),
|
|
244
|
+
// },
|
|
245
|
+
// defaultGas,
|
|
246
|
+
// beneficiary,
|
|
247
|
+
// mailbox: await getMailbox(hook),
|
|
248
|
+
// owner: await getOwner(hook),
|
|
249
|
+
// ...hookContract,
|
|
250
|
+
// };
|
|
251
|
+
// }
|
|
252
|
+
// }
|
|
253
|
+
console.log(JSON.stringify(summary));
|
|
254
|
+
}
|
|
255
|
+
exports.summary = summary;
|
|
256
|
+
async function rotateValidators() {
|
|
257
|
+
const multisigAdapter = new CosmWasmMultisigAdapter_1.CosmWasmMultisigAdapter(neutron.name, multiProtocolProvider, {
|
|
258
|
+
multisig: 'neutron1q75ky8reksqzh0lkhk9k3csvjwv74jjquahrj233xc7dvzz5fv4qtvw0qg',
|
|
259
|
+
});
|
|
260
|
+
const instructions = await multisigAdapter.configureMultisig({
|
|
261
|
+
[mantapacific.name]: {
|
|
262
|
+
threshold: 5,
|
|
263
|
+
validators: [
|
|
264
|
+
'8e668c97ad76d0e28375275c41ece4972ab8a5bc',
|
|
265
|
+
'521a3e6bf8d24809fde1c1fd3494a859a16f132c',
|
|
266
|
+
'25b9a0961c51e74fd83295293bc029131bf1e05a',
|
|
267
|
+
'14025fe092f5f8a401dd9819704d9072196d2125',
|
|
268
|
+
'a0ee95e280d46c14921e524b075d0c341e7ad1c8',
|
|
269
|
+
'cc9a0b6de7fe314bd99223687d784730a75bb957',
|
|
270
|
+
'42b6de2edbaa62c2ea2309ad85d20b3e37d38acf', // sg-1
|
|
271
|
+
],
|
|
272
|
+
},
|
|
273
|
+
});
|
|
274
|
+
console.log(JSON.stringify(instructions));
|
|
275
|
+
// const safe = await getSigningClient(
|
|
276
|
+
// '2ac7230628b8b4a587c4005798184735471b9240fc57fc75d97824e1fb6b5409',
|
|
277
|
+
// );
|
|
278
|
+
// const tx = await safe.wasm.executeMultiple(safe.signer, instructions, 'auto');
|
|
279
|
+
// console.log(tx);
|
|
280
|
+
}
|
|
281
|
+
exports.rotateValidators = rotateValidators;
|
|
282
|
+
summary().catch(console.error);
|
|
283
|
+
//# sourceMappingURL=CosmWasmTokenAdapter.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CosmWasmTokenAdapter.test.js","sourceRoot":"","sources":["../../../src/token/adapters/CosmWasmTokenAdapter.test.ts"],"names":[],"mappings":"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"}
|