@rainlanguage/ui-components 0.0.1-alpha.235 → 0.0.1-alpha.236
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/components/deployment/ComposedRainlangModal.svelte +3 -3
- package/dist/components/deployment/DeploymentSteps.svelte +20 -20
- package/dist/components/deployment/DeploymentSteps.svelte.d.ts +2 -2
- package/dist/components/deployment/DepositInput.svelte +8 -7
- package/dist/components/deployment/DepositInput.svelte.d.ts +2 -2
- package/dist/components/deployment/FieldDefinitionInput.svelte +7 -7
- package/dist/components/deployment/FieldDefinitionInput.svelte.d.ts +2 -2
- package/dist/components/deployment/SelectToken.svelte +6 -6
- package/dist/components/deployment/SelectToken.svelte.d.ts +2 -2
- package/dist/components/deployment/TokenIOInput.svelte +5 -5
- package/dist/components/deployment/TokenSelectionModal.svelte +3 -3
- package/dist/components/detail/OrderDetail.svelte +7 -7
- package/dist/errors/DeploymentStepsError.d.ts +4 -4
- package/dist/errors/DeploymentStepsError.js +4 -4
- package/dist/hooks/useRaindexOrderBuilder.d.ts +3 -0
- package/dist/hooks/useRaindexOrderBuilder.js +11 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/providers/RaindexOrderBuilderProvider.svelte +8 -0
- package/dist/providers/RaindexOrderBuilderProvider.svelte.d.ts +21 -0
- package/dist/services/handleShareChoices.d.ts +2 -2
- package/dist/services/handleShareChoices.js +2 -2
- package/dist/services/registry.js +2 -2
- package/package.json +2 -2
- package/dist/hooks/useGui.d.ts +0 -3
- package/dist/hooks/useGui.js +0 -11
- package/dist/providers/GuiProvider.svelte +0 -8
- package/dist/providers/GuiProvider.svelte.d.ts +0 -21
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import { RainlangLR } from "codemirror-rainlang";
|
|
3
3
|
import { lightCodeMirrorTheme } from "../../utils/codeMirrorThemes";
|
|
4
4
|
import { Button, Modal } from "flowbite-svelte";
|
|
5
|
-
import {
|
|
6
|
-
const
|
|
5
|
+
import { useRaindexOrderBuilder } from "../../hooks/useRaindexOrderBuilder";
|
|
6
|
+
const builder = useRaindexOrderBuilder();
|
|
7
7
|
let rainlangText = null;
|
|
8
8
|
let open = false;
|
|
9
9
|
async function generateRainlang() {
|
|
10
|
-
let result = await
|
|
10
|
+
let result = await builder.getComposedRainlang();
|
|
11
11
|
if (result.error) {
|
|
12
12
|
throw new Error(result.error.msg);
|
|
13
13
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import TokenIOInput from "./TokenIOInput.svelte";
|
|
3
3
|
import ComposedRainlangModal from "./ComposedRainlangModal.svelte";
|
|
4
4
|
import {
|
|
5
|
-
|
|
5
|
+
RaindexOrderBuilder,
|
|
6
6
|
RaindexClient,
|
|
7
7
|
AccountBalance,
|
|
8
8
|
Float
|
|
@@ -16,7 +16,7 @@ import FieldDefinitionInput from "./FieldDefinitionInput.svelte";
|
|
|
16
16
|
import DepositInput from "./DepositInput.svelte";
|
|
17
17
|
import SelectToken from "./SelectToken.svelte";
|
|
18
18
|
import DeploymentSectionHeader from "./DeploymentSectionHeader.svelte";
|
|
19
|
-
import {
|
|
19
|
+
import { useRaindexOrderBuilder } from "../../hooks/useRaindexOrderBuilder";
|
|
20
20
|
import { fade } from "svelte/transition";
|
|
21
21
|
import ShareChoicesButton from "./ShareChoicesButton.svelte";
|
|
22
22
|
import { useRegistry } from "../../providers/registry/useRegistry";
|
|
@@ -38,12 +38,12 @@ let allTokenInfos = [];
|
|
|
38
38
|
let selectTokens = void 0;
|
|
39
39
|
let checkingDeployment = false;
|
|
40
40
|
let tokenBalances = /* @__PURE__ */ new Map();
|
|
41
|
-
const
|
|
41
|
+
const builder = useRaindexOrderBuilder();
|
|
42
42
|
const registry = useRegistry();
|
|
43
43
|
const raindexClient = useRaindexClient();
|
|
44
44
|
let deploymentStepsError = DeploymentStepsError.error;
|
|
45
45
|
onMount(async () => {
|
|
46
|
-
const selectTokensResult =
|
|
46
|
+
const selectTokensResult = builder.getSelectTokens();
|
|
47
47
|
if (selectTokensResult.error) {
|
|
48
48
|
throw new Error(selectTokensResult.error.msg);
|
|
49
49
|
}
|
|
@@ -69,9 +69,9 @@ let unsubscribeAccount = account.subscribe((account2) => {
|
|
|
69
69
|
onDestroy(() => {
|
|
70
70
|
unsubscribeAccount();
|
|
71
71
|
});
|
|
72
|
-
function
|
|
72
|
+
function getAllBuilderConfig() {
|
|
73
73
|
try {
|
|
74
|
-
let result =
|
|
74
|
+
let result = builder.getAllBuilderConfig();
|
|
75
75
|
if (result.error) {
|
|
76
76
|
throw new Error(result.error.msg);
|
|
77
77
|
}
|
|
@@ -81,19 +81,19 @@ function getAllGuiConfig() {
|
|
|
81
81
|
allTokenOutputs = result.value.orderOutputs;
|
|
82
82
|
allTokenInputs = result.value.orderInputs;
|
|
83
83
|
} catch (e) {
|
|
84
|
-
DeploymentStepsError.catch(e, DeploymentStepsErrorCode.
|
|
84
|
+
DeploymentStepsError.catch(e, DeploymentStepsErrorCode.NO_BUILDER_CONFIG);
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
function updateFields() {
|
|
88
88
|
try {
|
|
89
89
|
DeploymentStepsError.clear();
|
|
90
|
-
|
|
90
|
+
getAllBuilderConfig();
|
|
91
91
|
} catch (e) {
|
|
92
|
-
DeploymentStepsError.catch(e, DeploymentStepsErrorCode.
|
|
92
|
+
DeploymentStepsError.catch(e, DeploymentStepsErrorCode.NO_BUILDER);
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
async function _handleShareChoices() {
|
|
96
|
-
await handleShareChoices(
|
|
96
|
+
await handleShareChoices(builder, registry.getCurrentRegistry());
|
|
97
97
|
}
|
|
98
98
|
async function fetchTokenBalance(tokenInfo) {
|
|
99
99
|
if (!$account) return;
|
|
@@ -103,7 +103,7 @@ async function fetchTokenBalance(tokenInfo) {
|
|
|
103
103
|
loading: true,
|
|
104
104
|
error: ""
|
|
105
105
|
});
|
|
106
|
-
const { value: accountBalance, error } = await
|
|
106
|
+
const { value: accountBalance, error } = await builder.getAccountBalance(
|
|
107
107
|
tokenInfo.address,
|
|
108
108
|
$account
|
|
109
109
|
);
|
|
@@ -124,7 +124,7 @@ async function fetchTokenBalance(tokenInfo) {
|
|
|
124
124
|
tokenBalances = balances;
|
|
125
125
|
}
|
|
126
126
|
async function getTokenInfoAndFetchBalance(key) {
|
|
127
|
-
const tokenInfoResult = await
|
|
127
|
+
const tokenInfoResult = await builder.getTokenInfo(key);
|
|
128
128
|
if (tokenInfoResult.error) {
|
|
129
129
|
throw new Error(tokenInfoResult.error.msg);
|
|
130
130
|
}
|
|
@@ -138,35 +138,35 @@ async function onSelectTokenSelect(key) {
|
|
|
138
138
|
await areAllTokensSelected();
|
|
139
139
|
await getTokenInfoAndFetchBalance(key);
|
|
140
140
|
if (allTokensSelected) {
|
|
141
|
-
let result = await
|
|
141
|
+
let result = await builder.getAllTokenInfos();
|
|
142
142
|
if (result.error) {
|
|
143
143
|
throw new Error(result.error.msg);
|
|
144
144
|
}
|
|
145
145
|
let newAllTokenInfos = result.value;
|
|
146
146
|
if (allTokenInfos !== newAllTokenInfos) {
|
|
147
147
|
allTokenInfos = newAllTokenInfos;
|
|
148
|
-
|
|
148
|
+
getAllBuilderConfig();
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
152
|
const areAllTokensSelected = async () => {
|
|
153
153
|
try {
|
|
154
|
-
const areAllTokensSelectedResult =
|
|
154
|
+
const areAllTokensSelectedResult = builder.areAllTokensSelected();
|
|
155
155
|
if (areAllTokensSelectedResult.error) {
|
|
156
156
|
throw new Error(areAllTokensSelectedResult.error.msg);
|
|
157
157
|
}
|
|
158
158
|
allTokensSelected = areAllTokensSelectedResult.value;
|
|
159
159
|
if (!allTokensSelected) return;
|
|
160
|
-
const getAllTokenInfosResult = await
|
|
160
|
+
const getAllTokenInfosResult = await builder.getAllTokenInfos();
|
|
161
161
|
if (getAllTokenInfosResult.error) {
|
|
162
162
|
throw new Error(getAllTokenInfosResult.error.msg);
|
|
163
163
|
}
|
|
164
164
|
allTokenInfos = getAllTokenInfosResult.value;
|
|
165
|
-
const hasDepositsResult =
|
|
165
|
+
const hasDepositsResult = builder.hasAnyDeposit();
|
|
166
166
|
if (hasDepositsResult.error) {
|
|
167
167
|
throw new Error(hasDepositsResult.error.msg);
|
|
168
168
|
}
|
|
169
|
-
const hasVaultIdsResult =
|
|
169
|
+
const hasVaultIdsResult = builder.hasAnyVaultId();
|
|
170
170
|
if (hasVaultIdsResult.error) {
|
|
171
171
|
throw new Error(hasVaultIdsResult.error.msg);
|
|
172
172
|
}
|
|
@@ -191,7 +191,7 @@ async function handleDeployButtonClick() {
|
|
|
191
191
|
return;
|
|
192
192
|
}
|
|
193
193
|
DeploymentStepsError.clear();
|
|
194
|
-
return onDeploy(raindexClient,
|
|
194
|
+
return onDeploy(raindexClient, builder);
|
|
195
195
|
} catch (e) {
|
|
196
196
|
DeploymentStepsError.catch(e, DeploymentStepsErrorCode.ADD_ORDER_FAILED);
|
|
197
197
|
} finally {
|
|
@@ -201,7 +201,7 @@ async function handleDeployButtonClick() {
|
|
|
201
201
|
</script>
|
|
202
202
|
|
|
203
203
|
<div>
|
|
204
|
-
{#if
|
|
204
|
+
{#if builder}
|
|
205
205
|
<div class="flex max-w-3xl flex-col gap-12" in:fade>
|
|
206
206
|
{#if deployment}
|
|
207
207
|
<div class="flex max-w-2xl flex-col gap-4 text-start">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SvelteComponent } from "svelte";
|
|
2
|
-
import { type NameAndDescriptionCfg,
|
|
2
|
+
import { type NameAndDescriptionCfg, RaindexOrderBuilder, RaindexClient } from '@rainlanguage/orderbook';
|
|
3
3
|
import { type Writable } from 'svelte/store';
|
|
4
4
|
import type { AppKit } from '@reown/appkit';
|
|
5
5
|
import type { Account } from '../../types/account';
|
|
@@ -11,7 +11,7 @@ declare const __propDef: {
|
|
|
11
11
|
description: string;
|
|
12
12
|
};
|
|
13
13
|
/** Strategy details containing name and description configuration */ orderDetail: NameAndDescriptionCfg;
|
|
14
|
-
/** Handlers for deployment modals */ onDeploy: (raindexClient: RaindexClient,
|
|
14
|
+
/** Handlers for deployment modals */ onDeploy: (raindexClient: RaindexClient, builder: RaindexOrderBuilder) => void;
|
|
15
15
|
wagmiConnected: Writable<boolean>;
|
|
16
16
|
appKitModal: Writable<AppKit>;
|
|
17
17
|
account: Account;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
<script>import {
|
|
1
|
+
<script>import {
|
|
2
|
+
} from "@rainlanguage/orderbook";
|
|
2
3
|
import { Input } from "flowbite-svelte";
|
|
3
4
|
import ButtonSelectOption from "./ButtonSelectOption.svelte";
|
|
4
5
|
import DeploymentSectionHeader from "./DeploymentSectionHeader.svelte";
|
|
5
6
|
import { CloseCircleSolid } from "flowbite-svelte-icons";
|
|
6
7
|
import { onMount } from "svelte";
|
|
7
|
-
import {
|
|
8
|
+
import { useRaindexOrderBuilder } from "../../hooks/useRaindexOrderBuilder";
|
|
8
9
|
export let deposit;
|
|
9
|
-
const
|
|
10
|
+
const builder = useRaindexOrderBuilder();
|
|
10
11
|
let error = "";
|
|
11
12
|
let currentDeposit;
|
|
12
13
|
let inputValue = "";
|
|
@@ -15,7 +16,7 @@ onMount(() => {
|
|
|
15
16
|
setCurrentDeposit();
|
|
16
17
|
});
|
|
17
18
|
const getCurrentDeposit = () => {
|
|
18
|
-
const deposits =
|
|
19
|
+
const deposits = builder.getDeposits();
|
|
19
20
|
if (deposits.error) {
|
|
20
21
|
throw new Error(deposits.error.msg);
|
|
21
22
|
}
|
|
@@ -33,7 +34,7 @@ const setCurrentDeposit = () => {
|
|
|
33
34
|
const getTokenSymbol = async () => {
|
|
34
35
|
if (!deposit.token?.key) return;
|
|
35
36
|
try {
|
|
36
|
-
let result = await
|
|
37
|
+
let result = await builder.getTokenInfo(deposit.token?.key);
|
|
37
38
|
if (result.error) {
|
|
38
39
|
throw new Error(result.error.msg);
|
|
39
40
|
}
|
|
@@ -46,7 +47,7 @@ const getTokenSymbol = async () => {
|
|
|
46
47
|
async function handlePresetClick(preset) {
|
|
47
48
|
if (deposit.token?.key) {
|
|
48
49
|
inputValue = preset;
|
|
49
|
-
await
|
|
50
|
+
await builder.setDeposit(deposit.token?.key, preset);
|
|
50
51
|
try {
|
|
51
52
|
currentDeposit = getCurrentDeposit();
|
|
52
53
|
} catch (e) {
|
|
@@ -58,7 +59,7 @@ async function handleInput(e) {
|
|
|
58
59
|
if (deposit.token?.key) {
|
|
59
60
|
if (e.currentTarget instanceof HTMLInputElement) {
|
|
60
61
|
inputValue = e.currentTarget.value;
|
|
61
|
-
await
|
|
62
|
+
await builder.setDeposit(deposit.token.key, e.currentTarget.value);
|
|
62
63
|
try {
|
|
63
64
|
currentDeposit = getCurrentDeposit();
|
|
64
65
|
} catch (e2) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { SvelteComponent } from "svelte";
|
|
2
|
-
import { type
|
|
2
|
+
import { type OrderBuilderDepositCfg } from '@rainlanguage/orderbook';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
5
|
-
deposit:
|
|
5
|
+
deposit: OrderBuilderDepositCfg;
|
|
6
6
|
};
|
|
7
7
|
events: {
|
|
8
8
|
[evt: string]: CustomEvent<any>;
|
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
import ButtonSelectOption from "./ButtonSelectOption.svelte";
|
|
5
5
|
import DeploymentSectionHeader from "./DeploymentSectionHeader.svelte";
|
|
6
6
|
import { onMount } from "svelte";
|
|
7
|
-
import {
|
|
7
|
+
import { useRaindexOrderBuilder } from "../../hooks/useRaindexOrderBuilder";
|
|
8
8
|
export let fieldDefinition;
|
|
9
|
-
const
|
|
9
|
+
const builder = useRaindexOrderBuilder();
|
|
10
10
|
let currentValue;
|
|
11
11
|
let inputValue = currentValue?.value ? currentValue?.value : fieldDefinition.default || null;
|
|
12
12
|
onMount(() => {
|
|
13
13
|
try {
|
|
14
|
-
const result =
|
|
14
|
+
const result = builder.getFieldValue(fieldDefinition.binding);
|
|
15
15
|
if (result.error) {
|
|
16
16
|
throw new Error(result.error.msg);
|
|
17
17
|
}
|
|
@@ -23,8 +23,8 @@ onMount(() => {
|
|
|
23
23
|
});
|
|
24
24
|
async function handlePresetClick(preset) {
|
|
25
25
|
inputValue = preset.value;
|
|
26
|
-
|
|
27
|
-
const result =
|
|
26
|
+
builder.setFieldValue(fieldDefinition.binding, inputValue);
|
|
27
|
+
const result = builder.getFieldValue(fieldDefinition.binding);
|
|
28
28
|
if (result.error) {
|
|
29
29
|
throw new Error(result.error.msg);
|
|
30
30
|
}
|
|
@@ -32,8 +32,8 @@ async function handlePresetClick(preset) {
|
|
|
32
32
|
}
|
|
33
33
|
async function handleCustomInputChange(value) {
|
|
34
34
|
inputValue = value;
|
|
35
|
-
|
|
36
|
-
const result =
|
|
35
|
+
builder.setFieldValue(fieldDefinition.binding, inputValue);
|
|
36
|
+
const result = builder.getFieldValue(fieldDefinition.binding);
|
|
37
37
|
if (result.error) {
|
|
38
38
|
throw new Error(result.error.msg);
|
|
39
39
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { SvelteComponent } from "svelte";
|
|
2
|
-
import { type
|
|
2
|
+
import { type OrderBuilderFieldDefinitionCfg } from '@rainlanguage/orderbook';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
5
|
-
fieldDefinition:
|
|
5
|
+
fieldDefinition: OrderBuilderFieldDefinitionCfg;
|
|
6
6
|
};
|
|
7
7
|
events: {
|
|
8
8
|
[evt: string]: CustomEvent<any>;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { CheckCircleSolid, CloseCircleSolid } from "flowbite-svelte-icons";
|
|
3
3
|
import { Spinner } from "flowbite-svelte";
|
|
4
4
|
import { onMount } from "svelte";
|
|
5
|
-
import {
|
|
5
|
+
import { useRaindexOrderBuilder } from "../../hooks/useRaindexOrderBuilder";
|
|
6
6
|
import ButtonSelectOption from "./ButtonSelectOption.svelte";
|
|
7
7
|
import TokenSelectionModal from "./TokenSelectionModal.svelte";
|
|
8
8
|
import TokenBalanceComponent from "./TokenBalance.svelte";
|
|
@@ -15,10 +15,10 @@ let error = "";
|
|
|
15
15
|
let checking = false;
|
|
16
16
|
let selectionMode = "dropdown";
|
|
17
17
|
let selectedToken = null;
|
|
18
|
-
const
|
|
18
|
+
const builder = useRaindexOrderBuilder();
|
|
19
19
|
onMount(async () => {
|
|
20
20
|
try {
|
|
21
|
-
let result = await
|
|
21
|
+
let result = await builder.getTokenInfo(token.key);
|
|
22
22
|
if (result.error) {
|
|
23
23
|
throw new Error(result.error.msg);
|
|
24
24
|
}
|
|
@@ -53,7 +53,7 @@ async function saveTokenSelection(address) {
|
|
|
53
53
|
checking = true;
|
|
54
54
|
error = "";
|
|
55
55
|
try {
|
|
56
|
-
await
|
|
56
|
+
await builder.setSelectToken(token.key, address);
|
|
57
57
|
await getInfoForSelectedToken();
|
|
58
58
|
} catch (e) {
|
|
59
59
|
const errorMessage = e.message || "Invalid token address.";
|
|
@@ -64,13 +64,13 @@ async function saveTokenSelection(address) {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
function clearTokenSelection() {
|
|
67
|
-
|
|
67
|
+
builder.unsetSelectToken(token.key);
|
|
68
68
|
onSelectTokenSelect(token.key);
|
|
69
69
|
}
|
|
70
70
|
async function getInfoForSelectedToken() {
|
|
71
71
|
error = "";
|
|
72
72
|
try {
|
|
73
|
-
let result = await
|
|
73
|
+
let result = await builder.getTokenInfo(token.key);
|
|
74
74
|
if (result.error) {
|
|
75
75
|
throw new Error(result.error.msg);
|
|
76
76
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { SvelteComponent } from "svelte";
|
|
2
|
-
import type {
|
|
2
|
+
import type { OrderBuilderSelectTokensCfg } from '@rainlanguage/orderbook';
|
|
3
3
|
import type { TokenBalance } from '../../types/tokenBalance';
|
|
4
4
|
declare const __propDef: {
|
|
5
5
|
props: {
|
|
6
|
-
token:
|
|
6
|
+
token: OrderBuilderSelectTokensCfg;
|
|
7
7
|
onSelectTokenSelect: (key: string) => void;
|
|
8
8
|
tokenBalances?: Map<string, TokenBalance>;
|
|
9
9
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script>import { Input } from "flowbite-svelte";
|
|
2
2
|
import {} from "@rainlanguage/orderbook";
|
|
3
3
|
import { onMount } from "svelte";
|
|
4
|
-
import {
|
|
4
|
+
import { useRaindexOrderBuilder } from "../../hooks/useRaindexOrderBuilder";
|
|
5
5
|
import VaultIdInformation from "./VaultIdInformation.svelte";
|
|
6
|
-
const
|
|
6
|
+
const builder = useRaindexOrderBuilder();
|
|
7
7
|
export let label;
|
|
8
8
|
export let vault;
|
|
9
9
|
export let tokenBalances = /* @__PURE__ */ new Map();
|
|
@@ -12,7 +12,7 @@ let inputValue = "";
|
|
|
12
12
|
let error = "";
|
|
13
13
|
onMount(() => {
|
|
14
14
|
if (!vault.token?.key) return;
|
|
15
|
-
const result =
|
|
15
|
+
const result = builder.getVaultIds();
|
|
16
16
|
if (result.error) {
|
|
17
17
|
error = result.error.msg;
|
|
18
18
|
return;
|
|
@@ -27,7 +27,7 @@ onMount(() => {
|
|
|
27
27
|
const handleGetTokenInfo = async () => {
|
|
28
28
|
if (!vault.token?.key) return;
|
|
29
29
|
try {
|
|
30
|
-
let result = await
|
|
30
|
+
let result = await builder.getTokenInfo(vault.token?.key);
|
|
31
31
|
if (result.error) {
|
|
32
32
|
error = result.error.msg;
|
|
33
33
|
return;
|
|
@@ -45,7 +45,7 @@ const handleInput = async () => {
|
|
|
45
45
|
}
|
|
46
46
|
error = "";
|
|
47
47
|
try {
|
|
48
|
-
|
|
48
|
+
builder.setVaultId(label.toLowerCase(), vault.token.key, inputValue);
|
|
49
49
|
} catch (e) {
|
|
50
50
|
const errorMessage = e.message ? e.message : "Error setting vault ID.";
|
|
51
51
|
error = errorMessage;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script>import { Input, Button, Modal } from "flowbite-svelte";
|
|
2
2
|
import { SearchOutline, CheckCircleSolid, ChevronDownSolid } from "flowbite-svelte-icons";
|
|
3
|
-
import {
|
|
3
|
+
import { useRaindexOrderBuilder } from "../../hooks/useRaindexOrderBuilder";
|
|
4
4
|
import { onMount, tick } from "svelte";
|
|
5
5
|
export let selectedToken = null;
|
|
6
6
|
export let onSelect;
|
|
@@ -9,10 +9,10 @@ let searchQuery = "";
|
|
|
9
9
|
let tokens = [];
|
|
10
10
|
let isSearching = false;
|
|
11
11
|
let failedImages = /* @__PURE__ */ new Set();
|
|
12
|
-
const
|
|
12
|
+
const builder = useRaindexOrderBuilder();
|
|
13
13
|
async function loadTokens(search) {
|
|
14
14
|
isSearching = true;
|
|
15
|
-
const result = await
|
|
15
|
+
const result = await builder.getAllTokens(search);
|
|
16
16
|
if (result.error) {
|
|
17
17
|
tokens = [];
|
|
18
18
|
} else {
|
|
@@ -80,11 +80,11 @@ const vaultTypesMap = [
|
|
|
80
80
|
getter: "inputsOutputsList"
|
|
81
81
|
}
|
|
82
82
|
];
|
|
83
|
-
const
|
|
83
|
+
const formatBuilderState = (builderState) => {
|
|
84
84
|
try {
|
|
85
|
-
return JSON.stringify(JSON.parse(
|
|
85
|
+
return JSON.stringify(JSON.parse(builderState), null, 2);
|
|
86
86
|
} catch {
|
|
87
|
-
return "Invalid
|
|
87
|
+
return "Invalid builder state";
|
|
88
88
|
}
|
|
89
89
|
};
|
|
90
90
|
</script>
|
|
@@ -301,12 +301,12 @@ const formatGuiState = (guiState) => {
|
|
|
301
301
|
></CodeMirrorRainlang>
|
|
302
302
|
</div>
|
|
303
303
|
</TabItem>
|
|
304
|
-
{#if data.
|
|
305
|
-
<TabItem title="
|
|
304
|
+
{#if data.orderBuilderState}
|
|
305
|
+
<TabItem title="Builder State">
|
|
306
306
|
<div class="mb-4">
|
|
307
307
|
<div class="overflow-auto rounded-lg border bg-gray-50 p-4 dark:bg-gray-800">
|
|
308
|
-
<pre class="text-sm" data-testid="
|
|
309
|
-
{
|
|
308
|
+
<pre class="text-sm" data-testid="builder-state-json">
|
|
309
|
+
{formatBuilderState(data.orderBuilderState)}
|
|
310
310
|
</pre>
|
|
311
311
|
</div>
|
|
312
312
|
</div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare enum DeploymentStepsErrorCode {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
NO_BUILDER_PROVIDER = "No builder provider found.",
|
|
3
|
+
NO_BUILDER = "Error loading builder.",
|
|
4
4
|
NO_LOCAL_DB_PROVIDER = "No Local DB provider found.",
|
|
5
5
|
NO_STRATEGY = "No valid order exists at this URL",
|
|
6
6
|
NO_SELECT_TOKENS = "Error loading tokens",
|
|
@@ -9,14 +9,14 @@ export declare enum DeploymentStepsErrorCode {
|
|
|
9
9
|
NO_DEPOSITS = "Error loading deposits",
|
|
10
10
|
NO_TOKEN_INPUTS = "Error loading token inputs",
|
|
11
11
|
NO_TOKEN_OUTPUTS = "Error loading token outputs",
|
|
12
|
-
|
|
12
|
+
NO_BUILDER_DETAILS = "Error getting builder details",
|
|
13
13
|
NO_CHAIN = "Unsupported chain ID",
|
|
14
14
|
NO_NETWORK_KEY = "No network key found",
|
|
15
15
|
NO_AVAILABLE_TOKENS = "Error loading available tokens",
|
|
16
16
|
SERIALIZE_ERROR = "Error serializing state",
|
|
17
17
|
ADD_ORDER_FAILED = "Failed to add order",
|
|
18
18
|
NO_WALLET = "No account address found",
|
|
19
|
-
|
|
19
|
+
NO_BUILDER_CONFIG = "Error getting builder configuration",
|
|
20
20
|
NO_RAINDEX_CLIENT_PROVIDER = "No Raindex client provider found"
|
|
21
21
|
}
|
|
22
22
|
export declare class DeploymentStepsError extends Error {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { writable } from 'svelte/store';
|
|
2
2
|
export var DeploymentStepsErrorCode;
|
|
3
3
|
(function (DeploymentStepsErrorCode) {
|
|
4
|
-
DeploymentStepsErrorCode["
|
|
5
|
-
DeploymentStepsErrorCode["
|
|
4
|
+
DeploymentStepsErrorCode["NO_BUILDER_PROVIDER"] = "No builder provider found.";
|
|
5
|
+
DeploymentStepsErrorCode["NO_BUILDER"] = "Error loading builder.";
|
|
6
6
|
DeploymentStepsErrorCode["NO_LOCAL_DB_PROVIDER"] = "No Local DB provider found.";
|
|
7
7
|
DeploymentStepsErrorCode["NO_STRATEGY"] = "No valid order exists at this URL";
|
|
8
8
|
DeploymentStepsErrorCode["NO_SELECT_TOKENS"] = "Error loading tokens";
|
|
@@ -11,14 +11,14 @@ export var DeploymentStepsErrorCode;
|
|
|
11
11
|
DeploymentStepsErrorCode["NO_DEPOSITS"] = "Error loading deposits";
|
|
12
12
|
DeploymentStepsErrorCode["NO_TOKEN_INPUTS"] = "Error loading token inputs";
|
|
13
13
|
DeploymentStepsErrorCode["NO_TOKEN_OUTPUTS"] = "Error loading token outputs";
|
|
14
|
-
DeploymentStepsErrorCode["
|
|
14
|
+
DeploymentStepsErrorCode["NO_BUILDER_DETAILS"] = "Error getting builder details";
|
|
15
15
|
DeploymentStepsErrorCode["NO_CHAIN"] = "Unsupported chain ID";
|
|
16
16
|
DeploymentStepsErrorCode["NO_NETWORK_KEY"] = "No network key found";
|
|
17
17
|
DeploymentStepsErrorCode["NO_AVAILABLE_TOKENS"] = "Error loading available tokens";
|
|
18
18
|
DeploymentStepsErrorCode["SERIALIZE_ERROR"] = "Error serializing state";
|
|
19
19
|
DeploymentStepsErrorCode["ADD_ORDER_FAILED"] = "Failed to add order";
|
|
20
20
|
DeploymentStepsErrorCode["NO_WALLET"] = "No account address found";
|
|
21
|
-
DeploymentStepsErrorCode["
|
|
21
|
+
DeploymentStepsErrorCode["NO_BUILDER_CONFIG"] = "Error getting builder configuration";
|
|
22
22
|
DeploymentStepsErrorCode["NO_RAINDEX_CLIENT_PROVIDER"] = "No Raindex client provider found";
|
|
23
23
|
})(DeploymentStepsErrorCode || (DeploymentStepsErrorCode = {}));
|
|
24
24
|
export class DeploymentStepsError extends Error {
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { getContext } from 'svelte';
|
|
2
|
+
import { RaindexOrderBuilder } from '@rainlanguage/orderbook';
|
|
3
|
+
import { DeploymentStepsError, DeploymentStepsErrorCode } from '../errors/DeploymentStepsError';
|
|
4
|
+
export const RAINDEX_ORDER_BUILDER_CONTEXT_KEY = 'raindex-order-builder-context';
|
|
5
|
+
export function useRaindexOrderBuilder() {
|
|
6
|
+
const builder = getContext(RAINDEX_ORDER_BUILDER_CONTEXT_KEY);
|
|
7
|
+
if (!builder) {
|
|
8
|
+
DeploymentStepsError.catch(null, DeploymentStepsErrorCode.NO_BUILDER_PROVIDER);
|
|
9
|
+
}
|
|
10
|
+
return builder;
|
|
11
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -92,7 +92,7 @@ export { lightCodeMirrorTheme, darkCodeMirrorTheme } from './utils/codeMirrorThe
|
|
|
92
92
|
export { cachedWritableStore, cachedWritableIntOptional, cachedWritableStringOptional, cachedWritableString } from './storesGeneric/cachedWritableStore';
|
|
93
93
|
export { default as logoLight } from './assets/logo-light.svg';
|
|
94
94
|
export { default as logoDark } from './assets/logo-dark.svg';
|
|
95
|
-
export { default as
|
|
95
|
+
export { default as RaindexOrderBuilderProvider } from './providers/RaindexOrderBuilderProvider.svelte';
|
|
96
96
|
export { default as RaindexClientProvider } from './providers/RaindexClientProvider.svelte';
|
|
97
97
|
export { default as WalletProvider } from './providers/wallet/WalletProvider.svelte';
|
|
98
98
|
export { default as RegistryProvider } from './providers/registry/RegistryProvider.svelte';
|
|
@@ -100,7 +100,7 @@ export { default as ToastProvider } from './providers/toasts/ToastProvider.svelt
|
|
|
100
100
|
export { default as TransactionProvider } from './providers/transactions/TransactionProvider.svelte';
|
|
101
101
|
export { default as LocalDbProvider } from './providers/LocalDbProvider.svelte';
|
|
102
102
|
export { default as DotrainRegistryProvider } from './providers/dotrainRegistry/DotrainRegistryProvider.svelte';
|
|
103
|
-
export {
|
|
103
|
+
export { useRaindexOrderBuilder } from './hooks/useRaindexOrderBuilder';
|
|
104
104
|
export { useRaindexClient, RAINDEX_CLIENT_CONTEXT_KEY } from './hooks/useRaindexClient';
|
|
105
105
|
export { useLocalDb } from './hooks/useLocalDb';
|
|
106
106
|
export { useAccount } from './providers/wallet/useAccount';
|
package/dist/index.js
CHANGED
|
@@ -93,7 +93,7 @@ export { cachedWritableStore, cachedWritableIntOptional, cachedWritableStringOpt
|
|
|
93
93
|
export { default as logoLight } from './assets/logo-light.svg';
|
|
94
94
|
export { default as logoDark } from './assets/logo-dark.svg';
|
|
95
95
|
// Providers
|
|
96
|
-
export { default as
|
|
96
|
+
export { default as RaindexOrderBuilderProvider } from './providers/RaindexOrderBuilderProvider.svelte';
|
|
97
97
|
export { default as RaindexClientProvider } from './providers/RaindexClientProvider.svelte';
|
|
98
98
|
export { default as WalletProvider } from './providers/wallet/WalletProvider.svelte';
|
|
99
99
|
export { default as RegistryProvider } from './providers/registry/RegistryProvider.svelte';
|
|
@@ -102,7 +102,7 @@ export { default as TransactionProvider } from './providers/transactions/Transac
|
|
|
102
102
|
export { default as LocalDbProvider } from './providers/LocalDbProvider.svelte';
|
|
103
103
|
export { default as DotrainRegistryProvider } from './providers/dotrainRegistry/DotrainRegistryProvider.svelte';
|
|
104
104
|
// Hooks
|
|
105
|
-
export {
|
|
105
|
+
export { useRaindexOrderBuilder } from './hooks/useRaindexOrderBuilder';
|
|
106
106
|
export { useRaindexClient, RAINDEX_CLIENT_CONTEXT_KEY } from './hooks/useRaindexClient';
|
|
107
107
|
export { useLocalDb } from './hooks/useLocalDb';
|
|
108
108
|
export { useAccount } from './providers/wallet/useAccount';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<script>import { setContext } from "svelte";
|
|
2
|
+
import { RaindexOrderBuilder } from "@rainlanguage/orderbook";
|
|
3
|
+
import { RAINDEX_ORDER_BUILDER_CONTEXT_KEY } from "../hooks/useRaindexOrderBuilder";
|
|
4
|
+
export let builder;
|
|
5
|
+
setContext(RAINDEX_ORDER_BUILDER_CONTEXT_KEY, builder);
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<slot />
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
import { RaindexOrderBuilder } from '@rainlanguage/orderbook';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
builder: RaindexOrderBuilder;
|
|
6
|
+
};
|
|
7
|
+
events: {
|
|
8
|
+
[evt: string]: CustomEvent<any>;
|
|
9
|
+
};
|
|
10
|
+
slots: {
|
|
11
|
+
default: {};
|
|
12
|
+
};
|
|
13
|
+
exports?: {} | undefined;
|
|
14
|
+
bindings?: string | undefined;
|
|
15
|
+
};
|
|
16
|
+
export type RaindexOrderBuilderProviderProps = typeof __propDef.props;
|
|
17
|
+
export type RaindexOrderBuilderProviderEvents = typeof __propDef.events;
|
|
18
|
+
export type RaindexOrderBuilderProviderSlots = typeof __propDef.slots;
|
|
19
|
+
export default class RaindexOrderBuilderProvider extends SvelteComponent<RaindexOrderBuilderProviderProps, RaindexOrderBuilderProviderEvents, RaindexOrderBuilderProviderSlots> {
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function handleShareChoices(
|
|
1
|
+
import type { RaindexOrderBuilder } from '@rainlanguage/orderbook';
|
|
2
|
+
export declare function handleShareChoices(builder: RaindexOrderBuilder, registryUrl: string): Promise<void>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { page } from '$app/stores';
|
|
2
2
|
import { get } from 'svelte/store';
|
|
3
|
-
export async function handleShareChoices(
|
|
3
|
+
export async function handleShareChoices(builder, registryUrl) {
|
|
4
4
|
// get the current url
|
|
5
5
|
const url = get(page).url;
|
|
6
6
|
// get the current state
|
|
7
|
-
const result =
|
|
7
|
+
const result = builder.serializeState();
|
|
8
8
|
if (result.error) {
|
|
9
9
|
throw new Error(result.error.msg);
|
|
10
10
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RaindexOrderBuilder } from '@rainlanguage/orderbook';
|
|
2
2
|
/**
|
|
3
3
|
* Fetches and parses a file registry from a given URL.
|
|
4
4
|
* The registry is expected to be a text file where each line contains a file name and URL separated by a space.
|
|
@@ -56,7 +56,7 @@ export const fetchRegistryDotrains = async (url) => {
|
|
|
56
56
|
export async function validateOrders(registryDotrains) {
|
|
57
57
|
const ordersPromises = registryDotrains.map(async (registryDotrain) => {
|
|
58
58
|
try {
|
|
59
|
-
const result = await
|
|
59
|
+
const result = await RaindexOrderBuilder.getOrderDetails(registryDotrain.dotrain);
|
|
60
60
|
if (result.error) {
|
|
61
61
|
throw new Error(result.error.msg);
|
|
62
62
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rainlanguage/ui-components",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.236",
|
|
4
4
|
"description": "A component library for building Svelte applications to be used with Raindex.",
|
|
5
5
|
"license": "LicenseRef-DCL-1.0",
|
|
6
6
|
"author": "Rain Open Source Software Ltd",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"@fontsource/dm-sans": "5.1.0",
|
|
58
58
|
"@imask/svelte": "7.6.1",
|
|
59
59
|
"@observablehq/plot": "0.6.16",
|
|
60
|
-
"@rainlanguage/orderbook": "0.0.1-alpha.
|
|
60
|
+
"@rainlanguage/orderbook": "0.0.1-alpha.237",
|
|
61
61
|
"@reown/appkit": "1.6.4",
|
|
62
62
|
"@reown/appkit-adapter-wagmi": "1.6.4",
|
|
63
63
|
"@sentry/sveltekit": "7.120.0",
|
package/dist/hooks/useGui.d.ts
DELETED
package/dist/hooks/useGui.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { getContext } from 'svelte';
|
|
2
|
-
import { DotrainOrderGui } from '@rainlanguage/orderbook';
|
|
3
|
-
import { DeploymentStepsError, DeploymentStepsErrorCode } from '../errors/DeploymentStepsError';
|
|
4
|
-
export const GUI_CONTEXT_KEY = 'gui-context';
|
|
5
|
-
export function useGui() {
|
|
6
|
-
const gui = getContext(GUI_CONTEXT_KEY);
|
|
7
|
-
if (!gui) {
|
|
8
|
-
DeploymentStepsError.catch(null, DeploymentStepsErrorCode.NO_GUI_PROVIDER);
|
|
9
|
-
}
|
|
10
|
-
return gui;
|
|
11
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
|
2
|
-
import { DotrainOrderGui } from '@rainlanguage/orderbook';
|
|
3
|
-
declare const __propDef: {
|
|
4
|
-
props: {
|
|
5
|
-
gui: DotrainOrderGui;
|
|
6
|
-
};
|
|
7
|
-
events: {
|
|
8
|
-
[evt: string]: CustomEvent<any>;
|
|
9
|
-
};
|
|
10
|
-
slots: {
|
|
11
|
-
default: {};
|
|
12
|
-
};
|
|
13
|
-
exports?: {} | undefined;
|
|
14
|
-
bindings?: string | undefined;
|
|
15
|
-
};
|
|
16
|
-
export type GuiProviderProps = typeof __propDef.props;
|
|
17
|
-
export type GuiProviderEvents = typeof __propDef.events;
|
|
18
|
-
export type GuiProviderSlots = typeof __propDef.slots;
|
|
19
|
-
export default class GuiProvider extends SvelteComponent<GuiProviderProps, GuiProviderEvents, GuiProviderSlots> {
|
|
20
|
-
}
|
|
21
|
-
export {};
|