@underscore-finance/sdk 0.0.1
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/LICENSE +41 -0
- package/README.md +131 -0
- package/dist/contracts/AddyRegistry.d.ts +471 -0
- package/dist/contracts/AddyRegistry.d.ts.map +1 -0
- package/dist/contracts/AddyRegistry.js +592 -0
- package/dist/contracts/AgentFactory.d.ts +966 -0
- package/dist/contracts/AgentFactory.d.ts.map +1 -0
- package/dist/contracts/AgentFactory.js +1227 -0
- package/dist/contracts/AgentTemplate.d.ts +2629 -0
- package/dist/contracts/AgentTemplate.d.ts.map +1 -0
- package/dist/contracts/AgentTemplate.js +3370 -0
- package/dist/contracts/ChainlinkFeeds.d.ts +567 -0
- package/dist/contracts/ChainlinkFeeds.d.ts.map +1 -0
- package/dist/contracts/ChainlinkFeeds.js +735 -0
- package/dist/contracts/LegoAaveV3.d.ts +894 -0
- package/dist/contracts/LegoAaveV3.d.ts.map +1 -0
- package/dist/contracts/LegoAaveV3.js +1165 -0
- package/dist/contracts/LegoAeroClassic.d.ts +1065 -0
- package/dist/contracts/LegoAeroClassic.d.ts.map +1 -0
- package/dist/contracts/LegoAeroClassic.js +1381 -0
- package/dist/contracts/LegoAeroSlipstream.d.ts +1161 -0
- package/dist/contracts/LegoAeroSlipstream.d.ts.map +1 -0
- package/dist/contracts/LegoAeroSlipstream.js +1506 -0
- package/dist/contracts/LegoCompoundV3.d.ts +921 -0
- package/dist/contracts/LegoCompoundV3.d.ts.map +1 -0
- package/dist/contracts/LegoCompoundV3.js +1200 -0
- package/dist/contracts/LegoCurve.d.ts +1050 -0
- package/dist/contracts/LegoCurve.d.ts.map +1 -0
- package/dist/contracts/LegoCurve.js +1354 -0
- package/dist/contracts/LegoEuler.d.ts +935 -0
- package/dist/contracts/LegoEuler.d.ts.map +1 -0
- package/dist/contracts/LegoEuler.js +1218 -0
- package/dist/contracts/LegoFluid.d.ts +875 -0
- package/dist/contracts/LegoFluid.d.ts.map +1 -0
- package/dist/contracts/LegoFluid.js +1141 -0
- package/dist/contracts/LegoHelper.d.ts +1555 -0
- package/dist/contracts/LegoHelper.d.ts.map +1 -0
- package/dist/contracts/LegoHelper.js +1945 -0
- package/dist/contracts/LegoMoonwell.d.ts +903 -0
- package/dist/contracts/LegoMoonwell.d.ts.map +1 -0
- package/dist/contracts/LegoMoonwell.js +1177 -0
- package/dist/contracts/LegoMorpho.d.ts +935 -0
- package/dist/contracts/LegoMorpho.d.ts.map +1 -0
- package/dist/contracts/LegoMorpho.js +1218 -0
- package/dist/contracts/LegoRegistry.d.ts +589 -0
- package/dist/contracts/LegoRegistry.d.ts.map +1 -0
- package/dist/contracts/LegoRegistry.js +746 -0
- package/dist/contracts/LegoSky.d.ts +784 -0
- package/dist/contracts/LegoSky.d.ts.map +1 -0
- package/dist/contracts/LegoSky.js +1015 -0
- package/dist/contracts/LegoUniswapV2.d.ts +1065 -0
- package/dist/contracts/LegoUniswapV2.d.ts.map +1 -0
- package/dist/contracts/LegoUniswapV2.js +1381 -0
- package/dist/contracts/LegoUniswapV3.d.ts +1199 -0
- package/dist/contracts/LegoUniswapV3.d.ts.map +1 -0
- package/dist/contracts/LegoUniswapV3.js +1553 -0
- package/dist/contracts/OracleRegistry.d.ts +811 -0
- package/dist/contracts/OracleRegistry.d.ts.map +1 -0
- package/dist/contracts/OracleRegistry.js +1049 -0
- package/dist/contracts/PriceSheets.d.ts +1053 -0
- package/dist/contracts/PriceSheets.d.ts.map +1 -0
- package/dist/contracts/PriceSheets.js +1296 -0
- package/dist/contracts/PythFeeds.d.ts +501 -0
- package/dist/contracts/PythFeeds.d.ts.map +1 -0
- package/dist/contracts/PythFeeds.js +648 -0
- package/dist/contracts/StorkFeeds.d.ts +501 -0
- package/dist/contracts/StorkFeeds.d.ts.map +1 -0
- package/dist/contracts/StorkFeeds.js +648 -0
- package/dist/contracts/WalletConfig.d.ts +1398 -0
- package/dist/contracts/WalletConfig.d.ts.map +1 -0
- package/dist/contracts/WalletConfig.js +1674 -0
- package/dist/contracts/WalletFunds.d.ts +1978 -0
- package/dist/contracts/WalletFunds.d.ts.map +1 -0
- package/dist/contracts/WalletFunds.js +2579 -0
- package/dist/contracts/index.d.ts +25 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +28 -0
- package/dist/contracts/sdk.d.ts +53 -0
- package/dist/contracts/sdk.d.ts.map +1 -0
- package/dist/contracts/sdk.js +56 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/package.json +31 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
Business Source License 1.1
|
|
2
|
+
|
|
3
|
+
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
|
|
4
|
+
"Business Source License" is a trademark of MariaDB Corporation Ab.
|
|
5
|
+
|
|
6
|
+
-----------------------------------------------------------------------------
|
|
7
|
+
|
|
8
|
+
Parameters
|
|
9
|
+
|
|
10
|
+
Licensor: Hightop Financial, Inc.
|
|
11
|
+
|
|
12
|
+
Licensed Work: Underscore Protocol
|
|
13
|
+
The Licensed Work is (c) 2025 Hightop Financial, Inc.
|
|
14
|
+
|
|
15
|
+
Additional Use Grant: Any uses listed and defined at
|
|
16
|
+
https://github.com/underscore-finance/underscore/blob/main/LICENSE_GRANTS.md
|
|
17
|
+
|
|
18
|
+
Change Date: The earlier of 2029-03-06 or a date specified at
|
|
19
|
+
https://github.com/underscore-finance/underscore/blob/main/LICENSE_DATE.md
|
|
20
|
+
|
|
21
|
+
Change License: MIT License
|
|
22
|
+
|
|
23
|
+
-----------------------------------------------------------------------------
|
|
24
|
+
|
|
25
|
+
Terms
|
|
26
|
+
|
|
27
|
+
The Licensor hereby grants you the right to copy, modify, create derivative works, redistribute, and make non-production use of the Licensed Work. The Licensor may make an Additional Use Grant, above, permitting limited production use.
|
|
28
|
+
|
|
29
|
+
Effective on the Change Date, or the fourth anniversary of the first publicly available distribution of a specific version of the Licensed Work under this License, whichever comes first, the Licensor hereby grants you rights under the terms of the Change License, and the rights granted in the paragraph above terminate.
|
|
30
|
+
|
|
31
|
+
If your use of the Licensed Work does not comply with the requirements currently in effect as described in this License, you must purchase a commercial license from the Licensor, its affiliated entities, or authorized resellers, or you must refrain from using the Licensed Work.
|
|
32
|
+
|
|
33
|
+
All copies of the original and modified Licensed Work, and derivative works of the Licensed Work, are subject to this License. This License applies separately for each version of the Licensed Work and the Change Date may vary for each version of the Licensed Work released by Licensor.
|
|
34
|
+
|
|
35
|
+
You must conspicuously display this License on each original or modified copy of the Licensed Work. If you receive the Licensed Work in original or modified form from a third party, the terms and conditions set forth in this License apply to your use of that work.
|
|
36
|
+
|
|
37
|
+
Any use of the Licensed Work in violation of this License will automatically terminate your rights under this License for the current and all other versions of the Licensed Work.
|
|
38
|
+
|
|
39
|
+
This License does not grant you any right in any trademark or logo of Licensor or its affiliates (provided that you may use a trademark or logo of Licensor as expressly required by this License).
|
|
40
|
+
|
|
41
|
+
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON AN "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND TITLE.
|
package/README.md
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# Underscore Smart Contracts SDK
|
|
2
|
+
|
|
3
|
+
A TypeScript SDK for interacting with Underscore's AI-driven smart contracts on Base network. Underscore enables trustless AI agents to operate on your behalf in DeFi—securely, transparently, and within boundaries you define.
|
|
4
|
+
|
|
5
|
+
## Key Features
|
|
6
|
+
|
|
7
|
+
- **Non-Custodial**: Retain full control of your assets; only you can transfer or withdraw funds
|
|
8
|
+
- **Granular Control**: Define precise boundaries for AI agent operations
|
|
9
|
+
- **Rule-Based Autonomy**: Smart contracts strictly enforce your parameters
|
|
10
|
+
- **Minimal Trust**: Built on open-source, immutable code
|
|
11
|
+
- **Extensible**: Add new DeFi protocol integrations without migrating funds
|
|
12
|
+
- **Auditability**: Fully transparent, verifiable code
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm install @underscore-finance/sdk viem
|
|
18
|
+
# or
|
|
19
|
+
yarn add @underscore-finance/sdk viem
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Quick Start
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
import Underscore from '@underscore-finance/sdk'
|
|
26
|
+
import { createWalletClient, custom } from 'viem'
|
|
27
|
+
import { base } from 'viem/chains'
|
|
28
|
+
|
|
29
|
+
// Initialize SDK = Read mode only
|
|
30
|
+
const underscore = new Underscore()
|
|
31
|
+
|
|
32
|
+
// For AI agent operations, initialize with a wallet client
|
|
33
|
+
const underscore = new Underscore({
|
|
34
|
+
walletClient: createWalletClient({
|
|
35
|
+
chain: base,
|
|
36
|
+
transport: custom(window.ethereum),
|
|
37
|
+
}),
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
// Create an AI Wallet
|
|
41
|
+
const createWallet = async (owner: string, aiAgent: string) => {
|
|
42
|
+
return await underscore.contracts.AgentFactory.createWalletClient(
|
|
43
|
+
owner, // Your wallet address
|
|
44
|
+
aiAgent, // AI agent's address
|
|
45
|
+
)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Configure AI permissions
|
|
49
|
+
const configureAgent = async (agent: string, allowedAssets: string[]) => {
|
|
50
|
+
for (const asset of allowedAssets) {
|
|
51
|
+
await underscore.contracts.WalletConfig('0xWalletAddress').addAssetForAgent(agent, asset)
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Core Components
|
|
57
|
+
|
|
58
|
+
### AI Agent System
|
|
59
|
+
|
|
60
|
+
- `AgentFactory` - Deploy and manage AI wallets
|
|
61
|
+
- `AgentTemplate` - Access to AI agent templates
|
|
62
|
+
- `WalletConfig` - Set AI agent permissions and rules
|
|
63
|
+
- `WalletFunds` - Manage wallet assets
|
|
64
|
+
- `LegoHelper` - Set of helper functions to interact with legos
|
|
65
|
+
- `OracleRegistry` - Registry for price feeds
|
|
66
|
+
|
|
67
|
+
### Protocol Integrations ("Legos")
|
|
68
|
+
|
|
69
|
+
Modular DeFi integrations your AI can interact with:
|
|
70
|
+
|
|
71
|
+
- `LegoAaveV3` - Aave V3 lending/borrowing
|
|
72
|
+
- `LegoCompoundV3` - Compound V3 operations
|
|
73
|
+
- `LegoUniswapV3` - Uniswap V3 swaps
|
|
74
|
+
- `LegoCurve` - Curve pool interactions
|
|
75
|
+
- And many more protocol integrations
|
|
76
|
+
|
|
77
|
+
### Price Feed Systems
|
|
78
|
+
|
|
79
|
+
Price oracles your AI can reference:
|
|
80
|
+
|
|
81
|
+
- `ChainlinkFeeds` - Chainlink oracle data
|
|
82
|
+
- `PythFeeds` - Pyth Network feeds
|
|
83
|
+
- `StorkFeeds` - Stork protocol data
|
|
84
|
+
|
|
85
|
+
## Use Cases
|
|
86
|
+
|
|
87
|
+
1. **Autonomous Yield Farming**
|
|
88
|
+
|
|
89
|
+
- AI monitors lending rates across protocols
|
|
90
|
+
- Automatically shifts funds to optimal yields
|
|
91
|
+
- Operates within your risk parameters
|
|
92
|
+
|
|
93
|
+
2. **Smart Portfolio Rebalancing**
|
|
94
|
+
|
|
95
|
+
- AI maintains your desired asset ratios
|
|
96
|
+
- Executes trades based on market conditions
|
|
97
|
+
- Respects your defined boundaries
|
|
98
|
+
|
|
99
|
+
3. **Risk Management**
|
|
100
|
+
- AI monitors on-chain risk indicators
|
|
101
|
+
- Automatically adjusts positions
|
|
102
|
+
- Follows your pre-set safety rules
|
|
103
|
+
|
|
104
|
+
## Configuration
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
interface UnderscoreConfig {
|
|
108
|
+
rpcUrl?: string // Custom RPC URL for Base network
|
|
109
|
+
publicClient?: PublicClient // Custom viem public client
|
|
110
|
+
walletClient?: WalletClient // Required for transactions
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Best Practices
|
|
115
|
+
|
|
116
|
+
1. Always initialize with a wallet client for AI agent operations
|
|
117
|
+
2. Use custom RPC URLs in production
|
|
118
|
+
3. Implement comprehensive error handling
|
|
119
|
+
4. Set clear boundaries for AI agent actions
|
|
120
|
+
|
|
121
|
+
## Support
|
|
122
|
+
|
|
123
|
+
- GitHub Issues: Technical support and bug reports
|
|
124
|
+
- Discord Community: [Join our Discord](https://discord.gg/Y6PWmndNaC)
|
|
125
|
+
- Developer Support: [Contact our team](https://underscore.fi)
|
|
126
|
+
|
|
127
|
+
## License
|
|
128
|
+
|
|
129
|
+
Business Source License 1.1 - This SDK is provided under a commercial license. All rights reserved. Unauthorized copying, modification, distribution, or use of this software is strictly prohibited without a valid license agreement.
|
|
130
|
+
|
|
131
|
+
Built by the team at [Hightop](http://hightop.com) + [Ripe](http://ripe.finance)
|
|
@@ -0,0 +1,471 @@
|
|
|
1
|
+
import { PublicClient, WalletClient } from 'viem';
|
|
2
|
+
type ExtractArgs<T> = T extends (...args: infer P) => any ? P : never;
|
|
3
|
+
type Address = `0x${string}`;
|
|
4
|
+
export declare const abi: readonly [{
|
|
5
|
+
readonly anonymous: false;
|
|
6
|
+
readonly inputs: readonly [{
|
|
7
|
+
readonly indexed: true;
|
|
8
|
+
readonly name: "addr";
|
|
9
|
+
readonly type: "address";
|
|
10
|
+
}, {
|
|
11
|
+
readonly indexed: false;
|
|
12
|
+
readonly name: "addyId";
|
|
13
|
+
readonly type: "uint256";
|
|
14
|
+
}, {
|
|
15
|
+
readonly indexed: false;
|
|
16
|
+
readonly name: "description";
|
|
17
|
+
readonly type: "string";
|
|
18
|
+
}];
|
|
19
|
+
readonly name: "NewAddyRegistered";
|
|
20
|
+
readonly type: "event";
|
|
21
|
+
}, {
|
|
22
|
+
readonly anonymous: false;
|
|
23
|
+
readonly inputs: readonly [{
|
|
24
|
+
readonly indexed: true;
|
|
25
|
+
readonly name: "newAddr";
|
|
26
|
+
readonly type: "address";
|
|
27
|
+
}, {
|
|
28
|
+
readonly indexed: true;
|
|
29
|
+
readonly name: "prevAddy";
|
|
30
|
+
readonly type: "address";
|
|
31
|
+
}, {
|
|
32
|
+
readonly indexed: false;
|
|
33
|
+
readonly name: "addyId";
|
|
34
|
+
readonly type: "uint256";
|
|
35
|
+
}, {
|
|
36
|
+
readonly indexed: false;
|
|
37
|
+
readonly name: "version";
|
|
38
|
+
readonly type: "uint256";
|
|
39
|
+
}, {
|
|
40
|
+
readonly indexed: false;
|
|
41
|
+
readonly name: "description";
|
|
42
|
+
readonly type: "string";
|
|
43
|
+
}];
|
|
44
|
+
readonly name: "AddyIdUpdated";
|
|
45
|
+
readonly type: "event";
|
|
46
|
+
}, {
|
|
47
|
+
readonly anonymous: false;
|
|
48
|
+
readonly inputs: readonly [{
|
|
49
|
+
readonly indexed: true;
|
|
50
|
+
readonly name: "prevAddy";
|
|
51
|
+
readonly type: "address";
|
|
52
|
+
}, {
|
|
53
|
+
readonly indexed: false;
|
|
54
|
+
readonly name: "addyId";
|
|
55
|
+
readonly type: "uint256";
|
|
56
|
+
}, {
|
|
57
|
+
readonly indexed: false;
|
|
58
|
+
readonly name: "version";
|
|
59
|
+
readonly type: "uint256";
|
|
60
|
+
}, {
|
|
61
|
+
readonly indexed: false;
|
|
62
|
+
readonly name: "description";
|
|
63
|
+
readonly type: "string";
|
|
64
|
+
}];
|
|
65
|
+
readonly name: "AddyIdDisabled";
|
|
66
|
+
readonly type: "event";
|
|
67
|
+
}, {
|
|
68
|
+
readonly anonymous: false;
|
|
69
|
+
readonly inputs: readonly [{
|
|
70
|
+
readonly indexed: true;
|
|
71
|
+
readonly name: "governor";
|
|
72
|
+
readonly type: "address";
|
|
73
|
+
}];
|
|
74
|
+
readonly name: "AddyRegistryGovernorSet";
|
|
75
|
+
readonly type: "event";
|
|
76
|
+
}, {
|
|
77
|
+
readonly anonymous: false;
|
|
78
|
+
readonly inputs: readonly [{
|
|
79
|
+
readonly indexed: false;
|
|
80
|
+
readonly name: "isActivated";
|
|
81
|
+
readonly type: "bool";
|
|
82
|
+
}];
|
|
83
|
+
readonly name: "AddyRegistryActivated";
|
|
84
|
+
readonly type: "event";
|
|
85
|
+
}, {
|
|
86
|
+
readonly inputs: readonly [{
|
|
87
|
+
readonly name: "_addy";
|
|
88
|
+
readonly type: "address";
|
|
89
|
+
}];
|
|
90
|
+
readonly name: "isValidNewAddy";
|
|
91
|
+
readonly outputs: readonly [{
|
|
92
|
+
readonly name: "";
|
|
93
|
+
readonly type: "bool";
|
|
94
|
+
}];
|
|
95
|
+
readonly stateMutability: "view";
|
|
96
|
+
readonly type: "function";
|
|
97
|
+
}, {
|
|
98
|
+
readonly inputs: readonly [{
|
|
99
|
+
readonly name: "_addy";
|
|
100
|
+
readonly type: "address";
|
|
101
|
+
}, {
|
|
102
|
+
readonly name: "_description";
|
|
103
|
+
readonly type: "string";
|
|
104
|
+
}];
|
|
105
|
+
readonly name: "registerNewAddy";
|
|
106
|
+
readonly outputs: readonly [{
|
|
107
|
+
readonly name: "";
|
|
108
|
+
readonly type: "uint256";
|
|
109
|
+
}];
|
|
110
|
+
readonly stateMutability: "nonpayable";
|
|
111
|
+
readonly type: "function";
|
|
112
|
+
}, {
|
|
113
|
+
readonly inputs: readonly [{
|
|
114
|
+
readonly name: "_addyId";
|
|
115
|
+
readonly type: "uint256";
|
|
116
|
+
}, {
|
|
117
|
+
readonly name: "_newAddy";
|
|
118
|
+
readonly type: "address";
|
|
119
|
+
}];
|
|
120
|
+
readonly name: "isValidAddyUpdate";
|
|
121
|
+
readonly outputs: readonly [{
|
|
122
|
+
readonly name: "";
|
|
123
|
+
readonly type: "bool";
|
|
124
|
+
}];
|
|
125
|
+
readonly stateMutability: "view";
|
|
126
|
+
readonly type: "function";
|
|
127
|
+
}, {
|
|
128
|
+
readonly inputs: readonly [{
|
|
129
|
+
readonly name: "_addyId";
|
|
130
|
+
readonly type: "uint256";
|
|
131
|
+
}, {
|
|
132
|
+
readonly name: "_newAddy";
|
|
133
|
+
readonly type: "address";
|
|
134
|
+
}];
|
|
135
|
+
readonly name: "updateAddy";
|
|
136
|
+
readonly outputs: readonly [{
|
|
137
|
+
readonly name: "";
|
|
138
|
+
readonly type: "bool";
|
|
139
|
+
}];
|
|
140
|
+
readonly stateMutability: "nonpayable";
|
|
141
|
+
readonly type: "function";
|
|
142
|
+
}, {
|
|
143
|
+
readonly inputs: readonly [{
|
|
144
|
+
readonly name: "_addyId";
|
|
145
|
+
readonly type: "uint256";
|
|
146
|
+
}];
|
|
147
|
+
readonly name: "isValidAddyDisable";
|
|
148
|
+
readonly outputs: readonly [{
|
|
149
|
+
readonly name: "";
|
|
150
|
+
readonly type: "bool";
|
|
151
|
+
}];
|
|
152
|
+
readonly stateMutability: "view";
|
|
153
|
+
readonly type: "function";
|
|
154
|
+
}, {
|
|
155
|
+
readonly inputs: readonly [{
|
|
156
|
+
readonly name: "_addyId";
|
|
157
|
+
readonly type: "uint256";
|
|
158
|
+
}];
|
|
159
|
+
readonly name: "disableAddy";
|
|
160
|
+
readonly outputs: readonly [{
|
|
161
|
+
readonly name: "";
|
|
162
|
+
readonly type: "bool";
|
|
163
|
+
}];
|
|
164
|
+
readonly stateMutability: "nonpayable";
|
|
165
|
+
readonly type: "function";
|
|
166
|
+
}, {
|
|
167
|
+
readonly inputs: readonly [{
|
|
168
|
+
readonly name: "_addy";
|
|
169
|
+
readonly type: "address";
|
|
170
|
+
}];
|
|
171
|
+
readonly name: "isValidAddy";
|
|
172
|
+
readonly outputs: readonly [{
|
|
173
|
+
readonly name: "";
|
|
174
|
+
readonly type: "bool";
|
|
175
|
+
}];
|
|
176
|
+
readonly stateMutability: "view";
|
|
177
|
+
readonly type: "function";
|
|
178
|
+
}, {
|
|
179
|
+
readonly inputs: readonly [{
|
|
180
|
+
readonly name: "_addyId";
|
|
181
|
+
readonly type: "uint256";
|
|
182
|
+
}];
|
|
183
|
+
readonly name: "isValidAddyId";
|
|
184
|
+
readonly outputs: readonly [{
|
|
185
|
+
readonly name: "";
|
|
186
|
+
readonly type: "bool";
|
|
187
|
+
}];
|
|
188
|
+
readonly stateMutability: "view";
|
|
189
|
+
readonly type: "function";
|
|
190
|
+
}, {
|
|
191
|
+
readonly inputs: readonly [{
|
|
192
|
+
readonly name: "_addy";
|
|
193
|
+
readonly type: "address";
|
|
194
|
+
}];
|
|
195
|
+
readonly name: "getAddyId";
|
|
196
|
+
readonly outputs: readonly [{
|
|
197
|
+
readonly name: "";
|
|
198
|
+
readonly type: "uint256";
|
|
199
|
+
}];
|
|
200
|
+
readonly stateMutability: "view";
|
|
201
|
+
readonly type: "function";
|
|
202
|
+
}, {
|
|
203
|
+
readonly inputs: readonly [{
|
|
204
|
+
readonly name: "_addyId";
|
|
205
|
+
readonly type: "uint256";
|
|
206
|
+
}];
|
|
207
|
+
readonly name: "getAddy";
|
|
208
|
+
readonly outputs: readonly [{
|
|
209
|
+
readonly name: "";
|
|
210
|
+
readonly type: "address";
|
|
211
|
+
}];
|
|
212
|
+
readonly stateMutability: "view";
|
|
213
|
+
readonly type: "function";
|
|
214
|
+
}, {
|
|
215
|
+
readonly inputs: readonly [{
|
|
216
|
+
readonly name: "_addyId";
|
|
217
|
+
readonly type: "uint256";
|
|
218
|
+
}];
|
|
219
|
+
readonly name: "getAddyInfo";
|
|
220
|
+
readonly outputs: readonly [{
|
|
221
|
+
readonly components: readonly [{
|
|
222
|
+
readonly name: "addr";
|
|
223
|
+
readonly type: "address";
|
|
224
|
+
}, {
|
|
225
|
+
readonly name: "version";
|
|
226
|
+
readonly type: "uint256";
|
|
227
|
+
}, {
|
|
228
|
+
readonly name: "lastModified";
|
|
229
|
+
readonly type: "uint256";
|
|
230
|
+
}, {
|
|
231
|
+
readonly name: "description";
|
|
232
|
+
readonly type: "string";
|
|
233
|
+
}];
|
|
234
|
+
readonly name: "";
|
|
235
|
+
readonly type: "tuple";
|
|
236
|
+
}];
|
|
237
|
+
readonly stateMutability: "view";
|
|
238
|
+
readonly type: "function";
|
|
239
|
+
}, {
|
|
240
|
+
readonly inputs: readonly [{
|
|
241
|
+
readonly name: "_addyId";
|
|
242
|
+
readonly type: "uint256";
|
|
243
|
+
}];
|
|
244
|
+
readonly name: "getAddyDescription";
|
|
245
|
+
readonly outputs: readonly [{
|
|
246
|
+
readonly name: "";
|
|
247
|
+
readonly type: "string";
|
|
248
|
+
}];
|
|
249
|
+
readonly stateMutability: "view";
|
|
250
|
+
readonly type: "function";
|
|
251
|
+
}, {
|
|
252
|
+
readonly inputs: readonly [];
|
|
253
|
+
readonly name: "getNumAddys";
|
|
254
|
+
readonly outputs: readonly [{
|
|
255
|
+
readonly name: "";
|
|
256
|
+
readonly type: "uint256";
|
|
257
|
+
}];
|
|
258
|
+
readonly stateMutability: "view";
|
|
259
|
+
readonly type: "function";
|
|
260
|
+
}, {
|
|
261
|
+
readonly inputs: readonly [];
|
|
262
|
+
readonly name: "getLastAddy";
|
|
263
|
+
readonly outputs: readonly [{
|
|
264
|
+
readonly name: "";
|
|
265
|
+
readonly type: "address";
|
|
266
|
+
}];
|
|
267
|
+
readonly stateMutability: "view";
|
|
268
|
+
readonly type: "function";
|
|
269
|
+
}, {
|
|
270
|
+
readonly inputs: readonly [];
|
|
271
|
+
readonly name: "getLastAddyId";
|
|
272
|
+
readonly outputs: readonly [{
|
|
273
|
+
readonly name: "";
|
|
274
|
+
readonly type: "uint256";
|
|
275
|
+
}];
|
|
276
|
+
readonly stateMutability: "view";
|
|
277
|
+
readonly type: "function";
|
|
278
|
+
}, {
|
|
279
|
+
readonly inputs: readonly [{
|
|
280
|
+
readonly name: "_newGovernor";
|
|
281
|
+
readonly type: "address";
|
|
282
|
+
}];
|
|
283
|
+
readonly name: "isValidGovernor";
|
|
284
|
+
readonly outputs: readonly [{
|
|
285
|
+
readonly name: "";
|
|
286
|
+
readonly type: "bool";
|
|
287
|
+
}];
|
|
288
|
+
readonly stateMutability: "view";
|
|
289
|
+
readonly type: "function";
|
|
290
|
+
}, {
|
|
291
|
+
readonly inputs: readonly [{
|
|
292
|
+
readonly name: "_newGovernor";
|
|
293
|
+
readonly type: "address";
|
|
294
|
+
}];
|
|
295
|
+
readonly name: "setGovernor";
|
|
296
|
+
readonly outputs: readonly [{
|
|
297
|
+
readonly name: "";
|
|
298
|
+
readonly type: "bool";
|
|
299
|
+
}];
|
|
300
|
+
readonly stateMutability: "nonpayable";
|
|
301
|
+
readonly type: "function";
|
|
302
|
+
}, {
|
|
303
|
+
readonly inputs: readonly [{
|
|
304
|
+
readonly name: "arg0";
|
|
305
|
+
readonly type: "uint256";
|
|
306
|
+
}];
|
|
307
|
+
readonly name: "addyInfo";
|
|
308
|
+
readonly outputs: readonly [{
|
|
309
|
+
readonly components: readonly [{
|
|
310
|
+
readonly name: "addr";
|
|
311
|
+
readonly type: "address";
|
|
312
|
+
}, {
|
|
313
|
+
readonly name: "version";
|
|
314
|
+
readonly type: "uint256";
|
|
315
|
+
}, {
|
|
316
|
+
readonly name: "lastModified";
|
|
317
|
+
readonly type: "uint256";
|
|
318
|
+
}, {
|
|
319
|
+
readonly name: "description";
|
|
320
|
+
readonly type: "string";
|
|
321
|
+
}];
|
|
322
|
+
readonly name: "";
|
|
323
|
+
readonly type: "tuple";
|
|
324
|
+
}];
|
|
325
|
+
readonly stateMutability: "view";
|
|
326
|
+
readonly type: "function";
|
|
327
|
+
}, {
|
|
328
|
+
readonly inputs: readonly [{
|
|
329
|
+
readonly name: "arg0";
|
|
330
|
+
readonly type: "address";
|
|
331
|
+
}];
|
|
332
|
+
readonly name: "addyToId";
|
|
333
|
+
readonly outputs: readonly [{
|
|
334
|
+
readonly name: "";
|
|
335
|
+
readonly type: "uint256";
|
|
336
|
+
}];
|
|
337
|
+
readonly stateMutability: "view";
|
|
338
|
+
readonly type: "function";
|
|
339
|
+
}, {
|
|
340
|
+
readonly inputs: readonly [];
|
|
341
|
+
readonly name: "numAddys";
|
|
342
|
+
readonly outputs: readonly [{
|
|
343
|
+
readonly name: "";
|
|
344
|
+
readonly type: "uint256";
|
|
345
|
+
}];
|
|
346
|
+
readonly stateMutability: "view";
|
|
347
|
+
readonly type: "function";
|
|
348
|
+
}, {
|
|
349
|
+
readonly inputs: readonly [];
|
|
350
|
+
readonly name: "governor";
|
|
351
|
+
readonly outputs: readonly [{
|
|
352
|
+
readonly name: "";
|
|
353
|
+
readonly type: "address";
|
|
354
|
+
}];
|
|
355
|
+
readonly stateMutability: "view";
|
|
356
|
+
readonly type: "function";
|
|
357
|
+
}, {
|
|
358
|
+
readonly inputs: readonly [{
|
|
359
|
+
readonly name: "_governor";
|
|
360
|
+
readonly type: "address";
|
|
361
|
+
}];
|
|
362
|
+
readonly outputs: readonly [];
|
|
363
|
+
readonly stateMutability: "nonpayable";
|
|
364
|
+
readonly type: "constructor";
|
|
365
|
+
}];
|
|
366
|
+
export declare const deployAddress: Address | undefined;
|
|
367
|
+
export type Contract = {
|
|
368
|
+
calls: {
|
|
369
|
+
isValidNewAddy: (addy: `0x${string}`) => Promise<boolean>;
|
|
370
|
+
isValidAddyUpdate: (addyId: bigint, newAddy: `0x${string}`) => Promise<boolean>;
|
|
371
|
+
isValidAddyDisable: (addyId: bigint) => Promise<boolean>;
|
|
372
|
+
isValidAddy: (addy: `0x${string}`) => Promise<boolean>;
|
|
373
|
+
isValidAddyId: (addyId: bigint) => Promise<boolean>;
|
|
374
|
+
getAddyId: (addy: `0x${string}`) => Promise<bigint>;
|
|
375
|
+
getAddy: (addyId: bigint) => Promise<`0x${string}`>;
|
|
376
|
+
getAddyInfo: (addyId: bigint) => Promise<{
|
|
377
|
+
addr: `0x${string}`;
|
|
378
|
+
version: bigint;
|
|
379
|
+
lastModified: bigint;
|
|
380
|
+
description: string;
|
|
381
|
+
}>;
|
|
382
|
+
getAddyDescription: (addyId: bigint) => Promise<string>;
|
|
383
|
+
getNumAddys: () => Promise<bigint>;
|
|
384
|
+
getLastAddy: () => Promise<`0x${string}`>;
|
|
385
|
+
getLastAddyId: () => Promise<bigint>;
|
|
386
|
+
isValidGovernor: (newGovernor: `0x${string}`) => Promise<boolean>;
|
|
387
|
+
addyInfo: (arg0: bigint) => Promise<{
|
|
388
|
+
addr: `0x${string}`;
|
|
389
|
+
version: bigint;
|
|
390
|
+
lastModified: bigint;
|
|
391
|
+
description: string;
|
|
392
|
+
}>;
|
|
393
|
+
addyToId: (arg0: `0x${string}`) => Promise<bigint>;
|
|
394
|
+
numAddys: () => Promise<bigint>;
|
|
395
|
+
governor: () => Promise<`0x${string}`>;
|
|
396
|
+
};
|
|
397
|
+
mutations: {
|
|
398
|
+
registerNewAddy: (addy: `0x${string}`, description: string) => Promise<bigint>;
|
|
399
|
+
updateAddy: (addyId: bigint, newAddy: `0x${string}`) => Promise<boolean>;
|
|
400
|
+
disableAddy: (addyId: bigint) => Promise<boolean>;
|
|
401
|
+
setGovernor: (newGovernor: `0x${string}`) => Promise<boolean>;
|
|
402
|
+
};
|
|
403
|
+
events: {
|
|
404
|
+
NewAddyRegistered: (addr: `0x${string}`, addyId: bigint, description: string) => Promise<void>;
|
|
405
|
+
AddyIdUpdated: (newAddr: `0x${string}`, prevAddy: `0x${string}`, addyId: bigint, version: bigint, description: string) => Promise<void>;
|
|
406
|
+
AddyIdDisabled: (prevAddy: `0x${string}`, addyId: bigint, version: bigint, description: string) => Promise<void>;
|
|
407
|
+
AddyRegistryGovernorSet: (governor: `0x${string}`) => Promise<void>;
|
|
408
|
+
AddyRegistryActivated: (isActivated: boolean) => Promise<void>;
|
|
409
|
+
};
|
|
410
|
+
};
|
|
411
|
+
export type Calls = keyof Contract['calls'];
|
|
412
|
+
export type Request<M extends Calls> = {
|
|
413
|
+
contractName: 'AddyRegistry';
|
|
414
|
+
method: M;
|
|
415
|
+
args: ExtractArgs<Contract['calls'][M]>;
|
|
416
|
+
address: Address | undefined;
|
|
417
|
+
deployAddress: Address | undefined;
|
|
418
|
+
defaultValue: Awaited<ReturnType<Contract['calls'][M]>> | undefined;
|
|
419
|
+
getAbi: () => typeof abi;
|
|
420
|
+
with: (options: {
|
|
421
|
+
contractAddress?: Address;
|
|
422
|
+
defaultValue?: Awaited<ReturnType<Contract['calls'][M]>>;
|
|
423
|
+
}) => Request<M>;
|
|
424
|
+
defaultTo: (defaultValue: Awaited<ReturnType<Contract['calls'][M]>>) => Request<M>;
|
|
425
|
+
at: (address: Address) => Request<M>;
|
|
426
|
+
};
|
|
427
|
+
export type CallReturn<M extends Calls> = NonNullable<Request<M>['defaultValue']>;
|
|
428
|
+
declare function getRequest<M extends Calls>(method: M, args: ExtractArgs<Contract['calls'][M]>, contractAddressOrOptions?: Address | {
|
|
429
|
+
contractAddress?: Address;
|
|
430
|
+
defaultValue?: Awaited<ReturnType<Contract['calls'][M]>>;
|
|
431
|
+
}): Request<M>;
|
|
432
|
+
type CallType = {
|
|
433
|
+
[K in Calls]: (...args: ExtractArgs<Contract['calls'][K]>) => ReturnType<typeof getRequest<K>>;
|
|
434
|
+
};
|
|
435
|
+
export declare const call: CallType;
|
|
436
|
+
export type Mutations = keyof Contract['mutations'];
|
|
437
|
+
export declare const mutation: {
|
|
438
|
+
[K in Mutations]: {
|
|
439
|
+
contractName: 'AddyRegistry';
|
|
440
|
+
deployAddress: Address | undefined;
|
|
441
|
+
getAbi: () => typeof abi;
|
|
442
|
+
functionName: K;
|
|
443
|
+
argsType: ExtractArgs<Contract['mutations'][K]> | undefined;
|
|
444
|
+
};
|
|
445
|
+
};
|
|
446
|
+
export type SDK = {
|
|
447
|
+
isValidNewAddy: (...args: ExtractArgs<Contract['calls']['isValidNewAddy']>) => Promise<CallReturn<'isValidNewAddy'>>;
|
|
448
|
+
isValidAddyUpdate: (...args: ExtractArgs<Contract['calls']['isValidAddyUpdate']>) => Promise<CallReturn<'isValidAddyUpdate'>>;
|
|
449
|
+
isValidAddyDisable: (...args: ExtractArgs<Contract['calls']['isValidAddyDisable']>) => Promise<CallReturn<'isValidAddyDisable'>>;
|
|
450
|
+
isValidAddy: (...args: ExtractArgs<Contract['calls']['isValidAddy']>) => Promise<CallReturn<'isValidAddy'>>;
|
|
451
|
+
isValidAddyId: (...args: ExtractArgs<Contract['calls']['isValidAddyId']>) => Promise<CallReturn<'isValidAddyId'>>;
|
|
452
|
+
getAddyId: (...args: ExtractArgs<Contract['calls']['getAddyId']>) => Promise<CallReturn<'getAddyId'>>;
|
|
453
|
+
getAddy: (...args: ExtractArgs<Contract['calls']['getAddy']>) => Promise<CallReturn<'getAddy'>>;
|
|
454
|
+
getAddyInfo: (...args: ExtractArgs<Contract['calls']['getAddyInfo']>) => Promise<CallReturn<'getAddyInfo'>>;
|
|
455
|
+
getAddyDescription: (...args: ExtractArgs<Contract['calls']['getAddyDescription']>) => Promise<CallReturn<'getAddyDescription'>>;
|
|
456
|
+
getNumAddys: (...args: ExtractArgs<Contract['calls']['getNumAddys']>) => Promise<CallReturn<'getNumAddys'>>;
|
|
457
|
+
getLastAddy: (...args: ExtractArgs<Contract['calls']['getLastAddy']>) => Promise<CallReturn<'getLastAddy'>>;
|
|
458
|
+
getLastAddyId: (...args: ExtractArgs<Contract['calls']['getLastAddyId']>) => Promise<CallReturn<'getLastAddyId'>>;
|
|
459
|
+
isValidGovernor: (...args: ExtractArgs<Contract['calls']['isValidGovernor']>) => Promise<CallReturn<'isValidGovernor'>>;
|
|
460
|
+
addyInfo: (...args: ExtractArgs<Contract['calls']['addyInfo']>) => Promise<CallReturn<'addyInfo'>>;
|
|
461
|
+
addyToId: (...args: ExtractArgs<Contract['calls']['addyToId']>) => Promise<CallReturn<'addyToId'>>;
|
|
462
|
+
numAddys: (...args: ExtractArgs<Contract['calls']['numAddys']>) => Promise<CallReturn<'numAddys'>>;
|
|
463
|
+
governor: (...args: ExtractArgs<Contract['calls']['governor']>) => Promise<CallReturn<'governor'>>;
|
|
464
|
+
registerNewAddy: (...args: ExtractArgs<Contract['mutations']['registerNewAddy']>) => Promise<Address>;
|
|
465
|
+
updateAddy: (...args: ExtractArgs<Contract['mutations']['updateAddy']>) => Promise<Address>;
|
|
466
|
+
disableAddy: (...args: ExtractArgs<Contract['mutations']['disableAddy']>) => Promise<Address>;
|
|
467
|
+
setGovernor: (...args: ExtractArgs<Contract['mutations']['setGovernor']>) => Promise<Address>;
|
|
468
|
+
};
|
|
469
|
+
export declare function toSdk(publicClient?: PublicClient, walletClient?: WalletClient): SDK;
|
|
470
|
+
export {};
|
|
471
|
+
//# sourceMappingURL=AddyRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddyRegistry.d.ts","sourceRoot":"","sources":["../../src/contracts/AddyRegistry.ts"],"names":[],"mappings":"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"}
|