{"_id":"@0205miss/pi_net_sdk","_rev":"3-67fe5f55fa03cbbc1f46630358d7dc84","name":"@0205miss/pi_net_sdk","dist-tags":{"latest":"2.0.2"},"versions":{"2.0.0":{"name":"@0205miss/pi_net_sdk","version":"2.0.0","keywords":["pi-network","sdk","blockchain","payments"],"author":{"name":"0205miss"},"license":"MIT","_id":"@0205miss/pi_net_sdk@2.0.0","maintainers":[{"name":"0205miss","email":"0205miss@gmail.com"}],"homepage":"https://github.com/0205miss/pi_net_sdk#readme","bugs":{"url":"https://github.com/0205miss/pi_net_sdk/issues"},"dist":{"shasum":"417c79a9dc5ef367b0816aa3a4d3ca99b8179d33","tarball":"https://registry.npmjs.org/@0205miss/pi_net_sdk/-/pi_net_sdk-2.0.0.tgz","fileCount":26,"integrity":"sha512-bVfMx3v69osSnnmANwKRwk/BCi2ha50RXT+OQIKoK6PsNgPP9koe+sNpUM9eMBEcpbzWWICi246RVxuAi1N5xg==","signatures":[{"sig":"MEUCIQDsvCBR7qNgMPd+P/mQzlaaFYk05XbUf3PeC6YyTDQobwIgKkm1y3qwo8Q5ClgJvKrT5gOm7RekskL/nIfhPR852Io=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151989},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"412d4fd6c8a8504606a5b1af706fbf9e935ee6cd","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js"},"_npmUser":{"name":"0205miss","email":"0205miss@gmail.com"},"repository":{"url":"git+https://github.com/0205miss/pi_net_sdk.git","type":"git"},"_npmVersion":"11.4.1","description":"Pi Network SDK for interacting with Pi Network APIs","directories":{},"_nodeVersion":"22.13.0","dependencies":{"axios":"^1.8.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.7.0","rollup":"^4.24.0","typescript":"^5.6.3","@rollup/plugin-typescript":"^11.1.6"},"_npmOperationalInternal":{"tmp":"tmp/pi_net_sdk_2.0.0_1749225303277_0.36462702981496764","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@0205miss/pi_net_sdk","version":"2.0.1","keywords":["pi-network","sdk","blockchain","payments"],"author":{"name":"0205miss"},"license":"MIT","_id":"@0205miss/pi_net_sdk@2.0.1","maintainers":[{"name":"0205miss","email":"0205miss@gmail.com"}],"homepage":"https://github.com/0205miss/pi_net_sdk#readme","bugs":{"url":"https://github.com/0205miss/pi_net_sdk/issues"},"dist":{"shasum":"7839441698e01d6f2ef2366fd8dbf0b349773470","tarball":"https://registry.npmjs.org/@0205miss/pi_net_sdk/-/pi_net_sdk-2.0.1.tgz","fileCount":26,"integrity":"sha512-FXdrspSXY1V4M/5k4wXIZ6glJoYZ9T9RRdoaE7Y69Z12iZ/oignOMzQfnzzpqigVDTILROCfkknEKq3SFV4p4A==","signatures":[{"sig":"MEUCIGHrzr9SxjKoFA75wt3UN6zEwIjfGJ3O9nWwd8SvzsPmAiEAua7+zx59Dc2yN6Dg0pDK48hlmU1yVNu4uGf+BwxJyA8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154207},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"412d4fd6c8a8504606a5b1af706fbf9e935ee6cd","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rollup -c rollup.config.js"},"_npmUser":{"name":"0205miss","email":"0205miss@gmail.com"},"repository":{"url":"git+https://github.com/0205miss/pi_net_sdk.git","type":"git"},"_npmVersion":"11.4.1","description":"Pi Network SDK for interacting with Pi Network APIs","directories":{},"_nodeVersion":"22.13.0","dependencies":{"axios":"^1.8.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.7.0","rollup":"^4.24.0","typescript":"^5.6.3","@rollup/plugin-typescript":"^11.1.6"},"_npmOperationalInternal":{"tmp":"tmp/pi_net_sdk_2.0.1_1749230766365_0.30606984845888774","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@0205miss/pi_net_sdk","version":"2.0.2","description":"Pi Network SDK for interacting with Pi Network APIs","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","type":"module","scripts":{"build":"rollup -c rollup.config.js","test":"echo \"Error: no test specified\" && exit 1"},"keywords":["pi-network","sdk","blockchain","payments"],"author":{"name":"0205miss"},"license":"MIT","dependencies":{"axios":"^1.8.4"},"devDependencies":{"@rollup/plugin-typescript":"^11.1.6","rollup":"^4.24.0","tslib":"^2.7.0","typescript":"^5.6.3"},"repository":{"type":"git","url":"git+https://github.com/0205miss/pi_net_sdk.git"},"bugs":{"url":"https://github.com/0205miss/pi_net_sdk/issues"},"homepage":"https://github.com/0205miss/pi_net_sdk#readme","publishConfig":{"access":"public"},"_id":"@0205miss/pi_net_sdk@2.0.2","gitHead":"25b71dabbc314c0349592dcc7b5f4d1545a7a3e8","_nodeVersion":"22.13.0","_npmVersion":"11.4.1","dist":{"integrity":"sha512-3cUF8iN7FtfF59rHru33/VQ2L4aYs4gzWopef3bbMqjCOA0F8xTeV9Rgl46dDpMpGEK595w0XL38wzop6YL68g==","shasum":"efd366361f58ab213831f2ff46d25dfe6c42f520","tarball":"https://registry.npmjs.org/@0205miss/pi_net_sdk/-/pi_net_sdk-2.0.2.tgz","fileCount":26,"unpackedSize":154237,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDqPb7UmjQbOdbFV2oxa96WYzwSEpCsu21gX/Lx4Kzz4AIhAL8W4yh7yxWJvsQ6rlc3SmEDUXmbvLW6Ik1P3fuRJiE7"}]},"_npmUser":{"name":"0205miss","email":"0205miss@gmail.com"},"directories":{},"maintainers":[{"name":"0205miss","email":"0205miss@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi_net_sdk_2.0.2_1749231672447_0.6218492040915635"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-06T15:55:03.166Z","modified":"2025-06-06T17:41:12.826Z","2.0.0":"2025-06-06T15:55:03.468Z","2.0.1":"2025-06-06T17:26:06.537Z","2.0.2":"2025-06-06T17:41:12.664Z"},"bugs":{"url":"https://github.com/0205miss/pi_net_sdk/issues"},"author":{"name":"0205miss"},"license":"MIT","homepage":"https://github.com/0205miss/pi_net_sdk#readme","keywords":["pi-network","sdk","blockchain","payments"],"repository":{"type":"git","url":"git+https://github.com/0205miss/pi_net_sdk.git"},"description":"Pi Network SDK for interacting with Pi Network APIs","maintainers":[{"name":"0205miss","email":"0205miss@gmail.com"}],"readme":"# Pi Network SDK\r\n\r\nA TypeScript SDK for interacting with the Pi Network APIs, enabling payments, wallet transactions, and more.\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm i @0205miss/pi_net_sdk\r\n```\r\n\r\n## Usage\r\n\r\nBelow are examples demonstrating how to use the Pi Network SDK. All examples use the named export `piSDK`, which is a pre-instantiated instance of the `PiSDK` class. You can also import the `PiSDK` class to create your own instances if needed.\r\n\r\n### Initializing the SDK\r\n\r\nInitialize the SDK with your desired configuration (e.g., version and sandbox mode).\r\n\r\n```typescript\r\nimport { piSDK } from '@0205miss/pi_net_sdk';\r\n\r\nasync function initSDK() {\r\n  try {\r\n    await piSDK.init({\r\n      version: '2.0',\r\n      sandbox: true // Use sandbox mode for testing\r\n    });\r\n    console.log('Pi SDK initialized successfully');\r\n  } catch (error) {\r\n    console.error('Initialization failed:', error);\r\n  }\r\n}\r\n\r\ninitSDK();\r\n```\r\n\r\n### Authenticating a User\r\n\r\nAuthenticate a user with specific scopes (e.g., `payments`, `username`) and handle incomplete payments.\r\n\r\n```typescript\r\nimport { piSDK } from '@0205miss/pi_net_sdk';\r\n\r\nasync function authenticateUser() {\r\n  try {\r\n    const scopes = ['payments', 'username'];\r\n    const onIncompletePaymentFound = (payment: any) => {\r\n      console.log('Incomplete payment found:', payment);\r\n      // Handle incomplete payment (e.g., notify user or resume flow)\r\n    };\r\n\r\n    const authResult = await piSDK.authenticate(scopes, onIncompletePaymentFound);\r\n    console.log('Authenticated user:', authResult.user.uid);\r\n    console.log('Access token:', authResult.accessToken);\r\n  } catch (error) {\r\n    console.error('Authentication failed:', error);\r\n  }\r\n}\r\n\r\nauthenticateUser();\r\n```\r\n\r\n### Creating a Payment\r\n\r\nCreate a payment flow, including callbacks for server approval, completion, errors, and cancellation.\r\n\r\n```typescript\r\nimport { piSDK } from '@0205miss/pi_net_sdk';\r\n\r\nasync function createPayment() {\r\n  try {\r\n    // Ensure SDK is initialized and user is authenticated with 'payments' scope\r\n    await piSDK.init({ version: '2.0', sandbox: true });\r\n    await piSDK.authenticate(['payments'], (payment) => console.log('Incomplete payment:', payment));\r\n\r\n    const paymentData = {\r\n      amount: 10, // Amount in Pi\r\n      memo: 'Test payment',\r\n      metadata: { orderId: '12345' },\r\n      uid: 'user123' // User ID from authentication\r\n    };\r\n\r\n    const callbacks = {\r\n      onReadyForServerApproval: (paymentId: string) => {\r\n        console.log('Ready for server approval:', paymentId);\r\n        // Send paymentId to your server for approval\r\n      },\r\n      onReadyForServerCompletion: (paymentId: string, txid: string) => {\r\n        console.log('Ready for server completion:', paymentId, txid);\r\n        // Send paymentId and txid to your server to complete the transaction\r\n      },\r\n      onError: (error: Error, payment?: any) => {\r\n        console.error('Payment error:', error, payment);\r\n      },\r\n      onCancel: (paymentId: string) => {\r\n        console.log('Payment cancelled:', paymentId);\r\n      }\r\n    };\r\n\r\n    const paymentFlow = piSDK.createPayment(paymentData, callbacks);\r\n    console.log('Payment flow started');\r\n  } catch (error) {\r\n    console.error('Payment creation failed:', error);\r\n  }\r\n}\r\n\r\ncreatePayment();\r\n```\r\n\r\n### Submitting a Wallet Transaction\r\n\r\nSubmit a transaction using a Stellar XDR string (e.g., for blockchain operations).\r\n\r\n```typescript\r\nimport { piSDK } from '@0205miss/pi_net_sdk';\r\n\r\nasync function submitTransaction() {\r\n  try {\r\n    // Ensure SDK is initialized\r\n    await piSDK.init({ version: '2.0', sandbox: true });\r\n\r\n    // Example XDR (replace with actual XDR from your application)\r\n    const xdr = 'AAAA...'; // Stellar transaction XDR\r\n\r\n    const result = await piSDK.Wallet!.submitTransaction(xdr);\r\n    console.log('Transaction submitted:', result);\r\n  } catch (error) {\r\n    console.error('Transaction submission failed:', error);\r\n  }\r\n}\r\n\r\nsubmitTransaction();\r\n```\r\n\r\n### Opening a Share Dialog\r\n\r\nPrompt the user to share content via the Pi Network.\r\n\r\n```typescript\r\nimport { piSDK } from '@0205miss/pi_net_sdk';\r\n\r\nasync function openShareDialog() {\r\n  try {\r\n    await piSDK.init({ version: '2.0', sandbox: true });\r\n    await piSDK.openShareDialog('My App', 'Check out my awesome app on Pi Network!');\r\n    console.log('Share dialog opened');\r\n  } catch (error) {\r\n    console.error('Failed to open share dialog:', error);\r\n  }\r\n}\r\n\r\nopenShareDialog();\r\n```\r\n\r\n### Using the PiSDK Class Directly\r\n\r\nIf you need multiple SDK instances, import and instantiate the `PiSDK` class.\r\n\r\n```typescript\r\nimport { PiSDK } from '@0205miss/pi_net_sdk';\r\n\r\nasync function customInstance() {\r\n  const customSDK = new PiSDK();\r\n  try {\r\n    await customSDK.init({ version: '2.0', sandbox: false });\r\n    console.log('Custom SDK instance initialized');\r\n  } catch (error) {\r\n    console.error('Initialization failed:', error);\r\n  }\r\n}\r\n\r\ncustomInstance();\r\n```\r\n\r\n## Features\r\n- Authenticate users with Pi Network.\r\n- Create and manage payments.\r\n- Submit wallet transactions.\r\n- Access native features like QR code scanning, ads, and share dialogs.\r\n- Track user interactions and locations.\r\n- Support for both sandbox and production environments.\r\n\r\n## Requirements\r\n- Node.js >= 18.x\r\n- A Pi Network developer account\r\n- TypeScript (optional, for type safety)\r\n\r\n## Development Setup\r\n\r\n1. Clone the repository:\r\n   ```bash\r\n   git clone https://github.com/0205miss/pi_net_sdk.git\r\n   cd pi_net_sdk\r\n   ```\r\n\r\n2. Install dependencies:\r\n   ```bash\r\n   npm install\r\n   ```\r\n\r\n3. Build the project:\r\n   ```bash\r\n   npm run build\r\n   ```\r\n\r\n## Contributing\r\nContributions are welcome! Please submit issues and pull requests to [https://github.com/0205miss/pi_net_sdk](https://github.com/0205miss/pi_net_sdk).\r\n\r\n## License\r\nMIT","readmeFilename":"README.md"}