@mantle-rwa/react 0.1.0
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/cjs/components/InvestorDashboard/index.js +156 -0
- package/dist/cjs/components/InvestorDashboard/index.js.map +1 -0
- package/dist/cjs/components/KYCFlow/index.js +231 -0
- package/dist/cjs/components/KYCFlow/index.js.map +1 -0
- package/dist/cjs/components/TokenMintForm/index.js +286 -0
- package/dist/cjs/components/TokenMintForm/index.js.map +1 -0
- package/dist/cjs/components/YieldCalculator/index.js +245 -0
- package/dist/cjs/components/YieldCalculator/index.js.map +1 -0
- package/dist/cjs/components/index.js +15 -0
- package/dist/cjs/components/index.js.map +1 -0
- package/dist/cjs/hooks/index.js +9 -0
- package/dist/cjs/hooks/index.js.map +1 -0
- package/dist/cjs/hooks/useRWA.js +54 -0
- package/dist/cjs/hooks/useRWA.js.map +1 -0
- package/dist/cjs/index.js +20 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/types/index.js +10 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/esm/components/InvestorDashboard/index.js +153 -0
- package/dist/esm/components/InvestorDashboard/index.js.map +1 -0
- package/dist/esm/components/KYCFlow/index.js +228 -0
- package/dist/esm/components/KYCFlow/index.js.map +1 -0
- package/dist/esm/components/TokenMintForm/index.js +279 -0
- package/dist/esm/components/TokenMintForm/index.js.map +1 -0
- package/dist/esm/components/YieldCalculator/index.js +236 -0
- package/dist/esm/components/YieldCalculator/index.js.map +1 -0
- package/dist/esm/components/index.js +8 -0
- package/dist/esm/components/index.js.map +1 -0
- package/dist/esm/hooks/index.js +5 -0
- package/dist/esm/hooks/index.js.map +1 -0
- package/dist/esm/hooks/useRWA.js +51 -0
- package/dist/esm/hooks/useRWA.js.map +1 -0
- package/dist/esm/index.js +12 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/types/index.js +6 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/styles.css +1 -0
- package/dist/types/components/InvestorDashboard/index.d.ts +25 -0
- package/dist/types/components/InvestorDashboard/index.d.ts.map +1 -0
- package/dist/types/components/KYCFlow/index.d.ts +25 -0
- package/dist/types/components/KYCFlow/index.d.ts.map +1 -0
- package/dist/types/components/TokenMintForm/index.d.ts +60 -0
- package/dist/types/components/TokenMintForm/index.d.ts.map +1 -0
- package/dist/types/components/YieldCalculator/index.d.ts +59 -0
- package/dist/types/components/YieldCalculator/index.d.ts.map +1 -0
- package/dist/types/components/index.d.ts +8 -0
- package/dist/types/components/index.d.ts.map +1 -0
- package/dist/types/hooks/index.d.ts +5 -0
- package/dist/types/hooks/index.d.ts.map +1 -0
- package/dist/types/hooks/useRWA.d.ts +22 -0
- package/dist/types/hooks/useRWA.d.ts.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +177 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/package.json +66 -0
- package/src/components/InvestorDashboard/index.tsx +359 -0
- package/src/components/KYCFlow/index.tsx +434 -0
- package/src/components/TokenMintForm/index.tsx +590 -0
- package/src/components/YieldCalculator/index.tsx +541 -0
- package/src/components/index.ts +8 -0
- package/src/hooks/index.ts +5 -0
- package/src/hooks/useRWA.ts +70 -0
- package/src/index.ts +32 -0
- package/src/styles/index.css +197 -0
- package/src/types/index.ts +193 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useRWA hook for accessing RWA SDK functionality in React components
|
|
3
|
+
*/
|
|
4
|
+
import { useState, useEffect } from 'react';
|
|
5
|
+
/**
|
|
6
|
+
* Hook for accessing RWA SDK functionality
|
|
7
|
+
* Provides connection status and SDK client access
|
|
8
|
+
*/
|
|
9
|
+
export function useRWA() {
|
|
10
|
+
const [isInitialized, setIsInitialized] = useState(false);
|
|
11
|
+
const [chainId, setChainId] = useState(undefined);
|
|
12
|
+
const [address, setAddress] = useState(undefined);
|
|
13
|
+
const [isConnected, setIsConnected] = useState(false);
|
|
14
|
+
const [error, setError] = useState(null);
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
// Initialize SDK client
|
|
17
|
+
const initializeSDK = async () => {
|
|
18
|
+
try {
|
|
19
|
+
// Check if window.ethereum is available (browser wallet)
|
|
20
|
+
if (typeof window !== 'undefined' && window.ethereum) {
|
|
21
|
+
const accounts = await window.ethereum.request?.({
|
|
22
|
+
method: 'eth_accounts',
|
|
23
|
+
});
|
|
24
|
+
if (accounts && accounts.length > 0) {
|
|
25
|
+
setAddress(accounts[0]);
|
|
26
|
+
setIsConnected(true);
|
|
27
|
+
}
|
|
28
|
+
const chainIdHex = await window.ethereum.request?.({
|
|
29
|
+
method: 'eth_chainId',
|
|
30
|
+
});
|
|
31
|
+
if (chainIdHex) {
|
|
32
|
+
setChainId(parseInt(chainIdHex, 16));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
setIsInitialized(true);
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
setError(err instanceof Error ? err : new Error('Failed to initialize RWA SDK'));
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
initializeSDK();
|
|
42
|
+
}, []);
|
|
43
|
+
return {
|
|
44
|
+
isInitialized,
|
|
45
|
+
chainId,
|
|
46
|
+
address,
|
|
47
|
+
isConnected,
|
|
48
|
+
error,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=useRWA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRWA.js","sourceRoot":"","sources":["../../../src/hooks/useRWA.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG5C;;;GAGG;AACH,MAAM,UAAU,MAAM;IAClB,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAqB,SAAS,CAAC,CAAC;IACtE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAqB,SAAS,CAAC,CAAC;IACtE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACX,wBAAwB;QACxB,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC;gBACD,yDAAyD;gBACzD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACnD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;wBAC7C,MAAM,EAAE,cAAc;qBACzB,CAAyB,CAAC;oBAE3B,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAClC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBACxB,cAAc,CAAC,IAAI,CAAC,CAAC;oBACzB,CAAC;oBAED,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;wBAC/C,MAAM,EAAE,aAAa;qBACxB,CAAuB,CAAC;oBAEzB,IAAI,UAAU,EAAE,CAAC;wBACb,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;oBACzC,CAAC;gBACL,CAAC;gBAED,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACrF,CAAC;QACL,CAAC,CAAC;QAEF,aAAa,EAAE,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACH,aAAa;QACb,OAAO;QACP,OAAO;QACP,WAAW;QACX,KAAK;KACR,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @mantle-rwa/react
|
|
3
|
+
* React components for Real-World Asset tokenization on Mantle Network
|
|
4
|
+
*/
|
|
5
|
+
// Components
|
|
6
|
+
export { KYCFlow } from './components/KYCFlow';
|
|
7
|
+
export { InvestorDashboard } from './components/InvestorDashboard';
|
|
8
|
+
export { TokenMintForm } from './components/TokenMintForm';
|
|
9
|
+
export { YieldCalculator } from './components/YieldCalculator';
|
|
10
|
+
// Hooks
|
|
11
|
+
export { useRWA } from './hooks/useRWA';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,aAAa;AACb,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,QAAQ;AACR,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,6CAA6C;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.table{display:table}.grid{display:grid}.h-3{height:.75rem}.h-4{height:1rem}.h-48{height:12rem}.h-8{height:2rem}.h-full{height:100%}.max-h-40{max-height:10rem}.w-16{width:4rem}.w-24{width:6rem}.w-3{width:.75rem}.w-4{width:1rem}.w-48{width:12rem}.w-8{width:2rem}.w-full{width:100%}.max-w-\[100px\]{max-width:100px}.flex-1{flex:1 1 0%}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:1rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.border-mantle-600{--tw-border-opacity:1;border-color:rgb(22 163 74/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.border-t-transparent{border-top-color:transparent}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-mantle-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity,1))}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-mantle-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity,1))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.rwa-card{border-radius:.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));padding:1rem;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rwa-card:is(.dark *){--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.rwa-button{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.rwa-button:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-offset-width:2px}.rwa-button:disabled{cursor:not-allowed;opacity:.5}.rwa-button-primary{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.rwa-button-primary:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-offset-width:2px}.rwa-button-primary:disabled{cursor:not-allowed;opacity:.5}.rwa-button-primary:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.rwa-button-primary:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.rwa-button-secondary{border-width:1px;--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.rwa-button-secondary:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-offset-width:2px}.rwa-button-secondary:disabled{cursor:not-allowed;opacity:.5}.rwa-button-secondary:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.rwa-button-secondary:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.rwa-button-secondary:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.rwa-button-secondary:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.rwa-input{display:block;width:100%;border-radius:.375rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1));padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem}.rwa-input::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.rwa-input::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.rwa-input:focus{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1));outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.rwa-input:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rwa-input:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity,1))}.rwa-input:is(.dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity,1))}.rwa-label{display:block;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.rwa-label:is(.dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.rwa-kyc-flow{border-radius:.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));padding:1.5rem;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rwa-kyc-flow.dark{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.rwa-kyc-header{margin-bottom:1rem;font-size:1.125rem;line-height:1.75rem;font-weight:600;--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-header{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rwa-kyc-error{margin-bottom:1rem;display:flex;align-items:center;gap:.5rem;border-radius:.375rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1));padding:.75rem;--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-error{--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1));background-color:rgba(127,29,29,.2);--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.rwa-kyc-error-icon{flex-shrink:0}.rwa-kyc-provider{margin-bottom:1.5rem;display:flex;align-items:center;gap:.75rem;border-radius:.375rem;--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1));padding:.75rem}.rwa-kyc-flow.dark .rwa-kyc-provider{background-color:rgba(55,65,81,.5)}.rwa-kyc-provider-logo{font-size:1.5rem;line-height:2rem}.rwa-kyc-provider-details{display:flex;flex-direction:column}.rwa-kyc-provider-name{font-weight:500;--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-provider-name{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rwa-kyc-provider-description{font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-provider-description{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.rwa-kyc-steps{margin-bottom:1.5rem}.rwa-kyc-steps>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.rwa-kyc-step{display:flex;align-items:flex-start;gap:.75rem;border-radius:.375rem;padding:.75rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.rwa-kyc-step.pending{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-step.pending{background-color:rgba(55,65,81,.3)}.rwa-kyc-step.in_progress{border-width:1px;--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-step.in_progress{--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1));background-color:rgba(30,58,138,.2)}.rwa-kyc-step.completed{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-step.completed{background-color:rgba(20,83,45,.2)}.rwa-kyc-step.failed{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-step.failed{background-color:rgba(127,29,29,.2)}.rwa-kyc-step-indicator{display:flex;height:2rem;width:2rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:9999px;font-size:.875rem;line-height:1.25rem;font-weight:500}.rwa-kyc-step.pending .rwa-kyc-step-indicator{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-step.pending .rwa-kyc-step-indicator{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.rwa-kyc-step.in_progress .rwa-kyc-step-indicator{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rwa-kyc-step.completed .rwa-kyc-step-indicator{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rwa-kyc-step.failed .rwa-kyc-step-indicator{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rwa-kyc-step-content{display:flex;flex-direction:column}.rwa-kyc-step-label{font-weight:500;--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-step-label{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rwa-kyc-step-description{margin-top:.125rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-step-description{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.rwa-kyc-actions{margin-top:1.5rem}.rwa-kyc-actions button{width:100%}.rwa-kyc-success{display:flex;align-items:center;justify-content:center;gap:.5rem;border-radius:.375rem;--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1));padding:.75rem;font-weight:500;--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-success{background-color:rgba(20,83,45,.2);--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.rwa-kyc-success-icon{font-size:1.125rem;line-height:1.75rem}.rwa-kyc-session{margin-top:1rem;text-align:center}.file\:mr-4::file-selector-button{margin-right:1rem}.file\:rounded-md::file-selector-button{border-radius:.375rem}.file\:border-0::file-selector-button{border-width:0}.file\:bg-mantle-50::file-selector-button{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.file\:px-4::file-selector-button{padding-left:1rem;padding-right:1rem}.file\:py-2::file-selector-button{padding-top:.5rem;padding-bottom:.5rem}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-mantle-700::file-selector-button{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.hover\:text-mantle-700:hover{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.hover\:file\:bg-mantle-100::file-selector-button:hover{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.dark\:border-gray-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.dark\:border-red-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:bg-green-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.dark\:bg-green-900\/20:is(.dark *){background-color:rgba(20,83,45,.2)}.dark\:bg-red-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.dark\:bg-red-900\/20:is(.dark *){background-color:rgba(127,29,29,.2)}.dark\:bg-yellow-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(113 63 18/var(--tw-bg-opacity,1))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-green-200:is(.dark *){--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.dark\:text-red-200:is(.dark *){--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:text-yellow-200:is(.dark *){--tw-text-opacity:1;color:rgb(254 240 138/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* InvestorDashboard Component
|
|
3
|
+
* Displays investor portfolio, yield history, and compliance status
|
|
4
|
+
*
|
|
5
|
+
* @see Requirements 11.1, 11.2, 11.3, 11.4, 11.5
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import type { InvestorDashboardProps } from '../../types';
|
|
9
|
+
/**
|
|
10
|
+
* InvestorDashboard component for displaying investor portfolio
|
|
11
|
+
* Shows token balance, yield history, and compliance status
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* <InvestorDashboard
|
|
16
|
+
* tokenAddress="0x..."
|
|
17
|
+
* yieldDistributorAddress="0x..."
|
|
18
|
+
* kycRegistryAddress="0x..."
|
|
19
|
+
* onClaimYield={(id) => console.log('Claiming:', id)}
|
|
20
|
+
* />
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare function InvestorDashboard({ tokenAddress, yieldDistributorAddress, kycRegistryAddress, theme, onClaimYield, showPortfolioValue, priceOracle: _priceOracle, }: InvestorDashboardProps): React.ReactElement;
|
|
24
|
+
export default InvestorDashboard;
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/InvestorDashboard/index.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAAqB,MAAM,aAAa,CAAC;AAmC7E;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,EAC9B,YAAY,EACZ,uBAAuB,EACvB,kBAAkB,EAClB,KAAe,EACf,YAAY,EACZ,kBAAyB,EACzB,WAAW,EAAE,YAAY,GAC5B,EAAE,sBAAsB,GAAG,KAAK,CAAC,YAAY,CAmS7C;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KYCFlow Component
|
|
3
|
+
* Multi-step KYC verification flow with provider integration
|
|
4
|
+
*
|
|
5
|
+
* @see Requirements 10.1, 10.2, 10.3, 10.4, 10.5
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import type { KYCFlowProps } from '../../types';
|
|
9
|
+
/**
|
|
10
|
+
* KYCFlow component for investor verification
|
|
11
|
+
* Supports Persona, Synaps, and Jumio providers
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* <KYCFlow
|
|
16
|
+
* provider="persona"
|
|
17
|
+
* requiredFields={['identity', 'accreditation']}
|
|
18
|
+
* onComplete={(result) => console.log('KYC complete:', result)}
|
|
19
|
+
* theme="light"
|
|
20
|
+
* />
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare function KYCFlow({ provider, onComplete, onError, requiredFields, theme, customStyles, registryAddress, autoUpdateRegistry, }: KYCFlowProps): React.ReactElement;
|
|
24
|
+
export default KYCFlow;
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/KYCFlow/index.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAoD,MAAM,OAAO,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAA+B,MAAM,aAAa,CAAC;AAmE7E;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,OAAO,EACP,cAAc,EACd,KAAe,EACf,YAAY,EACZ,eAAe,EACf,kBAA0B,GAC7B,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CA6UnC;AAED,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TokenMintForm Component
|
|
3
|
+
* Form for minting RWA tokens with compliance pre-checks
|
|
4
|
+
*
|
|
5
|
+
* @see Requirements 12.1, 12.2, 12.3, 12.4
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import type { TokenMintFormProps, BatchMintEntry } from '../../types';
|
|
9
|
+
/**
|
|
10
|
+
* Compliance check result interface
|
|
11
|
+
*/
|
|
12
|
+
export interface ComplianceCheckResult {
|
|
13
|
+
eligible: boolean;
|
|
14
|
+
reason?: string;
|
|
15
|
+
checks?: Array<{
|
|
16
|
+
name: string;
|
|
17
|
+
passed: boolean;
|
|
18
|
+
details?: string;
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Parse CSV content into batch mint entries
|
|
23
|
+
* Exported for testing purposes
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseCSV(content: string, maxBatchSize: number): {
|
|
26
|
+
entries: BatchMintEntry[];
|
|
27
|
+
errors: string[];
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Validate Ethereum address format
|
|
31
|
+
*/
|
|
32
|
+
export declare function validateAddress(address: string): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Validate amount is a positive number
|
|
35
|
+
*/
|
|
36
|
+
export declare function validateAmount(value: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Check compliance for a recipient address
|
|
39
|
+
* This is the core compliance pre-check function (Property 25)
|
|
40
|
+
* In production, this would call the KYC registry contract
|
|
41
|
+
*/
|
|
42
|
+
export declare function checkCompliance(address: string, _kycRegistryAddress?: string): Promise<ComplianceCheckResult>;
|
|
43
|
+
/**
|
|
44
|
+
* TokenMintForm component for issuing tokens to investors
|
|
45
|
+
* Supports single and batch minting with compliance pre-checks
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```tsx
|
|
49
|
+
* <TokenMintForm
|
|
50
|
+
* tokenAddress="0x..."
|
|
51
|
+
* kycRegistryAddress="0x..."
|
|
52
|
+
* onMintComplete={(hash, recipient, amount) => console.log('Minted:', hash)}
|
|
53
|
+
* allowBatchMint={true}
|
|
54
|
+
* />
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export declare function TokenMintForm({ tokenAddress: _tokenAddress, // Reserved for future contract interaction
|
|
58
|
+
kycRegistryAddress, onMintComplete, onError, allowBatchMint, maxBatchSize, theme, }: TokenMintFormProps): React.ReactElement;
|
|
59
|
+
export default TokenMintForm;
|
|
60
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/TokenMintForm/index.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACN;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CA+C/G;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACjC,OAAO,EAAE,MAAM,EACf,mBAAmB,CAAC,EAAE,MAAM,GAC7B,OAAO,CAAC,qBAAqB,CAAC,CA6ChC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,EAC1B,YAAY,EAAE,aAAa,EAAE,2CAA2C;AACxE,kBAAkB,EAClB,cAAc,EACd,OAAO,EACP,cAAsB,EACtB,YAAkB,EAClB,KAAe,GAClB,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAmazC;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YieldCalculator Component
|
|
3
|
+
* Preview and calculate yield distributions before execution
|
|
4
|
+
*
|
|
5
|
+
* @see Requirements 13.1, 13.2, 13.3, 13.4
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import type { YieldCalculatorProps, DistributionPreviewEntry } from '../../types';
|
|
9
|
+
/**
|
|
10
|
+
* Calculate proportional yield distribution for holders
|
|
11
|
+
* This is the core calculation function for Property 26
|
|
12
|
+
*
|
|
13
|
+
* @param totalAmount - Total amount to distribute (in smallest unit)
|
|
14
|
+
* @param holders - Array of holder addresses and balances
|
|
15
|
+
* @returns Array of distribution preview entries
|
|
16
|
+
*/
|
|
17
|
+
export declare function calculateDistribution(totalAmount: bigint, holders: Array<{
|
|
18
|
+
address: string;
|
|
19
|
+
balance: bigint;
|
|
20
|
+
}>): DistributionPreviewEntry[];
|
|
21
|
+
/**
|
|
22
|
+
* Calculate the sum of all yield amounts in a distribution
|
|
23
|
+
* Used to verify Property 26 (distribution accuracy)
|
|
24
|
+
*/
|
|
25
|
+
export declare function sumDistributionAmounts(entries: DistributionPreviewEntry[]): bigint;
|
|
26
|
+
/**
|
|
27
|
+
* Format a bigint amount for display with decimals
|
|
28
|
+
*/
|
|
29
|
+
export declare function formatAmount(value: bigint, decimals: number): string;
|
|
30
|
+
/**
|
|
31
|
+
* Parse a decimal string amount to bigint with given decimals
|
|
32
|
+
*/
|
|
33
|
+
export declare function parseAmount(value: string, decimals: number): bigint;
|
|
34
|
+
/**
|
|
35
|
+
* Export distribution preview to CSV format
|
|
36
|
+
*/
|
|
37
|
+
export declare function exportToCSV(entries: DistributionPreviewEntry[], tokenSymbol: string, decimals: number): string;
|
|
38
|
+
/**
|
|
39
|
+
* Export distribution preview to JSON format
|
|
40
|
+
*/
|
|
41
|
+
export declare function exportToJSON(entries: DistributionPreviewEntry[]): string;
|
|
42
|
+
/**
|
|
43
|
+
* YieldCalculator component for previewing yield distributions
|
|
44
|
+
* Shows per-holder breakdown with optional chart visualization
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```tsx
|
|
48
|
+
* <YieldCalculator
|
|
49
|
+
* tokenAddress="0x..."
|
|
50
|
+
* yieldDistributorAddress="0x..."
|
|
51
|
+
* supportedPaymentTokens={[{ address: '0x...', symbol: 'USDC', decimals: 6 }]}
|
|
52
|
+
* onDistribute={(config) => console.log('Distributing:', config)}
|
|
53
|
+
* />
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare function YieldCalculator({ tokenAddress, yieldDistributorAddress: _yieldDistributorAddress, // Reserved for future contract interaction
|
|
57
|
+
supportedPaymentTokens, onDistribute, showChart, allowExport, theme, }: YieldCalculatorProps): React.ReactElement;
|
|
58
|
+
export default YieldCalculator;
|
|
59
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/YieldCalculator/index.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAoC,MAAM,aAAa,CAAC;AAEpH;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GACrD,wBAAwB,EAAE,CA2B5B;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,wBAAwB,EAAE,GAAG,MAAM,CAElF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUpE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMnE;AAED;;GAEG;AACH,wBAAgB,WAAW,CACvB,OAAO,EAAE,wBAAwB,EAAE,EACnC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACjB,MAAM,CAMR;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,wBAAwB,EAAE,GAAG,MAAM,CAOxE;AAwBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,EAC5B,YAAY,EACZ,uBAAuB,EAAE,wBAAwB,EAAE,2CAA2C;AAC9F,sBAAsB,EACtB,YAAY,EACZ,SAAgB,EAChB,WAAkB,EAClB,KAAe,GAClB,EAAE,oBAAoB,GAAG,KAAK,CAAC,YAAY,CA+X3C;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React components for RWA tokenization
|
|
3
|
+
*/
|
|
4
|
+
export { KYCFlow } from './KYCFlow';
|
|
5
|
+
export { InvestorDashboard } from './InvestorDashboard';
|
|
6
|
+
export { TokenMintForm } from './TokenMintForm';
|
|
7
|
+
export { YieldCalculator } from './YieldCalculator';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useRWA hook for accessing RWA SDK functionality in React components
|
|
3
|
+
*/
|
|
4
|
+
import type { UseRWAReturn } from '../types';
|
|
5
|
+
/**
|
|
6
|
+
* Hook for accessing RWA SDK functionality
|
|
7
|
+
* Provides connection status and SDK client access
|
|
8
|
+
*/
|
|
9
|
+
export declare function useRWA(): UseRWAReturn;
|
|
10
|
+
declare global {
|
|
11
|
+
interface Window {
|
|
12
|
+
ethereum?: {
|
|
13
|
+
request?: (args: {
|
|
14
|
+
method: string;
|
|
15
|
+
params?: unknown[];
|
|
16
|
+
}) => Promise<unknown>;
|
|
17
|
+
on?: (event: string, callback: (...args: unknown[]) => void) => void;
|
|
18
|
+
removeListener?: (event: string, callback: (...args: unknown[]) => void) => void;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=useRWA.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRWA.d.ts","sourceRoot":"","sources":["../../../src/hooks/useRWA.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;;GAGG;AACH,wBAAgB,MAAM,IAAI,YAAY,CA+CrC;AAGD,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,QAAQ,CAAC,EAAE;YACP,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;aAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7E,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;YACrE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;SACpF,CAAC;KACL;CACJ"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @mantle-rwa/react
|
|
3
|
+
* React components for Real-World Asset tokenization on Mantle Network
|
|
4
|
+
*/
|
|
5
|
+
export { KYCFlow } from './components/KYCFlow';
|
|
6
|
+
export { InvestorDashboard } from './components/InvestorDashboard';
|
|
7
|
+
export { TokenMintForm } from './components/TokenMintForm';
|
|
8
|
+
export { YieldCalculator } from './components/YieldCalculator';
|
|
9
|
+
export { useRWA } from './hooks/useRWA';
|
|
10
|
+
export type { Theme, KYCProviderType, KYCRequiredField, KYCResult, KYCFlowProps, KYCFlowStyles, InvestorDashboardProps, YieldHistoryEntry, TokenMintFormProps, BatchMintEntry, YieldCalculatorProps, PaymentToken, DistributionConfig, DistributionPreviewEntry, UseRWAReturn, } from './types';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,YAAY,EACR,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,EACxB,YAAY,GACf,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for @mantle-rwa/react components
|
|
3
|
+
*/
|
|
4
|
+
export { AccreditationTier } from '@mantle-rwa/sdk';
|
|
5
|
+
/**
|
|
6
|
+
* Theme options for components
|
|
7
|
+
*/
|
|
8
|
+
export type Theme = 'light' | 'dark';
|
|
9
|
+
/**
|
|
10
|
+
* KYC Provider options
|
|
11
|
+
*/
|
|
12
|
+
export type KYCProviderType = 'persona' | 'synaps' | 'jumio';
|
|
13
|
+
/**
|
|
14
|
+
* Required fields for KYC verification
|
|
15
|
+
*/
|
|
16
|
+
export type KYCRequiredField = 'identity' | 'accreditation' | 'address' | 'tax';
|
|
17
|
+
/**
|
|
18
|
+
* KYC verification result
|
|
19
|
+
*/
|
|
20
|
+
export interface KYCResult {
|
|
21
|
+
verified: boolean;
|
|
22
|
+
tier: number;
|
|
23
|
+
identityHash: string;
|
|
24
|
+
sessionId: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* KYCFlow component props
|
|
28
|
+
* @see Requirements 10.1, 10.2, 10.3, 10.4, 10.5
|
|
29
|
+
*/
|
|
30
|
+
export interface KYCFlowProps {
|
|
31
|
+
/** KYC provider to use */
|
|
32
|
+
provider: KYCProviderType;
|
|
33
|
+
/** Callback when KYC verification completes */
|
|
34
|
+
onComplete: (kycData: KYCResult) => void;
|
|
35
|
+
/** Callback when an error occurs */
|
|
36
|
+
onError?: (error: Error) => void;
|
|
37
|
+
/** Required verification fields */
|
|
38
|
+
requiredFields: KYCRequiredField[];
|
|
39
|
+
/** Theme mode */
|
|
40
|
+
theme?: Theme;
|
|
41
|
+
/** Custom styles override */
|
|
42
|
+
customStyles?: Partial<KYCFlowStyles>;
|
|
43
|
+
/** KYC Registry contract address for auto-update */
|
|
44
|
+
registryAddress?: string;
|
|
45
|
+
/** Whether to automatically update the on-chain registry */
|
|
46
|
+
autoUpdateRegistry?: boolean;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Custom styles for KYCFlow component
|
|
50
|
+
*/
|
|
51
|
+
export interface KYCFlowStyles {
|
|
52
|
+
container?: string;
|
|
53
|
+
header?: string;
|
|
54
|
+
content?: string;
|
|
55
|
+
button?: string;
|
|
56
|
+
input?: string;
|
|
57
|
+
error?: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* InvestorDashboard component props
|
|
61
|
+
* @see Requirements 11.1, 11.2, 11.3, 11.4, 11.5
|
|
62
|
+
*/
|
|
63
|
+
export interface InvestorDashboardProps {
|
|
64
|
+
/** RWA Token contract address */
|
|
65
|
+
tokenAddress: string;
|
|
66
|
+
/** Yield Distributor contract address */
|
|
67
|
+
yieldDistributorAddress: string;
|
|
68
|
+
/** KYC Registry contract address */
|
|
69
|
+
kycRegistryAddress: string;
|
|
70
|
+
/** Theme mode */
|
|
71
|
+
theme?: Theme;
|
|
72
|
+
/** Callback when yield is claimed */
|
|
73
|
+
onClaimYield?: (distributionId: number) => void;
|
|
74
|
+
/** Whether to show portfolio value */
|
|
75
|
+
showPortfolioValue?: boolean;
|
|
76
|
+
/** Price oracle address for portfolio value calculation */
|
|
77
|
+
priceOracle?: string;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Yield history entry
|
|
81
|
+
*/
|
|
82
|
+
export interface YieldHistoryEntry {
|
|
83
|
+
distributionId: number;
|
|
84
|
+
amount: bigint;
|
|
85
|
+
paymentToken: string;
|
|
86
|
+
claimedAt: Date;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* TokenMintForm component props
|
|
90
|
+
* @see Requirements 12.1, 12.2, 12.3, 12.4
|
|
91
|
+
*/
|
|
92
|
+
export interface TokenMintFormProps {
|
|
93
|
+
/** RWA Token contract address */
|
|
94
|
+
tokenAddress: string;
|
|
95
|
+
/** KYC Registry contract address */
|
|
96
|
+
kycRegistryAddress: string;
|
|
97
|
+
/** Callback when minting completes */
|
|
98
|
+
onMintComplete?: (txHash: string, recipient: string, amount: string) => void;
|
|
99
|
+
/** Callback when an error occurs */
|
|
100
|
+
onError?: (error: Error) => void;
|
|
101
|
+
/** Whether to allow batch minting via CSV */
|
|
102
|
+
allowBatchMint?: boolean;
|
|
103
|
+
/** Maximum batch size for CSV uploads */
|
|
104
|
+
maxBatchSize?: number;
|
|
105
|
+
/** Theme mode */
|
|
106
|
+
theme?: Theme;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Batch mint entry from CSV
|
|
110
|
+
*/
|
|
111
|
+
export interface BatchMintEntry {
|
|
112
|
+
recipient: string;
|
|
113
|
+
amount: string;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* YieldCalculator component props
|
|
117
|
+
* @see Requirements 13.1, 13.2, 13.3, 13.4
|
|
118
|
+
*/
|
|
119
|
+
export interface YieldCalculatorProps {
|
|
120
|
+
/** RWA Token contract address */
|
|
121
|
+
tokenAddress: string;
|
|
122
|
+
/** Yield Distributor contract address */
|
|
123
|
+
yieldDistributorAddress: string;
|
|
124
|
+
/** Supported payment tokens */
|
|
125
|
+
supportedPaymentTokens: PaymentToken[];
|
|
126
|
+
/** Callback when distribution is initiated */
|
|
127
|
+
onDistribute?: (config: DistributionConfig) => void;
|
|
128
|
+
/** Whether to show distribution chart */
|
|
129
|
+
showChart?: boolean;
|
|
130
|
+
/** Whether to allow export functionality */
|
|
131
|
+
allowExport?: boolean;
|
|
132
|
+
/** Theme mode */
|
|
133
|
+
theme?: Theme;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Payment token configuration
|
|
137
|
+
*/
|
|
138
|
+
export interface PaymentToken {
|
|
139
|
+
address: string;
|
|
140
|
+
symbol: string;
|
|
141
|
+
decimals: number;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Distribution configuration
|
|
145
|
+
*/
|
|
146
|
+
export interface DistributionConfig {
|
|
147
|
+
tokenAddress: string;
|
|
148
|
+
paymentToken: string;
|
|
149
|
+
totalAmount: string;
|
|
150
|
+
snapshotDate?: Date;
|
|
151
|
+
claimWindowDays?: number;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Distribution preview entry
|
|
155
|
+
*/
|
|
156
|
+
export interface DistributionPreviewEntry {
|
|
157
|
+
address: string;
|
|
158
|
+
balance: bigint;
|
|
159
|
+
yieldAmount: bigint;
|
|
160
|
+
percentage: number;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* useRWA hook return type
|
|
164
|
+
*/
|
|
165
|
+
export interface UseRWAReturn {
|
|
166
|
+
/** Whether the SDK client is initialized */
|
|
167
|
+
isInitialized: boolean;
|
|
168
|
+
/** Current network chain ID */
|
|
169
|
+
chainId: number | undefined;
|
|
170
|
+
/** Connected wallet address */
|
|
171
|
+
address: string | undefined;
|
|
172
|
+
/** Whether wallet is connected */
|
|
173
|
+
isConnected: boolean;
|
|
174
|
+
/** Error if initialization failed */
|
|
175
|
+
error: Error | null;
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
|