react-reward-button
Version:
Drop-in React component that sends Ethereum token rewards and shows confetti animations. Built with wagmi, ethers, and ShadCN UI.
165 lines (164 loc) • 4.7 kB
TypeScript
export declare const ERC20_ABI: readonly [{
readonly constant: true;
readonly inputs: readonly [];
readonly name: "name";
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
}];
readonly type: "function";
}, {
readonly constant: true;
readonly inputs: readonly [];
readonly name: "symbol";
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
}];
readonly type: "function";
}, {
readonly constant: true;
readonly inputs: readonly [];
readonly name: "decimals";
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint8";
}];
readonly type: "function";
}, {
readonly constant: true;
readonly inputs: readonly [{
readonly name: "_owner";
readonly type: "address";
}];
readonly name: "balanceOf";
readonly outputs: readonly [{
readonly name: "balance";
readonly type: "uint256";
}];
readonly type: "function";
}, {
readonly constant: false;
readonly inputs: readonly [{
readonly name: "_to";
readonly type: "address";
}, {
readonly name: "_value";
readonly type: "uint256";
}];
readonly name: "transfer";
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
}];
readonly type: "function";
}, {
readonly constant: false;
readonly inputs: readonly [{
readonly name: "_spender";
readonly type: "address";
}, {
readonly name: "_value";
readonly type: "uint256";
}];
readonly name: "approve";
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
}];
readonly type: "function";
}, {
readonly constant: false;
readonly inputs: readonly [{
readonly name: "_from";
readonly type: "address";
}, {
readonly name: "_to";
readonly type: "address";
}, {
readonly name: "_value";
readonly type: "uint256";
}];
readonly name: "transferFrom";
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
}];
readonly type: "function";
}, {
readonly constant: true;
readonly inputs: readonly [{
readonly name: "_owner";
readonly type: "address";
}, {
readonly name: "_spender";
readonly type: "address";
}];
readonly name: "allowance";
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
}];
readonly type: "function";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly name: "from";
readonly type: "address";
}, {
readonly indexed: true;
readonly name: "to";
readonly type: "address";
}, {
readonly indexed: false;
readonly name: "value";
readonly type: "uint256";
}];
readonly name: "Transfer";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly name: "owner";
readonly type: "address";
}, {
readonly indexed: true;
readonly name: "spender";
readonly type: "address";
}, {
readonly indexed: false;
readonly name: "value";
readonly type: "uint256";
}];
readonly name: "Approval";
readonly type: "event";
}];
export declare const COMMON_TOKENS: {
readonly USDC: "0xA0b86a33E6441b6b07c2fE4c2b4B8B1d8B7a0F4c";
readonly USDT: "0xdAC17F958D2ee523a2206206994597C13D831ec7";
readonly DAI: "0x6B175474E89094C44Da98b954EedeAC495271d0F";
readonly WETH: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2";
};
export declare const BUTTON_VARIANTS: {
readonly default: "reward-button--default";
readonly secondary: "reward-button--secondary";
readonly outline: "reward-button--outline";
readonly ghost: "reward-button--ghost";
readonly destructive: "reward-button--destructive";
};
export declare const BUTTON_SIZES: {
readonly default: "reward-button--size-default";
readonly sm: "reward-button--size-sm";
readonly lg: "reward-button--size-lg";
readonly icon: "reward-button--size-icon";
};
export declare const DEFAULT_BUTTON_TEXT = "Claim Reward";
export declare const CSS_CLASSES: {
readonly base: "reward-button";
readonly loading: "reward-button--loading";
readonly disabled: "reward-button--disabled";
readonly loadingContent: "reward-button__loading";
readonly spinner: "reward-button__spinner";
};